.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "MPI_BSEND" "3" "Sep 17, 2026" "" "Open MPI" .sp MPI_Bsend — Basic send with user\-specified buffering. .SH SYNTAX .SS C Syntax .INDENT 0.0 .INDENT 3.5 .sp .EX #include int MPI_Bsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) .EE .UNINDENT .UNINDENT .SS Fortran Syntax .INDENT 0.0 .INDENT 3.5 .sp .EX USE MPI ! or the older form: INCLUDE \(aqmpif.h\(aq MPI_BSEND(BUF, COUNT,DATATYPE, DEST, TAG, COMM, IERROR) BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR .EE .UNINDENT .UNINDENT .SS Fortran 2008 Syntax .INDENT 0.0 .INDENT 3.5 .sp .EX USE mpi_f08 MPI_Bsend(buf, count, datatype, dest, tag, comm, ierror) TYPE(*), DIMENSION(..), INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror .EE .UNINDENT .UNINDENT .SH INPUT PARAMETERS .INDENT 0.0 .IP \(bu 2 \fBbuf\fP : Initial address of send buffer (choice). .IP \(bu 2 \fBcount\fP : Number of entries in send buffer (nonnegative integer). .IP \(bu 2 \fBdatatype\fP : Datatype of each send buffer element (handle). .IP \(bu 2 \fBdest\fP : Rank of destination (integer). .IP \(bu 2 \fBtag\fP : Message tag (integer). .IP \(bu 2 \fBcomm\fP : Communicator (handle). .UNINDENT .SH OUTPUT PARAMETERS .INDENT 0.0 .IP \(bu 2 \fBierror\fP : Fortran only: Error status (integer). .UNINDENT .SH DESCRIPTION .sp MPI_Bsend performs a buffered\-mode, blocking send. .SH NOTES .sp This send is provided as a convenience function; it allows the user to send messages without worrying about where they are buffered (because the user must have provided buffer space with MPI_Buffer_attach \%<#\:mpi-buffer-attach>). .sp In deciding how much buffer space to allocate, remember that the buffer space is not available for reuse by subsequent MPI_Bsends unless you are certain that the message has been received (not just that it should have been received). For example, this code does not allocate enough buffer space: .INDENT 0.0 .INDENT 3.5 .sp .EX MPI_Buffer_attach( b, n*sizeof(double) + MPI_BSEND_OVERHEAD ); for (i=0; i/MPI_Init_thread \%<#\:mpi-init-thread>, after MPI_Finalize \%<#\:mpi-finalize>, or when using the Sessions Model exclusively) the error raises the initial error handler. The initial error handler can be changed by calling MPI_Comm_set_errhandler \%<#\:mpi-comm-set-errhandler> on MPI_COMM_SELF when using the World model, or the mpi_initial_errhandler CLI argument to mpiexec or info key to MPI_Comm_spawn \%<#\:mpi-comm-spawn>/MPI_Comm_spawn_multiple \%<#\:mpi-comm-spawn-multiple>\&. If no other appropriate error handler has been set, then the MPI_ERRORS_RETURN error handler is called for MPI I/O functions and the MPI_ERRORS_ABORT error handler is called for all other MPI functions. .sp Open MPI includes three predefined error handlers that can be used: .INDENT 0.0 .IP \(bu 2 \fBMPI_ERRORS_ARE_FATAL\fP Causes the program to abort all connected MPI processes. .IP \(bu 2 \fBMPI_ERRORS_ABORT\fP An error handler that can be invoked on a communicator, window, file, or session. When called on a communicator, it acts as if MPI_Abort \%<#\:mpi-abort> was called on that communicator. If called on a window or file, acts as if MPI_Abort \%<#\:mpi-abort> was called on a communicator containing the group of processes in the corresponding window or file. If called on a session, aborts only the local process. .IP \(bu 2 \fBMPI_ERRORS_RETURN\fP Returns an error code to the application. .UNINDENT .sp MPI applications can also implement their own error handlers by calling: .INDENT 0.0 .IP \(bu 2 MPI_Comm_create_errhandler \%<#\:mpi-comm-create-errhandler> then MPI_Comm_set_errhandler \%<#\:mpi-comm-set-errhandler> .IP \(bu 2 MPI_File_create_errhandler \%<#\:mpi-file-create-errhandler> then MPI_File_set_errhandler \%<#\:mpi-file-set-errhandler> .IP \(bu 2 MPI_Session_create_errhandler \%<#\:mpi-session-create-errhandler> then MPI_Session_set_errhandler \%<#\:mpi-session-set-errhandler> or at MPI_Session_init \%<#\:mpi-session-init> .IP \(bu 2 MPI_Win_create_errhandler \%<#\:mpi-win-create-errhandler> then MPI_Win_set_errhandler \%<#\:mpi-win-set-errhandler> .UNINDENT .sp Note that MPI does not guarantee that an MPI program can continue past an error. .sp See the MPI man page \%<#\:open-mpi> for a full list of MPI error codes \%<#\:open-mpi-errors>\&. .sp See the Error Handling section of the MPI\-3.1 standard for more information. .SH Copyright 2003-2026, The Open MPI Community .\" End of generated man page.