This subroutine loads the communication pattern from a Lua script and sets the exchange routine to be used accordingly.
The variable read from the script is "commpattern". Several patterns are available: * isend_irecv - Use explicit buffers, copy first the outgoing ones, then post irecvs and isends, wait on all, and copy the incoming buffers to their final locations (default). * isend_irecv_mpimem - Same as isend_irecv, but use memory that is allocatd by MPI_Alloc_mem for the buffers. * isend_irecv_overlap - Similar to isend_irecv, but directly post sends, after filling the outgoing buffer to each process, wait on any incoming messages and only wait on sends, after everything is copied into the final location. * overlap_mpimem - Same as isend_irecv_overlap, but use memory that is allocated by MPI_Alloc_mem for the buffers. * typed_isend_irecv - Instead of copying the memory around, define a indexed MPI datatype and use that in the exchange. * gathered_type - Similar to typed_isend_irecv, but with minimal number of blocks in the indexed type, by tracking only contiguous blocks in the memory layout.
Instead of reading the style from a configuration script, it can also be directly set by the caller. If nothing is specified by the caller, the style will default to isend_irecv.
Usage:
commpattern = 'isend_irecv'
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_commPattern_type), | intent(out) | :: | me | commpattern to set |
||
type(flu_State), | optional | :: | conf | handle to the Lua script |
||
character(len=*), | intent(in), | optional | :: | style | optional communication style |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | iError |