Skip to content

Commit

Permalink
separate MPI and MPI-IO
Browse files Browse the repository at this point in the history
  • Loading branch information
wangvsa committed Nov 30, 2021
1 parent 495ef1c commit f39b66e
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 57 deletions.
6 changes: 4 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,16 @@ endif()
option(BUILD_SHARED_LIBS "Build with shared libraries." ON)
option(RECORDER_ENABLE_PARQUET "Build Parquet format converter." OFF)
option(RECORDER_ENABLE_POSIX_TRACE "Enable tracing of POSIX calls." ON)
option(RECORDER_ENABLE_MPIO_TRACE "Enable tracing of MPI-IO calls." ON)
option(RECORDER_ENABLE_MPI_TRACE "Enable tracing of MPI communication calls." ON)
option(RECORDER_ENABLE_MPIIO_TRACE "Enable tracing of MPI-IO calls." ON)
option(RECORDER_ENABLE_HDF5_TRACE "Enable tracing of HDF5 calls." ON)
option(RECORDER_ENABLE_CUDA_TRACE "Enable tracing of CUDA kernels." OFF)
option(RECORDER_ENABLE_FCNTL_TRACE "Enable tracing of fcntl()." ON)
option(RECORDER_INSTALL_TESTS "Enable installation of tests." OFF)

#mark_as_advanced(RECORDER_ENABLE_POSIX_TRACE)
#mark_as_advanced(RECORDER_ENABLE_MPIO_TRACE)
#mark_as_advanced(RECORDER_ENABLE_MPI_TRACE)
#mark_as_advanced(RECORDER_ENABLE_MPIIO_TRACE)
#mark_as_advanced(RECORDER_ENABLE_HDF5_TRACE)
#mark_as_advanced(RECORDER_ENABLE_FCNTL_TRACE)

Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,10 @@ cmake .. \

(2) Enable/disable tracing levels

By default, Recorde traces function calls from all levels: HDF5, MPI and POSIX. The following options can be used to enable/disable specific levels.
By default, Recorde traces function calls from all levels: HDF5, MPI, MPI-IO and POSIX. The following options can be used to enable/disable specific levels.
* -DRECORDER_ENABLE_POSIX_TRACE=[ON|FF]
* -DRECORDER_ENABLE_MPIO_TRACE=[ON|FF]
* -DRECORDER_ENABLE_MPI_TRACE=[ON|FF]
* -DRECORDER_ENABLE_MPIIO_TRACE=[ON|FF]
* -DRECORDER_ENABLE_HDF5_TRACE=[ON|FF]

(3) Intercepting `fcntl()` call:
Expand Down
17 changes: 12 additions & 5 deletions include/recorder.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,16 +122,22 @@ void write_record(Record* record);
* Decide wether to intercept (override) funciton calls
*/
#ifdef RECORDER_PRELOAD
#ifdef RECORDER_ENABLE_MPIO_TRACE
#ifdef RECORDER_ENABLE_POSIX_TRACE
#define RECORDER_POSIX_DECL(func) func
#else
#define RECORDER_POSIX_DECL(func) __warp_##func
#endif

#ifdef RECORDER_ENABLE_MPI_TRACE
#define RECORDER_MPI_DECL(func) func
#else
#define RECORDER_MPI_DECL(func) __warp_##func
#endif

#ifdef RECORDER_ENABLE_POSIX_TRACE
#define RECORDER_POSIX_DECL(func) func
#ifdef RECORDER_ENABLE_MPIIO_TRACE
#define RECORDER_MPIIO_DECL(func) func
#else
#define RECORDER_POSIX_DECL(func) __warp_##func
#define RECORDER_MPIIO_DECL(func) __warp_##func
#endif

#ifdef RECORDER_ENABLE_HDF5_TRACE
Expand All @@ -140,8 +146,9 @@ void write_record(Record* record);
#define RECORDER_HDF5_DECL(func) __warp_##func
#endif
#else
#define RECORDER_MPI_DECL(func) func
#define RECORDER_POSIX_DECL(func) func
#define RECORDER_MPI_DECL(func) func
#define RECORDER_MPIIO_DECL(func) func
#define RECORDER_HDF5_DECL(func) func
#endif

