H5FDmpio.h

00001 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00002  * Copyright by The HDF Group.                                               *
00003  * Copyright by the Board of Trustees of the University of Illinois.         *
00004  * All rights reserved.                                                      *
00005  *                                                                           *
00006  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
00007  * terms governing use, modification, and redistribution, is contained in    *
00008  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
00009  * of the source code distribution tree; Copyright.html can be found at the  *
00010  * root level of an installed copy of the electronic HDF5 document set and   *
00011  * is linked from the top-level documents page.  It can also be found at     *
00012  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
00013  * access to either file, you may request a copy from help@hdfgroup.org.     *
00014  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00015 
00016 /*
00017  * Programmer:  Robb Matzke <matzke@llnl.gov>
00018  *              Monday, August  2, 1999
00019  *
00020  * Purpose:     The public header file for the mpio driver.
00021  */
00022 #ifndef H5FDmpio_H
00023 #define H5FDmpio_H
00024 
00025 #ifdef H5_HAVE_PARALLEL
00026 #   define H5FD_MPIO    (H5FD_mpio_init())
00027 #else
00028 #   define H5FD_MPIO    (-1)
00029 #endif /* H5_HAVE_PARALLEL */
00030 
00031 /* Macros */
00032 
00033 #define IS_H5FD_MPIO(f) /* (H5F_t *f) */                                    \
00034     (H5FD_MPIO==H5F_DRIVER_ID(f))
00035 
00036 #ifdef H5_HAVE_PARALLEL
00037 /*Turn on H5FDmpio_debug if H5F_DEBUG is on */
00038 #ifdef H5F_DEBUG
00039 #ifndef H5FDmpio_DEBUG
00040 #define H5FDmpio_DEBUG
00041 #endif
00042 #endif
00043 
00044 /* Function prototypes */
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048 H5_DLL hid_t H5FD_mpio_init(void);
00049 H5_DLL void H5FD_mpio_term(void);
00050 H5_DLL herr_t H5Pset_fapl_mpio(hid_t fapl_id, MPI_Comm comm, MPI_Info info);
00051 H5_DLL herr_t H5Pget_fapl_mpio(hid_t fapl_id, MPI_Comm *comm/*out*/,
00052                         MPI_Info *info/*out*/);
00053 H5_DLL herr_t H5Pset_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t xfer_mode);
00054 H5_DLL herr_t H5Pget_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t *xfer_mode/*out*/);
00055 H5_DLL herr_t H5Pset_dxpl_mpio_collective_opt(hid_t dxpl_id, H5FD_mpio_collective_opt_t opt_mode);
00056 H5_DLL herr_t H5Pset_dxpl_mpio_chunk_opt(hid_t dxpl_id, H5FD_mpio_chunk_opt_t opt_mode);
00057 H5_DLL herr_t H5Pset_dxpl_mpio_chunk_opt_num(hid_t dxpl_id, unsigned num_chunk_per_proc);
00058 H5_DLL herr_t H5Pset_dxpl_mpio_chunk_opt_ratio(hid_t dxpl_id, unsigned percent_num_proc_per_chunk);
00059 #ifdef __cplusplus
00060 }
00061 #endif
00062 
00063 #endif /* H5_HAVE_PARALLEL */
00064 
00065 #endif