Manual Pages for UNIX Darwin command on man MPI_Cart_shift
MyWebUniversity

Manual Pages for UNIX Darwin command on man MPI_Cart_shift

MPICartshift(3OpenMPI) MPICartshift(3OpenMPI)

NAME

MMPPIICCaarrttsshhiifftt - Returns the shifted source and destination ranks,

given a shift direction and amount. SSYYNNTTAAXX CC SSyynnttaaxx

#include

int MPICartshift(MPIComm comm, int direction, int disp, int *ranksource, int *rankdest) FFoorrttrraann SSyynnttaaxx INCLUDE 'mpif.h' MPICARTSHIFT(COMM, DIRECTION, DISP, RANKSOURCE,

RANKDEST, IERROR)

INTEGER COMM, DIRECTION, DISP, RANKSOURCE

INTEGER RANKDEST, IERROR

CC++++ SSyynnttaaxx

#include

void Cartcomm::Shift(int direction, int disp, int& ranksource, int& rankdest) const IINNPPUUTT PPAARRAAMMEETTEERRSS comm Communicator with Cartesian structure (handle). direction Coordinate dimension of shift (integer).

disp Displacement ( > 0: upward shift, < 0: downward shift) (inte-

ger). OOUUTTPPUUTT PPAARRAAMMEETTEERRSS ranksource Rank of source process (integer). rankdest Rank of destination process (integer).

IERROR Fortran only: Error status (integer).

DESCRIPTION

If the process topology is a Cartesian structure, an MPISendrecv oper-

ation is likely to be used along a coordinate direction to perform a shift of data. As input, MPISendrecv takes the rank of a source process for the receive, and the rank of a destination process for the send. If the function MPICartshift is called for a Cartesian process group, it provides the calling process with the above identifiers,

which then can be passed to MPISendrecv. The user specifies the coor-

dinate direction and the size of the step (positive or negative). The function is local. The direction argument indicates the dimension of the shift, i.e., the coordinate whose value is modified by the shift. The coordinates are

numbered from 0 to ndims-1, where ndims is the number of dimensions.

NNoottee:: The direction argument is in the range [0, n-1] for an n-dimen-

sional Cartesian mesh. Depending on the periodicity of the Cartesian group in the specified coordinate direction, MPICartshift provides the identifiers for a

circular or an end-off shift. In the case of an end-off shift, the

value MPIPROCNULL may be returned in ranksource or rankdest, indi-

cating that the source or the destination for the shift is out of range.

EExxaammppllee:: The communicator, comm, has a two-dimensional, periodic,

Cartesian topology associated with it. A two-dimensional array of

REALs is stored one element per process, in variable A. One wishes to

skew this array, by shifting column i (vertically, i.e., along the col-

umn) by i steps. .... C find process rank CALL MPICOMMRANK(comm, rank, ierr)) C find Cartesian coordinates CALL MPICARTCOORDS(comm, rank, maxdims, coords, ierr) C compute shift source and destination CALL MPICARTSHIFT(comm, 0, coords(2), source, dest, ierr) C skew array CALL MPISENDRECVREPLACE(A, 1, MPIREAL, dest, 0, source, 0, comm, status, ierr) NNOOTTEE In Fortran, the dimension indicated by DIRECTION = i has DIMS(i+1) nodes, where DIMS is the array that was used to create the grid. In C, the dimension indicated by direction = i is the dimension specified by dims[i]. EERRRROORRSS Almost all MPI routines return an error value; C routines as the value

of the function and Fortran routines in the last argument. C++ func-

tions do not return errors. If the default error handler is set to

MPI::ERRORSTHROWEXCEPTIONS, then on error the C++ exception mechanism

will be used to throw an MPI:Exception object. Before the error value is returned, the current MPI error handler is called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with

MPICommseterrhandler; the predefined error handler MPIERRORSRETURN

may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. Open MPI 1.2 September 2006 MPICartshift(3OpenMPI)




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™