Expand Down
3 changes: 2 additions & 1 deletion lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ target_compile_definitions(recorder
PUBLIC _LARGEFILE64_SOURCE
PUBLIC RECORDER_PRELOAD
PRIVATE $<$<BOOL:${RECORDER_ENABLE_POSIX_TRACE}>:RECORDER_ENABLE_POSIX_TRACE>
PRIVATE $<$<BOOL:${RECORDER_ENABLE_MPIO_TRACE}>:RECORDER_ENABLE_MPIO_TRACE>
PRIVATE $<$<BOOL:${RECORDER_ENABLE_MPI_TRACE}>:RECORDER_ENABLE_MPI_TRACE>
PRIVATE $<$<BOOL:${RECORDER_ENABLE_MPIIO_TRACE}>:RECORDER_ENABLE_MPIIO_TRACE>
PRIVATE $<$<BOOL:${RECORDER_ENABLE_HDF5_TRACE}>:RECORDER_ENABLE_HDF5_TRACE>
PRIVATE $<$<BOOL:${RECORDER_ENABLE_FCNTL_TRACE}>:RECORDER_ENABLE_FCNTL_TRACE>
PRIVATE $<$<BOOL:${RECORDER_ENABLE_CUDA_TRACE}>:RECORDER_ENABLE_CUDA_TRACE>
Expand Down
94 changes: 47 additions & 47 deletions lib/recorder-mpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -352,14 +352,14 @@ int RECORDER_MPI_DECL(MPI_Type_commit)(MPI_Datatype *datatype) {
RECORDER_INTERCEPTOR(1, args);
}

int RECORDER_MPI_DECL(MPI_File_open)(MPI_Comm comm, CONST char *filename, int amode, MPI_Info info, MPI_File *fh) {
int RECORDER_MPIIO_DECL(MPI_File_open)(MPI_Comm comm, CONST char *filename, int amode, MPI_Info info, MPI_File *fh) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_open, (comm, filename, amode, info, fh));
add_mpi_file(comm, fh);
char **args = assemble_args_list(5, comm2name(&comm), realrealpath(filename), itoa(amode), ptoa(&info), file2id(fh));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_close)(MPI_File *fh) {
int RECORDER_MPIIO_DECL(MPI_File_close)(MPI_File *fh) {
char* fid = file2id(fh);
MPIFileHash *entry = NULL;
HASH_FIND(hh, mpi_file_table, fh, sizeof(MPI_File), entry);
Expand All @@ -375,182 +375,200 @@ int RECORDER_MPI_DECL(MPI_File_close)(MPI_File *fh) {
RECORDER_INTERCEPTOR(1, args);
}

int RECORDER_MPI_DECL(MPI_File_sync)(MPI_File fh) {
int RECORDER_MPIIO_DECL(MPI_File_sync)(MPI_File fh) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_sync, (fh));
char **args = assemble_args_list(1, file2id(&fh));
RECORDER_INTERCEPTOR(1, args);
}

int RECORDER_MPI_DECL(MPI_File_set_size)(MPI_File fh, MPI_Offset size) {
int RECORDER_MPIIO_DECL(MPI_File_set_size)(MPI_File fh, MPI_Offset size) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_set_size, (fh, size));
char **args = assemble_args_list(2, file2id(&fh), itoa(size));
RECORDER_INTERCEPTOR(2, args);
}

int RECORDER_MPI_DECL(MPI_File_set_view)(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
int RECORDER_MPIIO_DECL(MPI_File_set_view)(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
MPI_Datatype filetype, CONST char *datarep, MPI_Info info) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_set_view, (fh, disp, etype, filetype, datarep, info));
char **args = assemble_args_list(6, file2id(&fh), itoa(disp), type2name(etype), type2name(filetype), ptoa(datarep), ptoa(&info));
RECORDER_INTERCEPTOR(6, args);
}

