ESDM
Middleware for Earth System Data
esdm-mpi.h
1 #ifndef ESDM_MPI_H
2 #define ESDM_MPI_H
3 
4 #include <mpi.h>
5 
6 #include <esdm.h>
7 
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 int esdm_mpi_get_tasks_per_node();
14 
15 esdm_status esdm_mpi_distribute_config_file(char *config_filename);
16 
17 esdm_status esdm_mpi_init();
18 esdm_status esdm_mpi_init_manual();
19 
20 void esdm_mpi_finalize();
21 
22 //TODO: Allow use of a different root than rank 0.
23 
24 esdm_status esdm_mpi_container_create(MPI_Comm com, const char *name, int allow_overwrite, esdm_container_t **out_container);
25 esdm_status esdm_mpi_container_open(MPI_Comm com, const char *name, int allow_overwrite, esdm_container_t **out_container);
26 
27 /* assumes that com is the same used for create/retrieve */
28 esdm_status esdm_mpi_container_commit(MPI_Comm com, esdm_container_t *container);
29 
30 
31 /* for a dataset, metadata can be added only at rank 0 */
32 esdm_status esdm_mpi_dataset_create(MPI_Comm com, esdm_container_t *container, const char *name, esdm_dataspace_t *dataspace, esdm_dataset_t **out_dataset);
33 esdm_status esdm_mpi_dataset_open(MPI_Comm com, esdm_container_t *container, const char *name, esdm_dataset_t **out_dataset);
34 esdm_status esdm_mpi_dataset_ref(MPI_Comm com, esdm_dataset_t * d);
35 esdm_status esdm_mpi_dataset_commit(MPI_Comm com, esdm_dataset_t *dataset);
36 
49 esdm_status esdm_mpi_grid_bcast(MPI_Comm comm, esdm_dataset_t* dataset, esdm_grid_t** inout_grid);
50 
59 esdm_status esdm_mpi_grid_commit(MPI_Comm comm, esdm_grid_t* grid);
60 
61 #ifdef __cplusplus
62 }
63 #endif
64 
65 #endif
esdm_status
Definition: esdm-datatypes.h:37
Definition: esdm-datatypes-internal.h:41
Definition: esdm-datatypes-internal.h:59
Definition: esdm-datatypes.h:81
Definition: esdm-grid.c:18