Open MPI logo

MPI_Bcast(3) man page (version 1.2.9)

  |   Home   |   Support   |   FAQ   |  

« Return to documentation listing



NAME

       MPI_Bcast - Broadcasts a message from the process with rank root to all
       other processes of the group.

SYNTAX


C Syntax

       #include <mpi.h>
       int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype,
            int root, MPI_Comm comm)

Fortran Syntax

       INCLUDE 'mpif.h'
       MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
            <type>    BUFFER(*)
            INTEGER   COUNT, DATATYPE, ROOT, COMM, IERROR

C++ Syntax

       #include <mpi.h>
       void MPI::Comm::Bcast(void* buffer, int count,
            const MPI::Datatype& datatype, int root) const = 0

INPUT/OUTPUT PARAMETERS

       buffer    Starting address of buffer (choice).

       count     Number of entries in buffer (integer).

       datatype  Data type of buffer (handle).

       root      Rank of broadcast root (integer).

       comm      Communicator (handle).

OUTPUT PARAMETER

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       MPI_Bcast broadcasts a message from the process with rank root  to  all
       processes of the group, itself included. It is called by all members of
       group using the same arguments for comm, root. On return, the  contents
       of root's communication buffer has been copied to all processes.

       General, derived datatypes are allowed for datatype. The type signature
       of count, datatype on any process must be equal to the  type  signature
       of  count,  datatype  at the root. This implies that the amount of data
       sent must be equal  to  the  amount  received,  pairwise  between  each
       process  and the root. MPI_Bcast and all other data-movement collective
       routines make this restriction. Distinct type maps between  sender  and
       receiver are still allowed.

       Example:  Broadcast  100  ints  from  process 0 to every process in the
       group.
           MPI_Comm comm;

       WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR

       When the communicator is an inter-communicator, the root process in the
       first  group  broadcasts data to all the processes in the second group.
       The first group defines the root process.  That process  uses  MPI_ROOT
       as  the  value  of  its  root  argument.   The  remaining processes use
       MPI_PROC_NULL as the value of their root argument.   All  processes  in
       the  second  group use the rank of that root process in the first group
       as the value of their root argument.   The receive buffer arguments  of
       the  processes  in  the  second  group must be consistent with the send
       buffer argument of the root process in the first group.

NOTES

       This function does not support the in-place option.

ERRORS

       Almost all MPI routines return an error value; C routines as the  value
       of  the  function  and Fortran routines in the last argument. C++ func-
       tions do not return errors. If the default  error  handler  is  set  to
       MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
       will be used to throw an MPI:Exception object.

       Before the error value is returned, the current MPI  error  handler  is
       called.  By  default, this error handler aborts the MPI job, except for
       I/O  function  errors.  The  error  handler   may   be   changed   with
       MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
       may be used to cause error values to be returned. Note  that  MPI  does
       not guarantee that an MPI program can continue past an error.

Open MPI 1.2                    September 2006             MPI_Bcast(3OpenMPI)

« Return to documentation listing