MPI_ATTR_PUT(3)

πŸ¦‹ NAME πŸ¦‹

MPI_Attr_put β€” stores an attribute value associated with a key. It's from Open MPI, section 3 of the manual, and bestie… this routine is deprecated in favor of MPI_Comm_set_attr <#mpi-comm-set-attr>. πŸ’€


✨ SYNTAX ✨

C Syntax

#include <mpi.h>

int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)

Fortran Syntax

USE MPI
! or the older form: INCLUDE 'mpif.h'

MPI_ATTR_PUT(COMM, KEYVAL, ATTRIBUTE_VAL, IERROR)
     INTEGER COMM, KEYVAL, ATTRIBUTE_VAL, IERROR

🌸 INPUT PARAMETERS 🌸

  • comm β€” the communicator the attribute is gonna get attached to, bestie (it's a handle). 🫢
  • keyval β€” the key value, exactly as it came back out of MPI_KEYVAL_CREATE (an integer).
  • attribute_val β€” the attribute value. the goods. ✨

πŸ’– OUTPUT PARAMETER πŸ’–

  • ierror β€” Fortran only: error status (an integer).

πŸ’… DESCRIPTION πŸ’…

okay so real talk: use of this routine is deprecated as of MPI-2, and it was straight up deleted in MPI-3. not me warning you twice 😭. Please use MPI_Comm_set_attr <#mpi-comm-set-attr> instead.

Also, this function does not have an mpi_f08 binding. no shade, just the facts. πŸ™ˆ


πŸ‘‘ ERRORS πŸ‘‘

Almost all MPI routines hand back an error value β€” C routines give it to you as the return result of the function, and Fortran routines put it in the last argument.

Before that error value gets returned, the current MPI error handler associated with the communication object (like a communicator, window, or file, bestie) is called. If there's no communication object associated with the MPI call, then the call counts as attached to MPI_COMM_SELF and it calls the associated MPI error handler. And when MPI_COMM_SELF is not initialized β€” like before MPI_Init <#mpi-init> / MPI_Init_thread <#mpi-init-thread>, after MPI_Finalize <#mpi-finalize>, or when you're using the Sessions Model exclusively β€” the error raises the initial error handler. That initial error handler can be changed by calling MPI_Comm_set_errhandler <#mpi-comm-set-errhandler> on MPI_COMM_SELF when you're using the World model, or by the mpi_initial_errhandler CLI argument to mpiexec, or by the info key to MPI_Comm_spawn <#mpi-comm-spawn> / MPI_Comm_spawn_multiple <#mpi-comm-spawn-multiple>. And if no other appropriate error handler has been set, then the MPI_ERRORS_RETURN error handler gets called for MPI I/O functions, and the MPI_ERRORS_ABORT error handler gets called for all other MPI functions.

Open MPI ships three predefined error handlers you can use:

  • MPI_ERRORS_ARE_FATAL β€” causes the program to abort all connected MPI processes. πŸ’€
  • MPI_ERRORS_ABORT β€” 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 it's called on a window or file, it acts as if MPI_Abort <#mpi-abort> was called on a communicator containing the group of processes in the corresponding window or file. If it's called on a session, it aborts only the local process.
  • MPI_ERRORS_RETURN β€” returns an error code to the application. 🫢

MPI applications can also implement their own error handlers by calling:

  • MPI_Comm_create_errhandler <#mpi-comm-create-errhandler> then MPI_Comm_set_errhandler <#mpi-comm-set-errhandler>
  • MPI_File_create_errhandler <#mpi-file-create-errhandler> then MPI_File_set_errhandler <#mpi-file-set-errhandler>
  • 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>
  • MPI_Win_create_errhandler <#mpi-win-create-errhandler> then MPI_Win_set_errhandler <#mpi-win-set-errhandler>
Note that MPI does not guarantee that an MPI program can continue past an error. no cap. 🚨

See the MPI man page <#open-mpi> for a full list of MPI error codes <#open-mpi-errors>.

See the Error Handling section of the MPI-3.1 standard for more information.

See also:

  • MPI_Comm_set_attr <#mpi-comm-set-attr>

Copyright 2003-2026, The Open MPI Community


and that's the whole page bestie πŸŽ€ source is Open MPI, it's MPI_ATTR_PUT(3), and this cutie is dated Sep 10, 2026. stan a deprecated icon, but please go call MPI_Comm_set_attr instead. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from