mpi
Class Cartcomm

java.lang.Object
  |
  +--mpi.Comm
        |
        +--mpi.Intracomm
              |
              +--mpi.Cartcomm

public class Cartcomm
extends Intracomm


Field Summary
 
Fields inherited from class mpi.Comm
handle, nullHandle, SELF, WORLD
 
Constructor Summary
protected Cartcomm(long handle)
           
 
Method Summary
 java.lang.Object clone()
          Duplicate this communicator.
 int[] Coords(int rank)
          Translate process rank to logical process coordinates.
static void Dims_create(int nnodes, int[] dims)
          Select a balanced distribution of processes per coordinate direction.
 CartParms Get()
          Returns Cartesian topology information.
 int Map(int[] dims, boolean[] periods)
          Compute an optimal placement.
 int Rank(int[] coords)
          Translate logical process coordinates to process rank.
 ShiftParms Shift(int direction, int disp)
          Compute source and destination ranks for ``shift'' communication.
 Cartcomm Sub(boolean[] remain_dims)
          Partition Cartesian communicator into subgroups of lower dimension.
 
Methods inherited from class mpi.Intracomm
Allgather, Allgatherv, Allreduce, Alltoall, Alltoallv, Barrier, Bcast, Creat, Create_cart, Create_graph, Gather, Gatherv, Reduce_scatter, Reduce, Scan, Scatter, Scatterv, Split
 
Methods inherited from class mpi.Comm
Abort, Attr_get, Bsend_init, Bsend, Compare, Create_intercomm, dup, Errhandler_set, Errorhandler_get, Free, GetIntercomm, Group, Ibsend, Ibsend, Iprobe, Irecv, Irecv, Irsend, Irsend, Is_null, Isend, Isend, Issend, Issend, Object_Deserialize, Object_Serialize, Pack_size, Pack, Probe, Rank, Recv_init, Recv, Rsend_init, Rsend, Send_init, Send, Sendrecv_replace, Sendrecv, Size, Ssend_init, Ssend, Test_inter, Topo_test, Unpack
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Cartcomm

protected Cartcomm(long handle)
            throws MPIException
Method Detail

clone

public java.lang.Object clone()
Description copied from class: Comm
Duplicate this communicator.

returns: copy of this communicator

Java binding of the MPI operation MPI_COMM_DUP.

The new communicator is ``congruent'' to the old one, but has a different context.

Overrides:
clone in class Intracomm

Get

public CartParms Get()
              throws MPIException
Returns Cartesian topology information.

returns: object containing dimensions, periods and local coordinates

Java binding of the MPI operations MPI_CARTDIM_GET and MPI_CART_GET.

The number of dimensions can be obtained from the size of (eg) dims field of the returned object.

MPIException

Rank

public int Rank(int[] coords)
         throws MPIException
Translate logical process coordinates to process rank.

coords Cartesian coordinates of a process
returns: rank of the specified process

Java binding of the MPI operation MPI_CART_RANK.

MPIException

Coords

public int[] Coords(int rank)
             throws MPIException
Translate process rank to logical process coordinates.

rank rank of a process
returns: Cartesian coordinates of the specified process

Java binding of the MPI operation MPI_CART_COORDS.

MPIException

Shift

public ShiftParms Shift(int direction,
                        int disp)
                 throws MPIException
Compute source and destination ranks for ``shift'' communication.

direction coordinate dimension of shift
disp displacement
returns: object containing ranks of source and destination processes

Java binding of the MPI operation MPI_CART_SHIFT.

MPIException

Sub

public Cartcomm Sub(boolean[] remain_dims)
             throws MPIException
Partition Cartesian communicator into subgroups of lower dimension.

remain_dims by dimension, true if dimension is to be kept, false otherwise
returns: communicator containing subgrid including this process

Java binding of the MPI operation MPI_CART_SUB.

MPIException

Map

public int Map(int[] dims,
               boolean[] periods)
        throws MPIException
Compute an optimal placement.

dims the number of processes in each dimension
periods true if grid is periodic, false if not, in each dimension
returns: reordered rank of calling process

Java binding of the MPI operation MPI_CART_MAP.

The number of dimensions is taken to be size of the dims argument.

MPIException

Dims_create

public static void Dims_create(int nnodes,
                               int[] dims)
                        throws MPIException
Select a balanced distribution of processes per coordinate direction.

nnodes number of nodes in a grid
ndims number of dimensions of grid
dims array specifying the number of nodes in each dimension

Java binding of the MPI operation MPI_DIMS_CREATE.

Size dims should be ndims. Note that dims is an inout parameter.

MPIException