mpi
Class Cartcomm

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

public class Cartcomm
extends Intracomm


Fields inherited from class mpi.Comm
handle, nullHandle, SELF, WORLD
 
Constructor Summary
protected Cartcomm(long handle)
           
 
Method Summary
 java.lang.Object clone()
           
 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, 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)
Method Detail

clone

public java.lang.Object clone()
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.


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.


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.


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.


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.


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.


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.