#include "mpi.h" int MPI_Init_thread(int *argc, char ***argv, int required, int *provided )
|argc||Pointer to the number of arguments
|argv||Pointer to the argument vector
|required||Level of desired thread support
Currently, MPICH places the same restrictions on MPI_INIT_THREAD as on MPI_INIT (see the MPI_INIT man page). When MPICH fully supports MPI-2, this restriction will be removed (as requried by the MPI-2 standard).
The ch_p4 device also catches SIGINT, SIGFPE, SIGBUS, and SIGSEGV; this helps the p4 device (and MPICH) more gracefully abort a failed program.
Note that if you are using software that needs the same signals, you may find that there is no way to use that software with the MPI implementation. The signals that cause the most trouble for applications include SIGIO, SIGALRM, and SIGPIPE. For example, using SIGIO and SIGPIPE may prevent X11 routines from working.
All MPI routines (except MPI_Wtime and MPI_Wtick) return an error value; C routines as the value of the function and Fortran routines in the last argument. Before the value is returned, the current MPI error handler is called. By default, this error handler aborts the MPI job. The error handler may be changed with MPI_Errhandler_set; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarentee that an MPI program can continue past an error.