OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

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 */
44 uint64_t split_collective_id;
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 */
50 MPI_Datatype datatype;
51 } vt_mpifile_data;
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 */
ompi_datatype_t
Definition: ompi_datatype.h:68
vt_mpifile_data::handle
uint64_t handle
Handle id for differentiating accesses to the same file with different file pointers.
Definition: vt_mpifile.h:48
vt_mpifile_data::fid
uint32_t fid
The fid is the id defined with OTF.
Definition: vt_mpifile.h:32
ompi_file_t
Back-end structure for MPI_File.
Definition: file.h:42
vt_mpifile_data
Holds internal data associated with an MPI_File.
Definition: vt_mpifile.h:29
vt_mpifile_data::split_collective_id
uint64_t split_collective_id
This one holds the matching id for MPI split collective routines.
Definition: vt_mpifile.h:44
vt_mpifile_data::datatype
MPI_Datatype datatype
Save also the datatype for evaluation within MPI_Get_count.
Definition: vt_mpifile.h:50