Skip to content
Snippets Groups Projects
JikanDepths.h 1.12 KiB
Newer Older
  • Learn to ignore specific revisions
  • 数学の武士's avatar
    数学の武士 committed
    #pragma once
    
    
    #include "Jikan.h"
    
    数学の武士's avatar
    数学の武士 committed
    #include "Event.h"
    
    #include <iostream>
    #include <string>
    #include <set>
    
    数学の武士's avatar
    数学の武士 committed
    #ifdef INCLUDE_MPI
        #include <mpi.h>
    #endif
    
    class Jikan
    {
    public:
        std::map<std::string, EventData> Events;
        std::map<std::string, std::set<std::string> > EventType;
        std::string JSONname;
        std::string JSONdata;
        std::string Error;
    
        Jikan();
        ~Jikan();
    
    
        void Jikan_start(const std::string& name, const int& mode);
    
    数学の武士's avatar
    数学の武士 committed
        void Jikan_end(  const std::string& name);
    
    #ifdef INCLUDE_GPU_TIMER
        void cuda_Jikan_start(const std::string& name);
        void cuda_Jikan_end(  const std::string& name);
    #endif
    
        void GenerateTypedOutputData(const std::string& EventType, std::string& EventTypeString);
        void GenerateOutputData();
    
    // private:
        bool ifContains(const std::string& name);
    
    #ifdef INCLUDE_MPI
        bool ifWriteProc(MPI_Comm comm, int id);
    #endif
    
    
        bool ifWriteProc();
    
    
    数学の武士's avatar
    数学の武士 committed
        void SetDumpFilename(const std::string& name);
    
    private:
    
        void StartTimer(const std::string& name);
        void BarrierMPI();
        void StartEventTimer(const std::string& name);
        void EndEventTimer(const std::string& name);