int RECORDER_MPI_DECL(MPI_File_read)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
int RECORDER_MPIIO_DECL(MPI_File_read)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_read_at)(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
int RECORDER_MPIIO_DECL(MPI_File_read_at)(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_at, (fh, offset, buf, count, datatype, status));
char **args = assemble_args_list(6, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(6, args);
}

int RECORDER_MPI_DECL(MPI_File_read_at_all)(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
int RECORDER_MPIIO_DECL(MPI_File_read_at_all)(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_at_all, (fh, offset, buf, count, datatype, status));
char **args = assemble_args_list(6, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(6, args);
}

int RECORDER_MPI_DECL(MPI_File_read_all)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
int RECORDER_MPIIO_DECL(MPI_File_read_all)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_all, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_read_shared)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
int RECORDER_MPIIO_DECL(MPI_File_read_shared)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_shared, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_read_ordered)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
int RECORDER_MPIIO_DECL(MPI_File_read_ordered)(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_ordered, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_read_at_all_begin)(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype) {
int RECORDER_MPIIO_DECL(MPI_File_read_at_all_begin)(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_at_all_begin, (fh, offset, buf, count, datatype));
char **args = assemble_args_list(5, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_read_all_begin)(MPI_File fh, void *buf, int count, MPI_Datatype datatype) {
int RECORDER_MPIIO_DECL(MPI_File_read_all_begin)(MPI_File fh, void *buf, int count, MPI_Datatype datatype) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_all_begin, (fh, buf, count, datatype));
char **args = assemble_args_list(4, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype));
RECORDER_INTERCEPTOR(4, args);
}

int RECORDER_MPI_DECL(MPI_File_read_ordered_begin)(MPI_File fh, void *buf, int count, MPI_Datatype datatype) {
int RECORDER_MPIIO_DECL(MPI_File_read_ordered_begin)(MPI_File fh, void *buf, int count, MPI_Datatype datatype) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_read_ordered_begin, (fh, buf, count, datatype));
char **args = assemble_args_list(4, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype));
RECORDER_INTERCEPTOR(4, args);
}

int RECORDER_MPI_DECL(MPI_File_iread_at)(MPI_File fh, MPI_Offset offset, void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_iread_at)(MPI_File fh, MPI_Offset offset, void *buf, int count,
MPI_Datatype datatype, __D_MPI_REQUEST *request) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_iread_at, (fh, offset, buf, count, datatype, request));
char **args = assemble_args_list(6, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype), ptoa(request));
RECORDER_INTERCEPTOR(6, args);
}

int RECORDER_MPI_DECL(MPI_File_iread)(MPI_File fh, void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_iread)(MPI_File fh, void *buf, int count,
MPI_Datatype datatype, __D_MPI_REQUEST *request) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_iread, (fh, buf, count, datatype, request));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), ptoa(request));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_iread_shared)(MPI_File fh, void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_iread_shared)(MPI_File fh, void *buf, int count,
MPI_Datatype datatype, __D_MPI_REQUEST *request) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_iread_shared, (fh, buf, count, datatype, request));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), ptoa(request));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_write)(MPI_File fh, CONST void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_write)(MPI_File fh, CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_write_at)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int RECORDER_MPIIO_DECL(MPI_File_write_at)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_at, (fh, offset, buf, count, datatype, status));
char **args = assemble_args_list(6, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(6, args);
}

int RECORDER_MPI_DECL(MPI_File_write_at_all)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int RECORDER_MPIIO_DECL(MPI_File_write_at_all)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int count, MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_at_all, (fh, offset, buf, count, datatype, status));
char **args = assemble_args_list(6, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(6, args);
}

int RECORDER_MPI_DECL(MPI_File_write_all)(MPI_File fh, CONST void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_write_all)(MPI_File fh, CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_all, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_write_shared)(MPI_File fh, CONST void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_write_shared)(MPI_File fh, CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_shared, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_write_ordered)(MPI_File fh, CONST void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_write_ordered)(MPI_File fh, CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_ordered, (fh, buf, count, datatype, status));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), status2str(status));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_write_at_all_begin)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int RECORDER_MPIIO_DECL(MPI_File_write_at_all_begin)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int count, MPI_Datatype datatype) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_at_all_begin, (fh, offset, buf, count, datatype));
char **args = assemble_args_list(5, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_write_all_begin)(MPI_File fh, CONST void *buf, int count, MPI_Datatype datatype) {
int RECORDER_MPIIO_DECL(MPI_File_write_all_begin)(MPI_File fh, CONST void *buf, int count, MPI_Datatype datatype) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_all_begin, (fh, buf, count, datatype));
char **args = assemble_args_list(4, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype));
RECORDER_INTERCEPTOR(4, args);
}

