H5FDmpi.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 COPYING file, which can be found at the root of the source code *
  9. * distribution tree, or in https://www.hdfgroup.org/licenses. *
  10. * If you do not have access to either file, you may request a copy from *
  11. * help@hdfgroup.org. *
  12. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  13. /*
  14. * Programmer: Quincey Koziol
  15. * Friday, January 30, 2004
  16. *
  17. * Purpose: The public header file for common items for all MPI VFL drivers
  18. */
  19. #ifndef H5FDmpi_H
  20. #define H5FDmpi_H
  21. /***** Macros for One linked collective IO case. *****/
  22. /* The default value to do one linked collective IO for all chunks.
  23. If the average number of chunks per process is greater than this value,
  24. the library will create an MPI derived datatype to link all chunks to do collective IO.
  25. The user can set this value through an API. */
  26. #define H5D_ONE_LINK_CHUNK_IO_THRESHOLD 0
  27. /***** Macros for multi-chunk collective IO case. *****/
  28. /* The default value of the threshold to do collective IO for this chunk.
  29. If the average percentage of processes per chunk is greater than the default value,
  30. collective IO is done for this chunk.
  31. */
  32. #define H5D_MULTI_CHUNK_IO_COL_THRESHOLD 60
  33. /**
  34. * Type of I/O for data transfer properties
  35. */
  36. typedef enum H5FD_mpio_xfer_t {
  37. H5FD_MPIO_INDEPENDENT = 0, /**< Use independent I/O access */
  38. H5FD_MPIO_COLLECTIVE /**< Use collective I/O access */
  39. } H5FD_mpio_xfer_t;
  40. /* Type of chunked dataset I/O */
  41. typedef enum H5FD_mpio_chunk_opt_t {
  42. H5FD_MPIO_CHUNK_DEFAULT = 0,
  43. H5FD_MPIO_CHUNK_ONE_IO, /*zero is the default*/
  44. H5FD_MPIO_CHUNK_MULTI_IO
  45. } H5FD_mpio_chunk_opt_t;
  46. /* Type of collective I/O */
  47. typedef enum H5FD_mpio_collective_opt_t {
  48. H5FD_MPIO_COLLECTIVE_IO = 0,
  49. H5FD_MPIO_INDIVIDUAL_IO /*zero is the default*/
  50. } H5FD_mpio_collective_opt_t;
  51. /* Include all the MPI VFL headers */
  52. #include "H5FDmpio.h" /* MPI I/O file driver */
  53. #endif /* H5FDmpi_H */