OpenMPI  0.1.1
vt_mpifile.h
1 /**
2  * VampirTrace
3  * http://www.tu-dresden.de/zih/vampirtrace
4  *
5  * Copyright (c) 2005-2012, ZIH, TU Dresden, Federal Republic of Germany
6  *
7  * Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
8  * Centre, Federal Republic of Germany
9  *
10  * See the file COPYING in the package base directory for details
11  **/
12 
13 #ifndef _VT_MPIFILE_H
14 #define _VT_MPIFILE_H
15 
16 #ifdef __cplusplus
17 # define EXTERN extern "C"
18 #else
19 # define EXTERN extern
20 #endif
21 
22 #include "vt_inttypes.h"
23 
24 #include "mpi.h"
25 
26 
27 /** Holds internal data associated with an MPI_File.
28  */
29 typedef struct vt_mpifile_data {
30  /** The fid is the id defined with OTF.
31  */
32  uint32_t fid;
33  /** This one holds the matching id for MPI split collective routines.
34  * MPI_File_read_all_{begin,end}
35  * MPI_File_write_all_{begin,end}
36  * MPI_File_read_at_all_{begin,end}
37  * MPI_File_write_at_all_{begin,end}
38  * MPI_File_read_ordered_{begin,end}
39  * MPI_File_write_ordered_{begin,end}
40  * According to the MPI standard, only one split collective may be active on a
41  * given file handle at a time and the same thread must begin and end the
42  * operation.
43  */
45  /** Handle id for differentiating accesses to the same file with different
46  * file pointers.
47  */
48  uint64_t handle;
49  /** Save also the datatype for evaluation within MPI_Get_count */
52 
53 EXTERN void vt_mpifile_init(void);
54 EXTERN void vt_mpifile_finalize(void);
55 
56 EXTERN vt_mpifile_data* vt_mpifile_get_data(const MPI_File fh);
57 EXTERN uint32_t vt_mpifilename_get_id(const char* fname);
58 EXTERN vt_mpifile_data* vt_mpifile_store_id(const MPI_File fh, const uint32_t id);
59 EXTERN vt_mpifile_data* vt_mpifile_create(const MPI_File fh, const char *fname);
60 EXTERN uint32_t vt_mpifile_free(const MPI_File fh);
61 
62 #endif /* _VT_MPIFILE_H */
Definition: ompi_datatype.h:68
uint64_t handle
Handle id for differentiating accesses to the same file with different file pointers.
Definition: vt_mpifile.h:48
uint32_t fid
The fid is the id defined with OTF.
Definition: vt_mpifile.h:32
Back-end structure for MPI_File.
Definition: file.h:42
Holds internal data associated with an MPI_File.
Definition: vt_mpifile.h:29
uint64_t split_collective_id
This one holds the matching id for MPI split collective routines.
Definition: vt_mpifile.h:44
MPI_Datatype datatype
Save also the datatype for evaluation within MPI_Get_count.
Definition: vt_mpifile.h:50