source: XIOS/dev/branch_openmp/extern/remap/src/timerRemap.cpp @ 1642

Last change on this file since 1642 was 1642, checked in by yushan, 5 years ago

dev on ADA. add flag switch _usingEP/_usingMPI

File size: 972 bytes
Line 
1#include "timerRemap.hpp"
2#include "mpi.hpp"
3#include <string>
4#include <map>
5#include <iostream>
6
7namespace sphereRemap {
8
9using namespace std;
10
11map<string,CTimer*> CTimer::allTimer;
12
13CTimer::CTimer(const string& name_) : name(name_)
14{
15        reset();
16}
17
18double CTimer::getTime(void)
19{
20        return MPI_Wtime();
21}
22
23void CTimer::suspend(void)
24{
25        if (!suspended)
26                cumulatedTime+=getTime()-lastTime;
27        suspended=true;
28}
29
30void CTimer::resume(void)
31{
32        if (suspended)
33                lastTime=getTime();
34        suspended=false;
35}
36
37void CTimer::reset(void)
38{
39        cumulatedTime=0.;
40        suspended=true;
41}
42
43double CTimer::getCumulatedTime(void)
44{
45        return cumulatedTime;
46}
47
48void CTimer::print(void)
49{
50#ifdef TIMEIT
51        cout << " Time for "<<name<<" : "<<getCumulatedTime() <<"  s"<<endl;
52#endif
53}
54
55CTimer& CTimer::get(const string name)
56{
57        map<string,CTimer*>::iterator it;
58        it=allTimer.find(name);
59        if (it==allTimer.end()) it=allTimer.insert(pair<string,CTimer*>(name,new CTimer(name))).first;
60        return *(it->second);
61}
62}
Note: See TracBrowser for help on using the repository browser.