Synopsis
#include <IceTMPI.h>
IceTCommunicator icetCreateMPICommunicator( | ||
MPI_Comm mpi_comm ); |
Description
IceT requires a communicator in order to perform correctly. An application is free to build its own communicator, but many will simply prefer to use MPI, which is a well established parallel communication tool. Thus, IceT comes with an implementation of IceTCommunicator that uses the MPI communication layer underneath.
icetCreateMPICommunicator is used to create an IceTCommunicator that uses the mpi_comm MPI communication object. The resulting IceTCommunicator shares the same process group and process rank as the original MPI_Comm communicator.
mpi_comm is duplicated, which has two consiquences. First, all process in mpi_comm's group may need to call icetCreateMPICommunicator in order for any of them to proceed (depending on the MPI implementation). Second, mpi_comm and the resulting IceTCommunicator are decoupled from each other. Communications in one cannot affect another. Also, one communicator may be destroyed without affecting the other.
Return Value
An IceTCommunicator with the same process group and rank as mpi_comm. The communicator may be destroyed with a call to icetDestroyMPICommunicator.
Errors
None.
Warnings
None.
Bugs
All MPI errors are ignored.
Copyright
Copyright (C)2003 Sandia Corporation
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software.
This source code is released under the New BSD License.