Manual Pages for UNIX Darwin command on man MPI_Graph_neighbors
MyWebUniversity

Manual Pages for UNIX Darwin command on man MPI_Graph_neighbors

MPIGraphneighbors(3OpenMPI) MPIGraphneighbors(3OpenMPI)

NAME

MMPPIIGGrraapphhnneeiigghhbboorrss - Returns the neighbors of a node associated with

a graph topology. SSYYNNTTAAXX CC SSyynnttaaxx

#include

int MPIGraphneighbors(MPIComm comm, int rank, int maxneighbors, int *neighbors) FFoorrttrraann SSyynnttaaxx INCLUDE 'mpif.h'

MPIGRAPHNEIGHBORS(COMM, RANK, MAXNEIGHBORS, NEIGHBORS, IERROR)

INTEGER COMM, RANK, MAXNEIGHBORS, NEIGHBORS(*), IERROR

CC++++ SSyynnttaaxx

#include

void Graphcomm::Getneighbors(int rank, int maxneighbors, int neighbors[]) const IINNPPUUTT PPAARRAAMMEETTEERRSS comm Communicator with graph topology (handle). rank Rank of process in group of comm (integer). maxneighbors Size of array neighbors (integer). OOUUTTPPUUTT PPAARRAAMMEETTEERRSS neighbors Ranks of processes that are neighbors to specified process (array of integers).

IERROR Fortran only: Error status (integer).

DESCRIPTION

EExxaammppllee:: Suppose that comm is a communicator with a shuffle-exchange

topology. The group has 2n members. Each process is labeled by a(1), ..., a(n) with a(i) E{0,1}, and has three neighbors: exchange

(a(1), ..., a(n) = a(1), ..., a(n-1), a(n) (a = 1 - a), shuffle

(a(1), ..., a(n)) = a(2), ..., a(n), a(1), and unshuffle (a(1), ...,

a(n)) = a(n), a(1), ..., a(n-1). The graph adjacency list is illus-

trated below for n=3. exchange shuffle unshuffle node neighbors(1) neighbors(2) neighbors(3) 0(000) 1 0 0 1(001) 0 2 4 2(010) 3 4 1 3(011) 2 6 5 4(100) 5 1 2 5(101) 4 3 6 6(110) 7 5 3 7(111) 6 7 7 Suppose that the communicator comm has this topology associated with it. The following code fragment cycles through the three types of neighbors and performs an appropriate permutation for each. C assume: each process has stored a real number A. C extract neighborhood information CALL MPICOMMRANK(comm, myrank, ierr) CALL MPIGRAPHNEIGHBORS(comm, myrank, 3, neighbors, ierr) C perform exchange permutation CALL MPISENDRECVREPLACE(A, 1, MPIREAL, neighbors(1), 0, + neighbors(1), 0, comm, status, ierr) C perform shuffle permutation CALL MPISENDRECVREPLACE(A, 1, MPIREAL, neighbors(2), 0, + neighbors(3), 0, comm, status, ierr) C perform unshuffle permutation CALL MPISENDRECVREPLACE(A, 1, MPIREAL, neighbors(3), 0, + neighbors(2), 0, comm, status, ierr) 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.

SEE ALSO

MPIGraphneighborscount Open MPI 1.2 September 2006 MPIGraphneighbors(3OpenMPI)




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