icetCreateMPICommunicator(3)

NAME
icetCreateMPICommunicator - Converts an MPI communicator to an ICE-T communicator.

SYNOPSIS
#include <GL/ice-t_mpi.h>

IceTCommunicator icetCreateMPICommunicator(MPI_Comm mpi_comm);

DESCRIPTION
ICE-T 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, ICE-T 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. ICE-T assumes that any error will cause the program to exit or be handled by the user application.

COPYRIGHT
Copyright © 2003 Sandia Corporation
Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive license for use of this work by or on behalf of the U.S. Government. Redistribution and use in source and binary forms, with or without modification, are permitted provided that this Notice and any statement of authorship are reproduced on all copies.

SEE ALSO
icetDestroyMPICommunicator, icetCreateContext