MPI_OPEN_PORT(3)

πŸ’… MPI_OPEN_PORT(3) πŸ’…

okay bestie, welcome to the Open MPI manual, and today's main character is MPI_Open_port β€” literally the glow-up that gives your server an address so clients can slide into its DMs. 🫢


✨ NAME ✨

MPI_Open_port β€” establishes a network address for a server to accept connections from clients. no cap, that's the whole vibe. πŸ’–


🌸 SYNTAX 🌸

πŸ’» C Syntax

#include <mpi.h>

int MPI_Open_port(MPI_Info info, char *port_name)

🧚 Fortran Syntax

USE MPI
! or the older form: INCLUDE 'mpif.h'
MPI_OPEN_PORT(INFO, PORT_NAME, IERROR)
     CHARACTER*(*)   PORT_NAME
     INTEGER         INFO, IERROR

πŸ¦‹ Fortran 2008 Syntax

USE mpi_f08
MPI_Open_port(info, port_name, ierror)
     TYPE(MPI_Info), INTENT(IN) :: info
     CHARACTER(LEN=MPI_MAX_PORT_NAME), INTENT(OUT) :: port_name
     INTEGER, OPTIONAL, INTENT(OUT) :: ierror

πŸŽ€ INPUT PARAMETER πŸŽ€

  • info β€” the options for how to establish an address (it's a handle). and the plot twist? no options are currently supported, so it's giving "bring nothing to the function" energy. πŸ™ˆ

⭐ OUTPUT PARAMETERS ⭐

  • port_name β€” the newly established port, as a string. this is the shiny new address, bestie. πŸ”₯
  • ierror β€” Fortran only: the error status, an integer. πŸ’œ

🌈 DESCRIPTION 🌈

MPI_Open_port establishes a network address β€” encoded all cute inside the port_name string β€” at which the server will be able to accept connections from clients. port_name is supplied by the system, not by you, so don't try to freelance it. πŸ’…

MPI copies a system-supplied port name into port_name. that port_name identifies the newly opened port and can be used by a client to contact the server. and the maximum size string that may be supplied by the system is MPI_MAX_PORT_NAME β€” that's the ceiling, periodt. πŸ‘‘


πŸ“ SUPPORTED INFO KEYS πŸ“

None. that's it. that's the section. πŸ’€


πŸ’€ ERRORS πŸ’€

Almost all MPI routines return an error value, bestie β€” C routines hand it back as the return result of the function, and Fortran routines stash it in the last argument. πŸ“¬

Before the error value is returned, the current MPI error handler associated with the communication object (like, a communicator, window, or file) is called. If no communication object is associated with the MPI call, then the call is considered attached to MPI_COMM_SELF and will call the associated MPI error handler. When MPI_COMM_SELF is not initialized (i.e., before MPI_Init/MPI_Init_thread, after 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 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_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. 😭

Open MPI includes three predefined error handlers that can be used:

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

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

  • MPI_Comm_create_errhandler then MPI_Comm_set_errhandler
  • MPI_File_create_errhandler then MPI_File_set_errhandler
  • MPI_Session_create_errhandler then MPI_Session_set_errhandler or at MPI_Session_init
  • MPI_Win_create_errhandler then MPI_Win_set_errhandler
⚠️ note that MPI does not guarantee that an MPI program can continue past an error. so like… don't be shocked, bestie. πŸ™ˆ

See the MPI man page for a full list of MPI error codes. πŸ‘€

See the Error Handling section of the MPI-3.1 standard for more information. πŸ“š

🌟 SEE ALSO 🌟

  • MPI_Comm_accept
  • MPI_Comm_connect

Copyright 2003-2026, The Open MPI Community. πŸŽ€


and that's the tea, bestie β€” this page is from the Open MPI manual, dated Sep 11, 2026, brought to you by The Open MPI Community (copyright 2003-2026). slay, stay connected, and may your ports always be open. πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from