Package mpi

Class Intracomm

  • All Implemented Interfaces:
    java.lang.Cloneable, Freeable
    Direct Known Subclasses:
    CartComm, GraphComm

    public class Intracomm
    extends Comm
    This class represents intracommunicator.
    • Constructor Detail

      • Intracomm

        protected Intracomm()
      • Intracomm

        protected Intracomm​(long handle)
      • Intracomm

        protected Intracomm​(long[] commRequest)
    • Method Detail

      • clone

        public Intracomm clone()
        Duplicates this communicator.

        Java binding of MPI_COMM_DUP.

        It is recommended to use dup() instead of clone() because the last can't throw an MPIException.

        Overrides:
        clone in class Comm
        Returns:
        copy of this communicator
      • dup

        public Intracomm dup()
                      throws MPIException
        Duplicates this communicator.

        Java binding of MPI_COMM_DUP.

        Overrides:
        dup in class Comm
        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 class Comm
        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 class Comm
        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 assignment
        key - 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 together
        key - control of rank assignment
        info - 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 communicator
        tag - 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 array periods must be the same size.

        Parameters:
        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
        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 degrees
        edges - graph edges
        reorder - 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 edges
        degrees - number of destinations for each source node
        destinations - destination nodes for the source nodes
        weights - weights for source to destination edges
        info - hints on optimization and interpretation of weights
        reorder - 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 using MPI_UNWEIGHTED.

        The number of source nodes is the size of the sources argument.

        Parameters:
        sources - source nodes for which this process specifies edges
        degrees - number of destinations for each source node
        destinations - destination nodes for the source nodes
        info - hints on optimization and interpretation of weights
        reorder - 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 destination
        sourceWeights - weights of the edges into the calling process
        destinations - ranks of processes for which the calling process is a source
        destWeights - weights of the edges out of the calling process
        info - hints on optimization and interpretation of weights
        reorder - 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 using MPI_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 destination
        destinations - ranks of processes for which the calling process is a source
        info - hints on optimization and interpretation of weights
        reorder - 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 array
        recvbuf - receive buffer array
        count - number of items in input buffer
        type - data type of each item in input buffer
        op - 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 using MPI_IN_PLACE instead of the send buffer.

        Parameters:
        recvbuf - receive buffer array
        count - number of items in input buffer
        type - data type of each item in input buffer
        op - 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 array
        recvbuf - receive buffer array
        count - number of items in input buffer
        type - data type of each item in input buffer
        op - 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 using MPI_IN_PLACE instead of the send buffer.

        Parameters:
        buf - send/receive buffer array
        count - number of items in buffer
        type - data type of each item in buffer
        op - 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 array
        recvbuf - receive buffer array
        count - number of items in input buffer
        type - data type of each item in input buffer
        op - 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 using MPI_IN_PLACE instead of the send buffer.

        Parameters:
        buf - receive buffer array
        count - number of items in input buffer
        type - data type of each item in input buffer
        op - 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 array
        recvbuf - receive buffer array
        count - number of items in input buffer
        type - data type of each item in input buffer
        op - 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 using MPI_IN_PLACE instead of the send buffer.

        Parameters:
        buf - receive buffer array
        count - number of items in input buffer
        type - data type of each item in input buffer
        op - 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 of MPI_OPEN_PORT using MPI_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 of MPI_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 of MPI_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 of MPI_COMM_ACCEPT using MPI_INFO_NULL.
        Parameters:
        port - port name
        root - 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 of MPI_COMM_ACCEPT.
        Parameters:
        port - port name
        info - implementation-specific information
        root - 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 of MPI_COMM_CONNECT using MPI_INFO_NULL.
        Parameters:
        port - port name
        root - 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 of MPI_COMM_CONNECT.
        Parameters:
        port - port name
        info - implementation-specific information
        root - 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 of MPI_PUBLISH_NAME using MPI_INFO_NULL.
        Parameters:
        service - service name
        port - 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 of MPI_PUBLISH_NAME.
        Parameters:
        service - service name
        info - implementation-specific information
        port - 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 of MPI_UNPUBLISH_NAME using MPI_INFO_NULL.
        Parameters:
        service - service name
        port - 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 of MPI_UNPUBLISH_NAME.
        Parameters:
        service - service name
        info - implementation-specific information
        port - 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 of MPI_LOOKUP_NAME using MPI_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 of MPI_LOOKUP_NAME.
        Parameters:
        service - service name
        info - 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 of MPI_COMM_SPAWN. This intracommunicator will contain the group of spawned processes.
        Parameters:
        command - name of program to be spawned
        argv - arguments to command; if this parameter is null, MPI_ARGV_NULL will be used.
        maxprocs - maximum number of processes to start
        info - info object telling the runtime where and how to start the processes
        root - rank of process in which previous arguments are examined
        errcodes - 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 of MPI_COMM_SPAWN_MULTIPLE. This intracommunicator will contain the group of spawned processes.
        Parameters:
        commands - programs to be executed
        argv - arguments for commands; if this parameter is null, MPI_ARGVS_NULL will be used.
        maxprocs - maximum number of processes to start for each command
        info - info objects telling the runtime where and how to start the processes
        root - rank of process in which previous arguments are examined
        errcodes - 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.