10 #define _XOPEN_SOURCE 700 18 #include "sion_const.h" 19 #include "sion_debug.h" 20 #include "sion_error_handler.h" 33 #define DFUNCTION "_sion_paropen_generic_buddy" 35 const char *file_mode, MPI_Comm gComm,
int numfiles, MPI_Comm lComm)
40 if (cb_args == NULL) {
41 _sion_errorprint(SION_NOT_SUCCESS, _SION_ERROR_RETURN,
42 "cannot allocate cb_args structure of size %lu (sion_file_check_par_args), aborting ...\n",
47 cb_args->file_mode = strdup(file_mode);
48 cb_args->gComm = gComm;
49 cb_args->lComm = lComm;
50 cb_args->numfiles = numfiles;
56 #define DFUNCTION "sion_file_check_par_args_free_mpi" 59 int rc = SION_SUCCESS;
60 if (cb_args != NULL) {
61 free(cb_args->file_mode);
68 #define DFUNCTION "sion_file_check_par_cb_mpi" 69 int sion_file_check_par_cb_mpi(
char *fname,
void *v_args)
72 int rc = SION_NOT_SUCCESS;
73 int gtasks, gRank, sid;
74 int64_t chunksize = 0;
75 int32_t fsblksize = -1;
78 MPI_Comm_size(cb_args->gComm, >asks);
79 MPI_Comm_rank(cb_args->gComm, &gRank);
81 DPRINTFP((1, DFUNCTION, gRank,
"enter parallel check of file %s with mode %s\n", fname, cb_args->file_mode));
83 _sion_errorprint_set_flag(_SION_ERROR_FLAG_SUPPRESS_MSG);
84 sid =
sion_paropen_mpi(fname, cb_args->file_mode, &cb_args->numfiles, cb_args->gComm, &cb_args->lComm, &chunksize, &fsblksize,
85 &globalrank, NULL, NULL);
86 _sion_errorprint_set_flag(_SION_ERROR_FLAG_NONE);
88 rc = SION_NOT_SUCCESS;
94 DPRINTFP((1, DFUNCTION, gRank,
"leave parallel check of file %s with mode %s rc=%d\n", fname, cb_args->file_mode, rc));
int sion_parclose_mpi(int sid)
Close a sion file using MPI.
int sion_paropen_mpi(const char *fname, const char *file_mode, int *numFiles, MPI_Comm gComm, const MPI_Comm *lComm, int64_t *chunksize, int32_t *fsblksize, int *globalrank, FILE **fileptr, char **newfname)
Open a sion file using MPI.