source: XIOS/dev/dev_trunk_omp/extern/remap/src/timerRemap.cpp @ 1646

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

branch merged with trunk @1645. arch file (ep&mpi) added for ADA

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