+static std::unordered_map<std::string, std::deque<std::string>> keys;
+
+static std::map<std::string, std::string> smpi_colors = {{"recv", "1 0 0"},
+ {"irecv", "1 0.52 0.52"},
+ {"send", "0 0 1"},
+ {"isend", "0.52 0.52 1"},
+ {"sendrecv", "0 1 1"},
+ {"wait", "1 1 0"},
+ {"waitall", "0.78 0.78 0"},
+ {"waitany", "0.78 0.78 0.58"},
+ {"test", "0.52 0.52 0"},
+
+ {"allgather", "1 0 0"},
+ {"allgatherv", "1 0.52 0.52"},
+ {"allreduce", "1 0 1"},
+ {"alltoall", "0.52 0 1"},
+ {"alltoallv", "0.78 0.52 1"},
+ {"barrier", "0 0.39 0.78"},
+ {"bcast", "0 0.78 0.39"},
+ {"gather", "1 1 0"},
+ {"gatherv", "1 1 0.52"},
+ {"reduce", "0 1 0"},
+ {"reducescatter", "0.52 1 0.52"},
+ {"scan", "1 0.58 0.23"},
+ {"exscan", "1 0.54 0.25"},
+ {"scatterv", "0.52 0 0.52"},
+ {"scatter", "1 0.74 0.54"},
+
+ {"computing", "0 1 1"},
+ {"sleeping", "0 0.5 0.5"},
+
+ {"init", "0 1 0"},
+ {"finalize", "0 1 0"},
+
+ {"put", "0.3 1 0"},
+ {"get", "0 1 0.3"},
+ {"accumulate", "1 0.3 0"},
+ {"rput", "0.3 1 0"},
+ {"rget", "0 1 0.3"},
+ {"raccumulate", "1 0.3 0"},
+ {"compare_and_swap", "0.3 1 0"},
+ {"get_accumulate", "0 1 0.3"},
+ {"rget_accumulate", "1 0.3 0"},
+ {"win_fence", "1 0 0.3"},
+ {"win_post", "1 0 0.8"},
+ {"win_wait", "1 0.8 0"},
+ {"win_start", "0.8 0 1"},
+ {"win_complete", "0.8 1 0"},
+ {"win_lock", "1 0 0.3"},
+ {"win_unlock", "1 0 0.3"},
+ {"win_lock_all", "1 0 0.8"},
+ {"win_unlock_all", "1 0.8 0"},
+ {"win_flush", "1 0 0.3"},
+ {"win_flush_local", "1 0 0.8"},
+ {"win_flush_all", "1 0.8 0"},
+ {"win_flush_local_all", "1 0 0.3"}