Skip to content
Snippets Groups Projects
Jikan.h 1.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • 数学の武士's avatar
    数学の武士 committed
    #pragma once
    
    
    数学の武士's avatar
    数学の武士 committed
    //------------------------- 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"
    //------------------------------------------------------------------------------------
    
    数学の武士's avatar
    数学の武士 committed
    
    #ifdef INCLUDE_MPI
    
    数学の武士's avatar
    数学の武士 committed
            #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,
    };
    
    
    数学の武士's avatar
    数学の武士 committed
    #ifdef __cplusplus
    extern "C" {  
    
            void TimerStart(const char* name, const int& mode_t);
            void TimerEnd(const char* name);
            void WriteOutput();
            
    
    数学の武士's avatar
    数学の武士 committed
    #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();
    
    数学の武士's avatar
    数学の武士 committed
    #else
            #define START_JIKAN_TIMER(name)
            #define END_JIKAN_TIMER(name)
    
            #define JIKAN_TIMER_OUTPUT()
    #endif 
    
    数学の武士's avatar
    数学の武士 committed
    
    
    数学の武士's avatar
    数学の武士 committed
    #ifdef __cplusplus  
    } 
    #endif