1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group.                                               *
3  * Copyright by the Board of Trustees of the University of Illinois.         *
4  * All rights reserved.                                                      *
5  *                                                                           *
6  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
7  * terms governing use, modification, and redistribution, is contained in    *
8  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
9  * of the source code distribution tree; Copyright.html can be found at the  *
10  * root level of an installed copy of the electronic HDF5 document set and   *
11  * is linked from the top-level documents page.  It can also be found at     *
12  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
13  * access to either file, you may request a copy from help@hdfgroup.org.     *
14  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 module hdf5.H5FDmpi;
17 
18 /*
19  * Programmer:  Quincey Koziol <koziol@ncsa.uiuc.edu>
20  *              Friday, January 30, 2004
21  *
22  * Purpose:	The public header file for common items for all MPI VFL drivers
23  */
24 
25 //public import hdf5.H5FDmpio;
26 
27 extern(C):
28 
29 /***** Macros for One linked collective IO case. *****/
30 /* The default value to do one linked collective IO for all chunks.
31    If the average number of chunks per process is greater than this value,
32       the library will create an MPI derived datatype to link all chunks to do collective IO.
33       The user can set this value through an API. */
34 
35 enum H5D_ONE_LINK_CHUNK_IO_THRESHOLD = 0;
36 /***** Macros for multi-chunk collective IO case. *****/
37 /* The default value of the threshold to do collective IO for this chunk.
38    If the average percentage of processes per chunk is greater than the default value,
39    collective IO is done for this chunk.
40 */
41 
42 enum H5D_MULTI_CHUNK_IO_COL_THRESHOLD = 60;
43 /* Type of I/O for data transfer properties */
44 enum H5FD_mpio_xfer_t {
45     H5FD_MPIO_INDEPENDENT = 0, 		/*zero is the default*/
46     H5FD_MPIO_COLLECTIVE
47 }
48 
49 enum {
50     H5FD_MPIO_INDEPENDENT = 0, 		/*zero is the default*/
51     H5FD_MPIO_COLLECTIVE
52 }
53 
54 /* Type of chunked dataset I/O */
55 enum H5FD_mpio_chunk_opt_t {
56     H5FD_MPIO_CHUNK_DEFAULT = 0,
57     H5FD_MPIO_CHUNK_ONE_IO,  		/*zero is the default*/
58     H5FD_MPIO_CHUNK_MULTI_IO
59 }
60 
61 enum {
62     H5FD_MPIO_CHUNK_DEFAULT = 0,
63     H5FD_MPIO_CHUNK_ONE_IO,  		/*zero is the default*/
64     H5FD_MPIO_CHUNK_MULTI_IO
65 }
66 
67 /* Type of collective I/O */
68 enum H5FD_mpio_collective_opt_t {
69     H5FD_MPIO_COLLECTIVE_IO = 0,
70     H5FD_MPIO_INDIVIDUAL_IO  		/*zero is the default*/
71 }
72 
73 enum {
74     H5FD_MPIO_COLLECTIVE_IO = 0,
75     H5FD_MPIO_INDIVIDUAL_IO  		/*zero is the default*/
76 }
77 
78