MPI_Buffer_detach man page on Cygwin

Man page or keyword search:  
man Server   22533 pages
apropos Keyword Search (all sections)
Output format
Cygwin logo
[printable version]

MPI_Buffer_detach(3)		   Open MPI		  MPI_Buffer_detach(3)

NAME
       MPI_Buffer_detach  -  Removes an existing buffer (for use in MPI_Bsend,
       etc.)

SYNTAX
C Syntax
       #include <mpi.h>
       int MPI_Buffer_detach(void *buf, int *size)

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

C++ Syntax
       #include <mpi.h>
       int Detach_buffer(void*& buffer)

Java Syntax
       import mpi.*;
       byte[] MPI.Buffer_detach()

OUTPUT PARAMETERS
       buf	 Initial buffer address (choice).

       size	 Buffer size, in bytes (integer).

       IERROR	 Fortran only: Error status (integer).

DESCRIPTION
       Detach the buffer currently associated with MPI. The call  returns  the
       address	and the size of the detached buffer. This operation will block
       until all messages currently in the buffer have been transmitted.  Upon
       return  of  this	 function,  the user may reuse or deallocate the space
       taken by the buffer.

       Example: Calls to attach and detach buffers.

	   #define BUFFSIZE 10000
	   int size
	   char *buff;
	   MPI_Buffer_attach( malloc(BUFFSIZE), BUFFSIZE);
	   /* a buffer of 10000 bytes can now be used by MPI_Bsend */
	   MPI_Buffer_detach( &buff, &size);
	   /* Buffer size reduced to zero */
	   MPI_Buffer_attach( buff, size);
	   /* Buffer of 10000 bytes available again */

NOTES
       The reason that MPI_Buffer_detach returns the address and size  of  the
       buffer  being  detached	is  to	allow  nested libraries to replace and
       restore the buffer. For example, consider

	   int size, mysize, idummy;
	   void *ptr, *myptr, *dummy;
	   MPI_Buffer_detach( &ptr, &size );
	   MPI_Buffer_attach( myptr, mysize );
	   ...
	   ... library code ...
	   ...
	   MPI_Buffer_detach( &dummy, &idummy );
	   MPI_Buffer_attach( ptr, size );

       This is much like the action of the UNIX signal	routine	 and  has  the
       same  strengths	(it's simple) and weaknesses (it only works for nested
       usages).

       For Fortran: The Fortran binding for this routine is different. Because
       Fortran	does  not  have pointers, it is impossible to provide a way to
       use the output of this routine to exchange buffers. In this case,  only
       the size field is set.

       For  C:	Even though the buf argument is declared as void, it is really
       the address of a void pointer. See Rationale, below, for more details.

       Even though the C  functions  MPI_Buffer_attach	and  MPI_Buffer_detach
       both have a first argument of type void*, these arguments are used dif‐
       ferently: A pointer to the buffer is passed to  MPI_Buffer_attach;  the
       address	of  the	 pointer  is passed to MPI_Buffer_detach, so that this
       call can return the pointer value.

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.

SEE ALSO
       MPI_Buffer_attach
       MPI_Bsend

1.7.4				 Feb 04, 2014		  MPI_Buffer_detach(3)
[top]

List of man pages available for Cygwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net