MPI_Init_thread man page on Cygwin

Man page or keyword search:  
man Server   22533 pages
apropos Keyword Search (all sections)
Output format
Cygwin logo
[printable version]

MPI_Init_thread(3)		   Open MPI		    MPI_Init_thread(3)

NAME
       MPI_Init_thread - Initializes the MPI execution environment

SYNTAX
C Syntax
       #include <mpi.h>
       int MPI_Init_thread(int *argc, char ***argv,
	    int required, int *provided)

Fortran Syntax
       INCLUDE 'mpif.h'
       MPI_INIT_THREAD(REQUIRED, PROVIDED, IERROR)
	    INTEGER   REQUIRED, PROVIDED, IERROR

C++ Syntax
       #include <mpi.h>
       int MPI::Init_thread(int& argc, char**& argv, int required)
       int MPI::Init_thread(int required)

INPUT PARAMETERS
       argc	 C/C++ only: Pointer to the number of arguments.

       argv	 C/C++ only: Argument vector.

       required	 Desired level of thread support (integer).

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

       IERROR	 Fortran only: Error status (integer).

DESCRIPTION
       This  routine, or MPI_Init, must be called before any other MPI routine
       (apart from MPI_Initialized) is called. MPI can be initialized at  most
       once; subsequent calls to MPI_Init or MPI_Init_thread are erroneous.

       MPI_Init_thread,	 as compared to MPI_Init, 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  restric‐
			       tions.

       The  level  of  thread  support available to the program is set in pro‐
       vided, except in C++, where it is the return value of the function.  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.

       Also  note  that	 calling  MPI_Init_thread  with	 a  required  value of
       MPI_THREAD_SINGLE is equivalent to calling MPI_Init.

       All MPI programs must contain a call to	MPI_Init  or  MPI_Init_thread.
       Open MPI accepts the C/C++ argc and argv arguments to main, but neither
       modifies, interprets, nor distributes them:

	    {
		 /* declare variables */
		 MPI_Init_thread(&argc, &argv, req, &prov);
		 /* parse arguments */
		 /* main program */
		 MPI_Finalize();
	    }

NOTES
       The Fortran version does not have provisions  for  argc	and  argv  and
       takes only IERROR.

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

       The MPI Standard	 does  not  say	 what  a  program  can	do  before  an
       MPI_Init_thread	or  after an MPI_Finalize. In the Open MPI implementa‐
       tion, it should do as little as possible. In particular, avoid anything
       that  changes the external state of the program, such as opening files,
       reading standard input, or writing to standard output.

MPI_THREAD_MULTIPLE Support
       MPI_THREAD_MULTIPLE support is included if Open MPI was configured with
       the  --enable-mpi-thread-multiple  configure switch.  You can check the
       output of ompi_info(1) to see if Open MPI has MPI_THREAD_MULTIPLE  sup‐
       port:

       shell$ ompi_info | grep -i thread
		 Thread support: posix (mpi: yes, progress: no)
       shell$

       The  "mpi: yes" portion of the above output indicates that Open MPI was
       compiled with MPI_THREAD_MULTIPLE support.

       Note that MPI_THREAD_MULTIPLE  support  is  only	 lightly  tested.   It
       likely does not work for thread-intensive applications.	Also note that
       only the MPI  point-to-point  communication  functions  for  the	 BTL's
       listed  below  are  considered  thread  safe.   Other support functions
       (e.g., MPI attributes) have not been certified as safe when  simultane‐
       ously used by multiple threads.

	   tcp
	   sm
	   mx
	   elan
	   self

       Note  that  Open	 MPI's	thread support is in a fairly early stage; the
       above devices are likely to work, but  the  latency  is	likely	to  be
       fairly  high.   Specifically,  efforts so far have concentrated on cor‐
       rectness, not performance (yet).

ERRORS
       Almost all MPI routines return an error value; C routines as the	 value
       of  the	function  and Fortran routines in the last argument. C++ func‐
       tions do not return errors. If the default  error  handler  is  set  to
       MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
       will be used to throw an MPI::Exception object.

       Before the error value is returned, the current MPI  error  handler  is
       called.	By  default, this error handler aborts the MPI job, except for
       I/O  function  errors.  The  error  handler   may   be	changed	  with
       MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
       may be used to cause error values to be returned. Note  that  MPI  does
       not guarantee that an MPI program can continue past an error.

SEE ALSO
       MPI_Init
       MPI_Initialized
       MPI_Finalize

1.7.4				 Feb 04, 2014		    MPI_Init_thread(3)
[top]

List of man pages available for Cygwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net