Cartcomm Intracomm.createCart(int [] dims, boolean [] periods, boolean reorder)

dims |
the number of processes in each dimension |

periods |
true if grid is periodic, false if not,
in each dimension |

reorder |
true if ranking may be reordered, false if not |

returns: |
new Cartesian topology communicator |

Create a Cartesian topology communicator whose group is a subset of the group of this communicator. Java binding of the MPI operation

static Cartcomm.dimsCreate(int nnodes, int [] dims)

nnodes |
number of nodes in a grid |

ndims |
number of Cartesian dimensions |

dims |
array specifying the number of nodes in each dimension |

Select a balanced distribution of processes per coordinate direction. Java binding of the MPI operation

Graphcomm Intracomm.createGraph(int [] index, int [] edges, boolean reorder)

index |
node degrees |

edges |
graph edges |

reorder |
true if ranking may be reordered, false if not |

returns: |
new graph topology communicator |

Create a graph topology communicator whose group is a subset of the group of this communicator. Java binding of the MPI operation

int Comm.topoTest()

returns: |
topology type of communicator |

Returns the type of topology associated with the communicator. Java binding of the MPI operation

GraphParms Graphcomm.get()

returns: |
object defining node degress and edges of graph |

Returns graph topology information. Java binding of the MPI operations

public class GraphParms { public int [] index ; public int [] edges ; }The number of nodes and number of edges can be extracted from the sizes of the

CartParms Cartcomm.get()

returns: |
object containing dimensions, periods and local coordinates |

Returns Cartesian topology information. Java binding of the MPI operations

public class CartParms { public int [] dims ; public booleans [] periods ; public int [] coords ; }The number of dimensions can be obtained from the size of (eg) the

*Rationale.*The inquiries*MPI_GRAPHDIMS_GET*,*MPI_GRAPH_GET*,*MPI_CARTDIM_GET*, and*MPI_CART_GET*are unusual in returning multiple independent values from single calls. This is a problem in Java. The Java binding could split these inquiries into several independent ones, but that would complicate JNI-based wrapper implementations. Hence we introduced the auxilliary classes`GraphParms`and`CartParms`to hold multiple results.*(End of rationale.)*

int Cartcomm.rank(int [] coords)

coords |
Cartesian coordinates of a process |

returns: |
rank of the specified process |

Translate logical process coordinates to process rank. Java binding of the MPI operation

int [] Cartcomm.coords(int rank)

coords |
rank of a process |

returns: |
Cartesian coordinates of the specified process |

Translate process rank to logical process coordinates. Java binding of the MPI operation

int [] Graphcomm.neighbours(int rank)

coords |
rank of a process in the group of this communicator |

returns: |
array of ranks of neighbouring processes to one specified |

Provides adjacency information for general graph topology. Java binding of the MPI operations

ShiftParms Cartcomm.shift(int direction, int disp)

direction |
coordinate dimension of shift |

disp |
displacement |

returns: |
object containing ranks of source and destination processes |

Compute source and destination ranks for ``shift'' communication. Java binding of the MPI operation

public class ShiftParms { public int rankSource ; public int rankDest ; }

Cartcomm Cartcomm.sub(boolean [] remainDims)

remainDims |
by dimension, true if dimension is to be kept,
false otherwise |

returns: |
communicator containing subgrid including this process |

Partition Cartesian communicator into subgroups of lower dimension. Java binding of the MPI operation

int Cartcomm.map(int [] dims, boolean [] periods)

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 |

Compute an optimal placement. Java binding of the MPI operation

int Graphcomm.map(int [] index, int [] edges)

index |
node degrees |

edges |
graph edges |

returns: |
reordered rank of calling process |

Compute an optimal placement. Java binding of the MPI operation