SIONlib  1.7.7
Scalable I/O library for parallel access to task-local files
sion_mpi_internal_gen.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2019 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 
14 #ifndef SION_SION_MPI_INTERNAL_GEN_H
15 #define SION_SION_MPI_INTERNAL_GEN_H
16 
17 #ifdef SION_MPI
18 
19 #include "mpi.h"
20 
21 #include "sion_const.h"
22 
23 #define USE_PMPIno
24 #ifdef USE_PMPI
25 #define MPI_Comm_rank PMPI_Comm_rank
26 #define MPI_Comm_size PMPI_Comm_size
27 #define MPI_Gather PMPI_Gather
28 #define MPI_Scatter PMPI_Scatter
29 #define MPI_Bcast PMPI_Bcast
30 #define MPI_Barrier PMPI_Barrier
31 #define MPI_Comm_split PMPI_Comm_split
32 #define MPI_Send PMPI_Send
33 #define MPI_Recv PMPI_Recv
34 #endif
35 
37  MPI_Comm gComm;
38  MPI_Comm lComm;
39  double ts;
40  int blocksize;
41  int step;
42 };
44 
45 int _sion_gen_info_from_gcomm_mpi(int numFiles, MPI_Comm gComm, int *filenumber, int *lrank, int *lsize);
46 int _sion_get_info_from_splitted_comm_mpi(MPI_Comm gComm, MPI_Comm lComm, int *numComm, int *CommNumber, int *lrank, int *lsize);
47 
48 int _sion_get_numfiles_from_file_mpi(char *fname);
49 int _sion_get_filenumber_from_files_mpi(char *fname, MPI_Comm gComm, int *numfiles, int *filenumber, int *lRank);
50 int _sion_errorprint_mpi(int rc, int level, const char *format, ...);
51 
52 #endif
53 
54 #endif
int _sion_gen_info_from_gcomm_mpi(int numFiles, MPI_Comm gComm, int *filenumber, int *lrank, int *lsize)
Splits a Communicator in numfiles different communicators.