MPI_CART_CREATE(comm_old, ndims, dims, periods, reorder, comm_cart) | |
IN comm_old | input communicator (handle) |
IN ndims | number of dimensions of Cartesian grid (integer) |
IN dims | integer array of size ndims specifying the number of processes in each dimension |
IN periods | logical array of size ndims specifying whether the grid is periodic ( true) or not ( false) in each dimension |
IN reorder | ranks may be reordered ( true) or not ( false) (logical) |
OUT comm_cart | new communicator with associated Cartesian topology (handle) |
MPI_CART_CREATE returns a handle to a new communicator to which the Cartesian topology information is attached. If reorder = false then the rank of each MPI process in the group of the new communicator is identical to its rank in the group of the old communicator. If reorder = true then the procedure may reorder the ranks of the MPI processes (possibly so as to choose a good embedding of the virtual topology onto the physical machine). If the total size of the Cartesian grid is smaller than the size of the group of comm_old, then some MPI processes return MPI_COMM_NULL, in analogy to MPI_COMM_SPLIT. If ndims is zero then a zero-dimensional Cartesian topology is created. The call is erroneous if it specifies a grid that is larger than the group size or if ndims is negative. MPI_CART_CREATE will associate information representing a Cartesian topology with the specified number of dimensions, numbers of MPI processes in each coordinate direction, and periodicity with the new communicator.