Open MPI logo

MPI_Buffer_attach(3) man page (version 1.3.4)

  |   Home   |   Support   |   FAQ   |  

« Return to documentation listing


       MPI_Buffer_attach - Attaches a user-defined buffer for sending.


C Syntax

       #include <mpi.h>
       int MPI_Buffer_attach(void *buf, int size)

Fortran Syntax

       INCLUDE 'mpif.h'
            <type>    BUF(*)
            INTEGER   SIZE, IERROR

C++ Syntax

       #include <mpi.h>
       void Attach_buffer(void* buffer, int size)


       buf       Initial buffer address (choice).

       size      Buffer size, in bytes (integer).


       IERROR    Fortran only: Error status (integer).


       Provides  to MPI a buffer in the user's memory to be used for buffering
       outgoing messages. The buffer is used only by messages sent in buffered
       mode. Only one buffer can be attached to a process at a time.


       The size given should be the sum of the sizes of all outstanding Bsends
       that you intend to have, plus MPI_BSEND_OVERHEAD bytes for  each  Bsend
       that  you  do.  For  the  purposes  of calculating size, you should use
       MPI_Pack_size. In other words, in the code

           MPI_Buffer_attach( buf, size );
           MPI_Bsend( ..., count=20, datatype=type1, ... );
           MPI_Bsend( ..., count=40, datatype=type2, ... );

       the value of size in the MPI_Buffer_attach call should be greater  than
       the value computed by

           MPI_Pack_size( 20, type1, comm, &s1 );
           MPI_Pack_size( 40, type2, comm, &s2 );
           size = s1 + s2 + 2 * MPI_BSEND_OVERHEAD;

       MPI_BSEND_OVERHEAD gives the maximum amount of buffer space that may be
       used by the Bsend routines. This value is in mpi.h for C and mpif.h for
       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.



1.3.4                            Nov 11, 2009             MPI_Buffer_attach(3)

« Return to documentation listing