#pragma once //------------------------- Jikan-config --------------------------------------------- #define TIMER_ON #define INCLUDE_GPU_TIMER #define INCLUDE_MPI #define INCLUDE_OPEN_MP #define SAVE_TIME_SERIES #define OUTPUT_NAME "Jikan-output" //------------------------------------------------------------------------------------ #ifdef INCLUDE_MPI #include <mpi.h> #endif enum TimerMode { NO_SYNC = 0x01, MPI_mode = 0x02, OpenMP_mode = 0x03, CUDA_mode = 0x04, MPI_OpenMP = MPI_mode * OpenMP_mode, OpenMP_CUDA = CUDA_mode * OpenMP_mode, MPI_OpenMP_CUDA = MPI_mode * OpenMP_mode * CUDA_mode, MPI_CUDA = MPI_mode * CUDA_mode, }; #ifdef __cplusplus extern "C" { #endif void TimerStart(const char* name, const int& mode_t); void TimerEnd(const char* name); void WriteOutput(); #ifdef TIMER_ON #define START_JIKAN_TIMER(name, mode_t) TimerStart(name, mode_t); #define END_JIKAN_TIMER(name) TimerEnd(name); #define JIKAN_TIMER_OUTPUT() WriteOutput(); #else #define START_JIKAN_TIMER(name) #define END_JIKAN_TIMER(name) #define JIKAN_TIMER_OUTPUT() #endif #ifdef __cplusplus } #endif