|
37 | 37 | * handler invocation, but the collective components provide all other |
38 | 38 | * functionality. |
39 | 39 | * |
40 | | - * Component selection is done per commuicator, at Communicator |
| 40 | + * Component selection is done per communicator, at Communicator |
41 | 41 | * construction time. mca_coll_base_comm_select() is used to |
42 | | - * create the list of components available to the componenent |
| 42 | + * create the list of components available to the component |
43 | 43 | * collm_comm_query function, instantiating a module for each |
44 | 44 | * component that is usable, and sets the module collective function pointers. |
45 | 45 | * mca_coll_base_comm_select() then loops through the list of available |
|
59 | 59 | * components should be able to handle either style of communicator |
60 | 60 | * during initialization (although handling may include indicating the |
61 | 61 | * component is not available). |
| 62 | + * |
| 63 | + * Unlike the MPI standard, all buffers that are not supposed to be used (and |
| 64 | + * therefore where the MPI standard does not require the tuple |
| 65 | + * (buffer, datatype, count) to be accessible, are replaced with NULL. |
| 66 | + * As an example, the recvbuf for all non-root ranks in an MPI_Reduce, |
| 67 | + * will be set to NULL at the MPI API level. The reason behind this is to |
| 68 | + * allow collective components to indicate when buffers are really valid, |
| 69 | + * such that collective modules delegating collectives to other modules |
| 70 | + * can share temporary buffer. |
62 | 71 | */ |
63 | 72 |
|
64 | 73 | #ifndef OMPI_MCA_COLL_COLL_H |
@@ -508,7 +517,7 @@ typedef struct mca_coll_base_component_2_4_0_t mca_coll_base_component_t; |
508 | 517 | * |
509 | 518 | * Module interface to the Collective framework. Modules are |
510 | 519 | * reference counted based on the number of functions from the module |
511 | | - * used on the commuicator. There is at most one module per component |
| 520 | + * used on the communicator. There is at most one module per component |
512 | 521 | * on a given communicator, and there can be many component modules on |
513 | 522 | * a given communicator. |
514 | 523 | * |
|
0 commit comments