Class Intracomm
- java.lang.Object
-
- mpi.Comm
-
- mpi.Intracomm
-
-
Field Summary
-
Fields inherited from class mpi.Comm
handle, SELF, TYPE_SHARED, WORLD
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Intercomm
accept(java.lang.String port, int root)
Java binding ofMPI_COMM_ACCEPT
usingMPI_INFO_NULL
.Intercomm
accept(java.lang.String port, Info info, int root)
Java binding ofMPI_COMM_ACCEPT
.Intracomm
clone()
Duplicates this communicator.static void
closePort(java.lang.String name)
Java binding ofMPI_CLOSE_PORT
.Intercomm
connect(java.lang.String port, int root)
Java binding ofMPI_COMM_CONNECT
usingMPI_INFO_NULL
.Intercomm
connect(java.lang.String port, Info info, int root)
Java binding ofMPI_COMM_CONNECT
.Intracomm
create(Group group)
Create a new communicator.CartComm
createCart(int[] dims, boolean[] periods, boolean reorder)
Creates a communicator to which the Cartesian topology information is attached.GraphComm
createDistGraph(int[] sources, int[] degrees, int[] destinations, int[] weights, Info info, boolean reorder)
Creates a communicator to which the distributed graph topology information is attached.GraphComm
createDistGraph(int[] sources, int[] degrees, int[] destinations, Info info, boolean reorder)
Creates a communicator to which the distributed graph topology information is attached.GraphComm
createDistGraphAdjacent(int[] sources, int[] sourceWeights, int[] destinations, int[] destWeights, Info info, boolean reorder)
Creates a communicator to which the distributed graph topology information is attached.GraphComm
createDistGraphAdjacent(int[] sources, int[] destinations, Info info, boolean reorder)
Creates a communicator to which the distributed graph topology information is attached.GraphComm
createGraph(int[] index, int[] edges, boolean reorder)
Creates a communicator to which the graph topology information is attached.Intracomm
createGroup(Group group, int tag)
Create a new intracommunicator for the given group.Intracomm
dup()
Duplicates this communicator.Intracomm
dupWithInfo(Info info)
Duplicates this communicator with the info object used in the call.void
exScan(java.lang.Object buf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.void
exScan(java.lang.Object sendbuf, java.lang.Object recvbuf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.Intracomm
iDup()
Duplicates this communicator.Request
iExScan(java.nio.Buffer buf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.Request
iExScan(java.nio.Buffer sendbuf, java.nio.Buffer recvbuf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.Request
iScan(java.nio.Buffer buf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.Request
iScan(java.nio.Buffer sendbuf, java.nio.Buffer recvbuf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.static java.lang.String
lookupName(java.lang.String service)
Java binding ofMPI_LOOKUP_NAME
usingMPI_INFO_NULL
.static java.lang.String
lookupName(java.lang.String service, Info info)
Java binding ofMPI_LOOKUP_NAME
.static java.lang.String
openPort()
Java binding ofMPI_OPEN_PORT
usingMPI_INFO_NULL
.static java.lang.String
openPort(Info info)
Java binding ofMPI_OPEN_PORT
.static void
publishName(java.lang.String service, java.lang.String port)
Java binding ofMPI_PUBLISH_NAME
usingMPI_INFO_NULL
.static void
publishName(java.lang.String service, Info info, java.lang.String port)
Java binding ofMPI_PUBLISH_NAME
.void
scan(java.lang.Object recvbuf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.void
scan(java.lang.Object sendbuf, java.lang.Object recvbuf, int count, Datatype type, Op op)
Perform a prefix reduction on data distributed across the group.Intercomm
spawn(java.lang.String command, java.lang.String[] argv, int maxprocs, Info info, int root, int[] errcodes)
Java binding ofMPI_COMM_SPAWN
.Intercomm
spawnMultiple(java.lang.String[] commands, java.lang.String[][] argv, int[] maxprocs, Info[] info, int root, int[] errcodes)
Java binding ofMPI_COMM_SPAWN_MULTIPLE
.Intracomm
split(int colour, int key)
Partition the group associated with this communicator and create a new communicator within each subgroup.Intracomm
splitType(int splitType, int key, Info info)
Partition the group associated with this communicator and create a new communicator within each subgroup.static void
unpublishName(java.lang.String service, java.lang.String port)
Java binding ofMPI_UNPUBLISH_NAME
usingMPI_INFO_NULL
.static void
unpublishName(java.lang.String service, Info info, java.lang.String port)
Java binding ofMPI_UNPUBLISH_NAME
.-
Methods inherited from class mpi.Comm
abort, allGather, allGather, allGatherv, allGatherv, allReduce, allReduce, allToAll, allToAllv, allToAllw, barrier, bcast, bSend, bSendInit, callErrhandler, compare, createIntercomm, createKeyval, deleteAttr, disconnect, dup, dupWithInfo, free, freeKeyval, gather, gather, gatherv, gatherv, gatherv, getAttr, getErrhandler, getGroup, getInfo, getName, getRank, getRequest, getSize, getTopology, iAllGather, iAllGather, iAllGatherv, iAllGatherv, iAllReduce, iAllReduce, iAllToAll, iAllToAllv, iAllToAllw, iBarrier, iBcast, ibSend, iDup, iGather, iGather, iGatherv, iGatherv, iGatherv, iNeighborAllGather, iNeighborAllGatherv, iNeighborAllToAll, iNeighborAllToAllv, iProbe, iRecv, iReduce, iReduce, iReduceScatter, iReduceScatter, iReduceScatterBlock, iReduceScatterBlock, irSend, iScatter, iScatter, iScatterv, iScatterv, iScatterv, iSend, isInter, isNull, isSend, neighborAllGather, neighborAllGatherv, neighborAllToAll, neighborAllToAllv, pack, packSize, probe, recv, recvInit, reduce, reduce, reduceLocal, reduceScatter, reduceScatter, reduceScatterBlock, reduceScatterBlock, rSend, rSendInit, scatter, scatter, scatterv, scatterv, scatterv, send, sendInit, sendRecv, sendRecvReplace, setAttr, setErrhandler, setInfo, setName, setType, sSend, sSendInit, unpack
-
-
-
-
Method Detail
-
clone
public Intracomm clone()
Duplicates this communicator.Java binding of
MPI_COMM_DUP
.It is recommended to use
dup()
instead ofclone()
because the last can't throw anMPIException
.
-
dup
public Intracomm dup() throws MPIException
Duplicates this communicator.Java binding of
MPI_COMM_DUP
.- Overrides:
dup
in classComm
- Returns:
- copy of this communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
iDup
public Intracomm iDup() throws MPIException
Duplicates this communicator.Java binding of
MPI_COMM_IDUP
.The new communicator can't be used before the operation completes. The request object must be obtained calling
Comm.getRequest()
.- Overrides:
iDup
in classComm
- Returns:
- copy of this communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
dupWithInfo
public Intracomm dupWithInfo(Info info) throws MPIException
Duplicates this communicator with the info object used in the call.Java binding of
MPI_COMM_DUP_WITH_INFO
.- Overrides:
dupWithInfo
in classComm
- Parameters:
info
- info object to associate with the new communicator- Returns:
- copy of this communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
split
public final Intracomm split(int colour, int key) throws MPIException
Partition the group associated with this communicator and create a new communicator within each subgroup.Java binding of the MPI operation
MPI_COMM_SPLIT
.- Parameters:
colour
- control of subset assignmentkey
- control of rank assignment- Returns:
- new communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
splitType
public final Intracomm splitType(int splitType, int key, Info info) throws MPIException
Partition the group associated with this communicator and create a new communicator within each subgroup.Java binding of the MPI operation
MPI_COMM_SPLIT_TYPE
.- Parameters:
splitType
- type of processes to be grouped togetherkey
- control of rank assignmentinfo
- info argument- Returns:
- new communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
create
public final Intracomm create(Group group) throws MPIException
Create a new communicator.Java binding of the MPI operation
MPI_COMM_CREATE
.- Parameters:
group
- group which is a subset of the group of this communicator- Returns:
- new communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
createGroup
public final Intracomm createGroup(Group group, int tag) throws MPIException
Create a new intracommunicator for the given group.Java binding of the MPI operation
MPI_COMM_CREATE_GROUP
.- Parameters:
group
- group which is a subset of the group of this communicatortag
- an integer tag- Returns:
- new communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
createCart
public final CartComm createCart(int[] dims, boolean[] periods, boolean reorder) throws MPIException
Creates a communicator to which the Cartesian topology information is attached. Create a cartesian topology communicator whose group is a subset of the group of this communicator.Java binding of the MPI operation
MPI_CART_CREATE
.The number of dimensions of the Cartesian grid is taken to be the size of the
dims
argument. The arrayperiods
must be the same size.- Parameters:
dims
- the number of processes in each dimensionperiods
-true
if grid is periodic,false
if not, in each dimensionreorder
-true
if ranking may be reordered,false
if not- Returns:
- new cartesian topology communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
createGraph
public final GraphComm createGraph(int[] index, int[] edges, boolean reorder) throws MPIException
Creates a communicator to which the graph topology information is attached.Java binding of the MPI operation
MPI_GRAPH_CREATE
.The number of nodes in the graph, nnodes, is taken to be size of the
index
argument.- Parameters:
index
- node degreesedges
- graph edgesreorder
-true
if ranking may be reordered,false
if not- Returns:
- new graph topology communicator
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
createDistGraph
public final GraphComm createDistGraph(int[] sources, int[] degrees, int[] destinations, int[] weights, Info info, boolean reorder) throws MPIException
Creates a communicator to which the distributed graph topology information is attached.Java binding of the MPI operation
MPI_DIST_GRAPH_CREATE
.The number of source nodes is the size of the
sources
argument.- Parameters:
sources
- source nodes for which this process specifies edgesdegrees
- number of destinations for each source nodedestinations
- destination nodes for the source nodesweights
- weights for source to destination edgesinfo
- hints on optimization and interpretation of weightsreorder
- the process may be reordered (true) or not (false)- Returns:
- communicator with distributed graph topology
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
createDistGraph
public final GraphComm createDistGraph(int[] sources, int[] degrees, int[] destinations, Info info, boolean reorder) throws MPIException
Creates a communicator to which the distributed graph topology information is attached.Java binding of the MPI operation
MPI_DIST_GRAPH_CREATE
usingMPI_UNWEIGHTED
.The number of source nodes is the size of the
sources
argument.- Parameters:
sources
- source nodes for which this process specifies edgesdegrees
- number of destinations for each source nodedestinations
- destination nodes for the source nodesinfo
- hints on optimization and interpretation of weightsreorder
- the process may be reordered (true) or not (false)- Returns:
- communicator with distributed graph topology
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
createDistGraphAdjacent
public final GraphComm createDistGraphAdjacent(int[] sources, int[] sourceWeights, int[] destinations, int[] destWeights, Info info, boolean reorder) throws MPIException
Creates a communicator to which the distributed graph topology information is attached.Java binding of the MPI operation
MPI_DIST_GRAPH_CREATE_ADJACENT
.The number of source/destination nodes is the size of the
sources
/destinations
argument.- Parameters:
sources
- ranks of processes for which the calling process is a destinationsourceWeights
- weights of the edges into the calling processdestinations
- ranks of processes for which the calling process is a sourcedestWeights
- weights of the edges out of the calling processinfo
- hints on optimization and interpretation of weightsreorder
- the process may be reordered (true) or not (false)- Returns:
- communicator with distributed graph topology
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
createDistGraphAdjacent
public final GraphComm createDistGraphAdjacent(int[] sources, int[] destinations, Info info, boolean reorder) throws MPIException
Creates a communicator to which the distributed graph topology information is attached.Java binding of the MPI operation
MPI_DIST_GRAPH_CREATE_ADJACENT
usingMPI_UNWEIGHTED
.The number of source/destination nodes is the size of the
sources
/destinations
argument.- Parameters:
sources
- ranks of processes for which the calling process is a destinationdestinations
- ranks of processes for which the calling process is a sourceinfo
- hints on optimization and interpretation of weightsreorder
- the process may be reordered (true) or not (false)- Returns:
- communicator with distributed graph topology
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
scan
public final void scan(java.lang.Object sendbuf, java.lang.Object recvbuf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_SCAN
.- Parameters:
sendbuf
- send buffer arrayrecvbuf
- receive buffer arraycount
- number of items in input buffertype
- data type of each item in input bufferop
- reduce operation- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
scan
public final void scan(java.lang.Object recvbuf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_SCAN
usingMPI_IN_PLACE
instead of the send buffer.- Parameters:
recvbuf
- receive buffer arraycount
- number of items in input buffertype
- data type of each item in input bufferop
- reduce operation- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
iScan
public final Request iScan(java.nio.Buffer sendbuf, java.nio.Buffer recvbuf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_ISCAN
.- Parameters:
sendbuf
- send buffer arrayrecvbuf
- receive buffer arraycount
- number of items in input buffertype
- data type of each item in input bufferop
- reduce operation- Returns:
- communication request
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
iScan
public final Request iScan(java.nio.Buffer buf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_ISCAN
usingMPI_IN_PLACE
instead of the send buffer.- Parameters:
buf
- send/receive buffer arraycount
- number of items in buffertype
- data type of each item in bufferop
- reduce operation- Returns:
- communication request
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
exScan
public final void exScan(java.lang.Object sendbuf, java.lang.Object recvbuf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_EXSCAN
.- Parameters:
sendbuf
- send buffer arrayrecvbuf
- receive buffer arraycount
- number of items in input buffertype
- data type of each item in input bufferop
- reduce operation- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
exScan
public final void exScan(java.lang.Object buf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_EXSCAN
usingMPI_IN_PLACE
instead of the send buffer.- Parameters:
buf
- receive buffer arraycount
- number of items in input buffertype
- data type of each item in input bufferop
- reduce operation- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
iExScan
public final Request iExScan(java.nio.Buffer sendbuf, java.nio.Buffer recvbuf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_IEXSCAN
.- Parameters:
sendbuf
- send buffer arrayrecvbuf
- receive buffer arraycount
- number of items in input buffertype
- data type of each item in input bufferop
- reduce operation- Returns:
- communication request
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
iExScan
public final Request iExScan(java.nio.Buffer buf, int count, Datatype type, Op op) throws MPIException
Perform a prefix reduction on data distributed across the group.Java binding of the MPI operation
MPI_IEXSCAN
usingMPI_IN_PLACE
instead of the send buffer.- Parameters:
buf
- receive buffer arraycount
- number of items in input buffertype
- data type of each item in input bufferop
- reduce operation- Returns:
- communication request
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
openPort
public static java.lang.String openPort() throws MPIException
Java binding ofMPI_OPEN_PORT
usingMPI_INFO_NULL
.- Returns:
- port name
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
openPort
public static java.lang.String openPort(Info info) throws MPIException
Java binding ofMPI_OPEN_PORT
.- Parameters:
info
- implementation-specific information- Returns:
- port name
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
closePort
public static void closePort(java.lang.String name) throws MPIException
Java binding ofMPI_CLOSE_PORT
.- Parameters:
name
- port name- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
accept
public final Intercomm accept(java.lang.String port, int root) throws MPIException
Java binding ofMPI_COMM_ACCEPT
usingMPI_INFO_NULL
.- Parameters:
port
- port nameroot
- rank in comm of root node- Returns:
- intercommunicator with client as remote group
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
accept
public final Intercomm accept(java.lang.String port, Info info, int root) throws MPIException
Java binding ofMPI_COMM_ACCEPT
.- Parameters:
port
- port nameinfo
- implementation-specific informationroot
- rank in comm of root node- Returns:
- intercommunicator with client as remote group
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
connect
public final Intercomm connect(java.lang.String port, int root) throws MPIException
Java binding ofMPI_COMM_CONNECT
usingMPI_INFO_NULL
.- Parameters:
port
- port nameroot
- rank in comm of root node- Returns:
- intercommunicator with server as remote group
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
connect
public final Intercomm connect(java.lang.String port, Info info, int root) throws MPIException
Java binding ofMPI_COMM_CONNECT
.- Parameters:
port
- port nameinfo
- implementation-specific informationroot
- rank in comm of root node- Returns:
- intercommunicator with server as remote group
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
publishName
public static void publishName(java.lang.String service, java.lang.String port) throws MPIException
Java binding ofMPI_PUBLISH_NAME
usingMPI_INFO_NULL
.- Parameters:
service
- service nameport
- port name- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
publishName
public static void publishName(java.lang.String service, Info info, java.lang.String port) throws MPIException
Java binding ofMPI_PUBLISH_NAME
.- Parameters:
service
- service nameinfo
- implementation-specific informationport
- port name- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
unpublishName
public static void unpublishName(java.lang.String service, java.lang.String port) throws MPIException
Java binding ofMPI_UNPUBLISH_NAME
usingMPI_INFO_NULL
.- Parameters:
service
- service nameport
- port name- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
unpublishName
public static void unpublishName(java.lang.String service, Info info, java.lang.String port) throws MPIException
Java binding ofMPI_UNPUBLISH_NAME
.- Parameters:
service
- service nameinfo
- implementation-specific informationport
- port name- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
lookupName
public static java.lang.String lookupName(java.lang.String service) throws MPIException
Java binding ofMPI_LOOKUP_NAME
usingMPI_INFO_NULL
.- Parameters:
service
- service name- Returns:
- port name
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
lookupName
public static java.lang.String lookupName(java.lang.String service, Info info) throws MPIException
Java binding ofMPI_LOOKUP_NAME
.- Parameters:
service
- service nameinfo
- implementation-specific information- Returns:
- port name
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
spawn
public final Intercomm spawn(java.lang.String command, java.lang.String[] argv, int maxprocs, Info info, int root, int[] errcodes) throws MPIException
Java binding ofMPI_COMM_SPAWN
. This intracommunicator will contain the group of spawned processes.- Parameters:
command
- name of program to be spawnedargv
- arguments to command; if this parameter is null,MPI_ARGV_NULL
will be used.maxprocs
- maximum number of processes to startinfo
- info object telling the runtime where and how to start the processesroot
- rank of process in which previous arguments are examinederrcodes
- one code per process; if this parameter is null,MPI_ERRCODES_IGNORE
will be used.- Returns:
- intercommunicator between original group and the newly spawned group
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
spawnMultiple
public final Intercomm spawnMultiple(java.lang.String[] commands, java.lang.String[][] argv, int[] maxprocs, Info[] info, int root, int[] errcodes) throws MPIException
Java binding ofMPI_COMM_SPAWN_MULTIPLE
. This intracommunicator will contain the group of spawned processes.- Parameters:
commands
- programs to be executedargv
- arguments for commands; if this parameter is null,MPI_ARGVS_NULL
will be used.maxprocs
- maximum number of processes to start for each commandinfo
- info objects telling the runtime where and how to start the processesroot
- rank of process in which previous arguments are examinederrcodes
- one code per process; if this parameter is null,MPI_ERRCODES_IGNORE
will be used.- Returns:
- intercommunicator between original group and the newly spawned group
- Throws:
MPIException
- Signals that an MPI exception of some sort has occurred.
-
-