MPI_T_INIT_THREAD(3)				     Open MPI				      MPI_T_INIT_THREAD(3)

MPI_T_init_thread — Initializes the MPI Tool information interface

SYNTAX
   C Syntax
	  #include <mpi.h>

	  int MPI_T_init_thread(int required, int *provided)

INPUT PARAMETERS
       • required: Desired level of thread support (integer).

OUTPUT PARAMETERS
       • provided: Available level of thread support (integer).

DESCRIPTION
       MPI_T_init_thread()  initializes	 the  MPI  tool	 information  interface.   Calls to MPI tool functions are
       allowed at any point in execution (including  before  MPI_Init()	 and  after  MPI_Finalize())  as  long	as
       MPI_T_init_thread() has been called at least once and the number of calls to MPI_T_init_thread() is greater
       than  the  number  of  calls  to	 MPI_T_finalize().  If	at  any	 point in execution the number of calls to
       MPI_T_finalize() equals the number of calls to MPI_T_init_thread() the MPI tool interface will no longer be
       available until another call to MPI_T_init_thread().

       MPI_T_init_thread(), like MPI_Init_thread(), has a provision to request a certain level of  thread  support
       in required:

       • MPI_THREAD_SINGLE: Only one thread will execute.

       • MPI_THREAD_FUNNELED:  If  the	process	 is  multithreaded, only the thread that called MPI_Init_thread <#
	 mpi-init-thread> will make MPI calls.

       • MPI_THREAD_SERIALIZED: If the process is multithreaded, only one thread will make MPI	library	 calls	at
	 one time.

       • MPI_THREAD_MULTIPLE:  If  the	process	 is  multithreaded,  multiple threads may call MPI at once with no
	 restrictions.

       The level of thread support available to the program is	set  in	 provided.  In	Open  MPI,  the	 value	is
       dependent  on  how the library was configured and built. Note that there is no guarantee that provided will
       be greater than or equal to required.

NOTES
       It is the caller’s responsibility to check the value of provided, as it may be less than what was requested
       in required.

ERRORS
       MPI_T_init_thread will fail if:

       • MPI_T_ERR_MEMORY: Out of memory

       • MPI_T_ERR_CANNOT_INIT: Interface not in the state to be initialized

       See also:

	  • MPI_T <#mpi-t>

	  • MPI_Init <#mpi-init>

	  • MPI_Init_thread <#mpi-init-thread>

Copyright
       2003-2026, The Open MPI Community

						   Mar 05, 2026				      MPI_T_INIT_THREAD(3)
