Man Linux: Main Page and Category List

NAME

       MPI_Register_datarep - Defines data representation.

SYNTAX

       C Syntax
           #include <mpi.h>
           int MPI_Register_datarep(char *datarep,
                  MPI_Datarep_conversion_function *read_conversion_fn,
                  MPI_Datarep_conversion_function *write_conversion_fn,
                  MPI_Datarep_extent_function *dtype_file_extent_fn,
                  void *extra_state)

       Fortran Syntax
           INCLUDE ’mpif.h’
           MPI_REGISTER_DATAREP(DATAREP, READ_CONVERSION_FN,
            WRITE_CONVERSION_FN, DTYPE_FILE_EXTENT_FN,
            EXTRA_STATE, IERROR)
                 CHARACTER*(*) DATAREP
                 EXTERNAL READ_CONVERSION_FN, WRITE_CONVERSION_FN,
                          DTYPE_FILE_EXTENT_FN
                 INTEGER   IERROR
                 INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

C++ Syntax

       #include <mpi.h>
       void MPI::Register_datarep(const char* datarep,
            MPI::Datarep_conversion_function* read_conversion_fn,
            MPI::Datarep_conversion_function* write_conversion_fn,
            MPI::Datarep_extent_function* dtype_file_extent_fn,
            void* extra_state)

INPUT PARAMETERS

       datarep   Data representation identifier (string).

       read_conversion_fn
                 Function  invoked  to  convert  from  file  representation to
                 native representation (function).

       write_conversion_fn
                 Function invoked to convert  from  native  representation  to
                 file representation (function).

       dtype_file_extent_fn
                 Function  invoked  to  get  the  extent  of  a  data  type as
                 represented in the file (function).

       extra_state
                 Extra state.

OUTPUT PARAMETER

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       MPI_Register_datarep defines a data representation. It  associates  the
       data  representation’s  identifier  (a  string) with the functions that
       convert from file representation to the native representation and  vice
       versa,  with  the  function  that  gets  the  extent  of a data type as
       represented in the file, as well as with "extra state," which  is  used
       for  passing  arguments. Once a data representation has been registered
       using this routine, you may specify its identifier as  an  argument  to
       MPI_File_set_view,  causing  subsequent  data-access operations to call
       the specified conversion functions.

       The  call  associates  read_conversion_fn,   write_conversion_fn,   and
       dtype_file_extent_fn  with  the data representation identifier datarep.
       datarep can then be used as an argument to  MPI_File_set_view,  causing
       subsequent  data  access operations to call the conversion functions to
       convert all data items accessed between file  data  representation  and
       native  representation.  MPI_Register_datarep  is a local operation and
       only registers the data representation for the calling MPI process.  If
       datarep   is   already   defined,   an   error   in   the  error  class
       MPI_ERR_DUP_DATAREP is raised using the default file error handler. The
       length  of  a  data  representation  string  is limited to the value of
       MPI_MAX_DATAREP_STRING. MPI_MAX_DATAREP_STRING must have a value of  at
       least  64.  No routines are provided to delete data representations and
       free the associated resources; it is not expected that  an  application
       will generate them in significant numbers.

NOTES

       The  Fortran version of each MPI I/O routine includes a final argument,
       IERROR, which is not defined in the PARAMETERS sections. This  argument
       is used to return the error status of the routine in the manner typical
       for Fortran library routines.

       The C version of each routine returns an error  status  as  an  integer
       return value.

       Error  classes  are  found  in mpi.h (for C), mpif.h (for Fortran), and
       mpi++.h (for C++).

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++
       functions 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.  For  MPI I/O function errors, the default error handler is set
       to  MPI_ERRORS_RETURN.  The  error  handler   may   be   changed   with
       MPI_File_set_errhandler;      the      predefined     error     handler
       MPI_ERRORS_ARE_FATAL may be used to make I/O errors  fatal.  Note  that
       MPI  does not guarantee that an MPI program can continue past an error.