1
1
openmpi/ompi/mpi/man/man3/MPI_T_init_thread.3.md
Jeff Squyres 7ace873b50 Add MPI_T.5 man page for Open MPI-specific info
Also added infrastructure to have developers write man pages in
Markdown (vs. nroff).  Pandoc >=v1.12 is used to convert those
Markdown files into actual nroff man pages.

Dist tarballs will contain generated nroff man pages; we don't want to
require users to have Pandoc installed.  Anyone who builds Open MPI
from a git clone will need to have Pandoc installed (similar to how we
treat Flex).  You can opt out of Open MPI's Pandoc-generated man pages
by configuring Open MPI with --disable-man-pages.  This will also
disable "make dist" (i.e., "make dist" will error if you configured
with --disable-man-pages).

Also removed the stuff to re-generate man pages.

This commit also:

1. Includes a new man page, written in Markdown
   (ompi/mpi/man/man5/MPI_T.5.md) that contains Open MPI-specific
   information about MPI_T.
2. Includes a converted ompi/mpi/man/man3/MPI_T_init_thread.3.md (from
   MPI_T_init_thread.3in -- i.e., nroff) just to show that Markdown
   can be used throughout the Open MPI code base for man pages.
3. Made the Makefiles in ompi/mpi/man/man?/ be full-fledged
   Makefile.am's (vs. Makefile.extras that are designed to be included
   in ompi/Makefile.am).  It is more convenient to test generation /
   installation of man pages when you can "make" and "make install" in
   their respective directories (vs. doing a build / install for the
   entire ompi project).
4. Removed logic from ompi/Makefile.am that re-generated man pages if
   opal_config.h changes.

Other man pages -- hopefully all of them! -- will be converted to
Markdown over time.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2020-05-02 12:45:31 -07:00

2.1 KiB

NAME

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() 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(5), MPI_Init_thread(3), MPI_T_finalize(3)