diff --git a/Event.h b/Event.h index 8a4f7dcae8b808a67cec2c38451fa7e05b6c6c31..4047f87422a1496c40ceffd4962903cf1a903e81 100644 --- a/Event.h +++ b/Event.h @@ -2,7 +2,7 @@ #include <string> #include <vector> -#include <map> +// #include <map> #include <chrono> #include "Jikan.h" diff --git a/Jikan.h b/Jikan.h index a50985484e65fd81076020d8c022ecdd1aae4c6b..2c085941bed0b1edc7b9e4f99c8916e81b4a5403 100644 --- a/Jikan.h +++ b/Jikan.h @@ -2,7 +2,7 @@ //------------------------- Jikan-config --------------------------------------------- #define TIMER_ON -// #define INCLUDE_GPU_TIMER +#define INCLUDE_GPU_TIMER #define INCLUDE_MPI // #define INCLUDE_OPEN_MP // #define SAVE_TIME_SERIES diff --git a/JikanDepths.cpp b/JikanDepths.cpp index c4e5fb1197e33a55136c30e920e5c22133c83014..c08b5e10c997499644e1480a201380b91b817ee4 100644 --- a/JikanDepths.cpp +++ b/JikanDepths.cpp @@ -3,7 +3,7 @@ #include "ToJSON.h" #include <iostream> -#include <map> +// #include <map> #include <string> #ifdef INCLUDE_OPEN_MP @@ -86,7 +86,7 @@ Jikan::~Jikan() #endif this->Events.clear(); - map<string, set<string> >::iterator it; + unordered_map<string, set<string> >::iterator it; for(it = this->EventType.begin(); it!=this->EventType.end(); ++it) it->second.clear(); @@ -99,7 +99,7 @@ Jikan::~Jikan() bool Jikan::ifContains(const string& Name) { - map<string, EventData>::iterator it; + unordered_map<string, EventData>::iterator it; it = this->Events.find(Name); if (it == this->Events.end()) @@ -287,20 +287,25 @@ void Jikan::GenerateTypedOutputData(const string& EventType, string& EventTypeSt void Jikan::GenerateOutputData() { - map<string, set<string> >::iterator it; - map<string, set<string> >::iterator end_m = this->EventType.end(); - --end_m; + unordered_map<string, set<string> >::iterator it; + unordered_map<string, set<string> >::iterator end_m; // = this->EventType.end(); + // end_m--; string Name; string Out = "{ "; string TypedOutput; - for(it = this->EventType.begin(); it!=end_m; ++it) + for(it = this->EventType.begin(); it!=this->EventType.end(); ++it) { - Name = it->first; - TypedOutput = ""; - this->GenerateTypedOutputData(Name, TypedOutput); - Out += TypedOutput + ",\n"; + if(next(it) != this->EventType.end()) + { + Name = it->first; + TypedOutput = ""; + this->GenerateTypedOutputData(Name, TypedOutput); + Out += TypedOutput + ",\n"; + } + else + end_m = it; } Name = end_m->first; diff --git a/JikanDepths.cu b/JikanDepths.cu index c8f518a2905b0af585a50df0a228141ae5c90087..883606a78fc3802ebe7b90547beecf264703787c 100644 --- a/JikanDepths.cu +++ b/JikanDepths.cu @@ -41,4 +41,5 @@ void Jikan::CUDAGetTime(const string& name, const int cont_mode_t) (this->Events)[name].ContiniousTime = 0.0; } #endif -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/JikanDepths.h b/JikanDepths.h index d12e2597c974c24d04d11282ca2fb858390e5088..2a288b70bd36a8eea185914dee672e53d1c37d90 100644 --- a/JikanDepths.h +++ b/JikanDepths.h @@ -6,6 +6,7 @@ #include <iostream> #include <string> #include <set> +#include <unordered_map> #ifdef INCLUDE_MPI #include <mpi.h> @@ -14,8 +15,8 @@ class Jikan { public: - std::map<std::string, EventData> Events; // Measuring code blocks info: string = code block name ID, EventData = measuring code block data - std::map<std::string, std::set<std::string> > EventType; // Code blocks measurment types: synchronious or ansynchronious + std::unordered_map<std::string, EventData> Events; // Measuring code blocks info: string = code block name ID, EventData = measuring code block data + std::unordered_map<std::string, std::set<std::string> > EventType; // Code blocks measurment types: synchronious or ansynchronious std::string JSONname; // Measurments dump filename std::string JSONdata; // Dump string std::string Error; // Dump error ?