int RECORDER_MPI_DECL(MPI_File_write_ordered_begin)(MPI_File fh, CONST void *buf, int count, MPI_Datatype datatype) {
int RECORDER_MPIIO_DECL(MPI_File_write_ordered_begin)(MPI_File fh, CONST void *buf, int count, MPI_Datatype datatype) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_write_ordered_begin, (fh, buf, count, datatype));
char **args = assemble_args_list(4, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype));
RECORDER_INTERCEPTOR(4, args);
}

int RECORDER_MPI_DECL(MPI_File_iwrite_at)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int RECORDER_MPIIO_DECL(MPI_File_iwrite_at)(MPI_File fh, MPI_Offset offset, CONST void *buf,
int count, MPI_Datatype datatype, __D_MPI_REQUEST *request) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_iwrite_at, (fh, offset, buf, count, datatype, request));
char **args = assemble_args_list(6, file2id(&fh), itoa(offset), ptoa(buf), itoa(count), type2name(datatype), ptoa(request));
RECORDER_INTERCEPTOR(6, args);
}

int RECORDER_MPI_DECL(MPI_File_iwrite)(MPI_File fh, CONST void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_iwrite)(MPI_File fh, CONST void *buf, int count,
MPI_Datatype datatype, __D_MPI_REQUEST *request) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_iwrite, (fh, buf, count, datatype, request));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), ptoa(request));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPI_DECL(MPI_File_iwrite_shared)(MPI_File fh, CONST void *buf, int count,
int RECORDER_MPIIO_DECL(MPI_File_iwrite_shared)(MPI_File fh, CONST void *buf, int count,
MPI_Datatype datatype, __D_MPI_REQUEST *request) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_iwrite_shared, (fh, buf, count, datatype, request));
char **args = assemble_args_list(5, file2id(&fh), ptoa(buf), itoa(count), type2name(datatype), ptoa(request));
RECORDER_INTERCEPTOR(5, args);
}

int RECORDER_MPIIO_DECL(MPI_File_seek) (MPI_File fh, MPI_Offset offset, int whence) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_seek, (fh, offset, whence));
char **args = assemble_args_list(3, file2id(&fh), itoa(offset), whence2name(whence));
RECORDER_INTERCEPTOR(3, args);
}

int RECORDER_MPIIO_DECL(MPI_File_seek_shared) (MPI_File fh, MPI_Offset offset, int whence) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_seek_shared, (fh, offset, whence));
char **args = assemble_args_list(3, file2id(&fh), itoa(offset), whence2name(whence));
RECORDER_INTERCEPTOR(3, args);
}

int RECORDER_MPIIO_DECL(MPI_File_get_size) (MPI_File fh, MPI_Offset *offset) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_get_size, (fh, offset));
char **args = assemble_args_list(2, file2id(&fh), itoa(*offset));
RECORDER_INTERCEPTOR(2, args);
}

int RECORDER_MPI_DECL(MPI_Finalized)(int *flag) {
// TODO: flag
RECORDER_INTERCEPTOR_NOIO(int, PMPI_Finalized, (flag));
Expand Down Expand Up @@ -688,24 +706,6 @@ int RECORDER_MPI_DECL(MPI_Comm_dup) (MPI_Comm comm, MPI_Comm *newcomm) {
}


int RECORDER_MPI_DECL(MPI_File_seek) (MPI_File fh, MPI_Offset offset, int whence) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_seek, (fh, offset, whence));
char **args = assemble_args_list(3, file2id(&fh), itoa(offset), whence2name(whence));
RECORDER_INTERCEPTOR(3, args);
}

int RECORDER_MPI_DECL(MPI_File_seek_shared) (MPI_File fh, MPI_Offset offset, int whence) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_seek_shared, (fh, offset, whence));
char **args = assemble_args_list(3, file2id(&fh), itoa(offset), whence2name(whence));
RECORDER_INTERCEPTOR(3, args);
}

int RECORDER_MPI_DECL(MPI_File_get_size) (MPI_File fh, MPI_Offset *offset) {
RECORDER_INTERCEPTOR_NOIO(int, PMPI_File_get_size, (fh, offset));
char **args = assemble_args_list(2, file2id(&fh), itoa(*offset));
RECORDER_INTERCEPTOR(2, args);
}


// Add MPI_Test, MPI_Testany, MPI_Testsome, MPI_Testall,
// MPI_Ireduce and MPI_Igather on 2020 12/18
Expand Down

0 comments on commit f39b66e

Please sign in to comment.