bionic (3) MPI_Grequest_start.3.gz

Provided by: mpich-doc_3.3~a2-4_all bug

NAME

       MPI_Grequest_start -  Create and return a user-defined request

SYNOPSIS

       int MPI_Grequest_start( MPI_Grequest_query_function *query_fn,
                             MPI_Grequest_free_function *free_fn,
                             MPI_Grequest_cancel_function *cancel_fn,
                             void *extra_state, MPI_Request *request )

INPUT PARAMETERS

       query_fn
              - callback function invoked when request status is queried (function)
       free_fn
              - callback function invoked when request is freed (function)
       cancel_fn
              - callback function invoked when request is cancelled (function)
       extra_state
              - Extra state passed to the above functions.

OUTPUT PARAMETERS

       request
              - Generalized request (handle)

NOTES ON THE CALLBACK FUNCTIONS

       The  return  values  from the callback functions must be a valid MPI error code or class.  This value may
       either be the return value from any MPI routine (with one exception noted below) or any of the MPI  error
       classes.   For portable programs, MPI_ERR_OTHER may be used; to provide more specific information, create
       a new MPI error class or code with MPI_Add_error_class or MPI_Add_error_code and return that value.

       The MPI standard is not clear on the return values from the callback routines.  However, there are  notes
       in  the  standard that imply that these are MPI error codes.  For example, pages 169 line 46 through page
       170, line 1 require that the free_fn return an MPI error code that may be  used  in  the  MPI  completion
       functions when they return MPI_ERR_IN_STATUS .

       The  one  special  case  is  the error value returned by MPI_Comm_dup when the attribute callback routine
       returns a failure.  The MPI standard is not clear on what values may be used to indicate an error return.
       Further,  the  Intel  MPI  test suite made use of non-zero values to indicate failure, and expected these
       values to be returned by the MPI_Comm_dup when the attribute routines encountered an error.   Such  error
       values  may not be valid MPI error codes or classes.  Because of this, it is the user's responsibility to
       either use valid MPI error codes in return from the attribute callbacks, if those error codes are  to  be
       returned by a generalized request callback, or to detect and convert those error codes to valid MPI error
       codes (recall that MPI error classes are valid error codes).

THREAD AND INTERRUPT SAFETY

       This routine is thread-safe.  This means that this routine may be safely used by multiple threads without
       the  need  for  any  user-provided thread locks.  However, the routine is not interrupt safe.  Typically,
       this is due to the use of memory allocation routines such as malloc or other non-MPICH  runtime  routines
       that are themselves not interrupt-safe.

NOTES FOR FORTRAN

       All MPI routines in Fortran (except for MPI_WTIME and MPI_WTICK ) have an additional argument ierr at the
       end of the argument list.  ierr is an integer and has the same meaning as the return value of the routine
       in C.  In Fortran, MPI routines are subroutines, and are invoked with the call statement.

       All MPI objects (e.g., MPI_Datatype , MPI_Comm ) are of type INTEGER in Fortran.

ERRORS

       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_Comm_set_errhandler   (for   communicators),   MPI_File_set_errhandler   (for   files),    and
       MPI_Win_set_errhandler  (for  RMA windows).  The MPI-1 routine MPI_Errhandler_set may be used but its use
       is deprecated.  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; however, MPI
       implementations will attempt to continue whenever possible.

       MPI_SUCCESS
              - No error; MPI routine completed successfully.
       MPI_ERR_ARG
              - Invalid argument.  Some argument is invalid and is not identified  by  a  specific  error  class
              (e.g., MPI_ERR_RANK ).

                                                   11/12/2016                              MPI_Grequest_start(3)