IPCC  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CKNTimeMeasurement Class Reference

Time measurement class. More...

#include "KNTimeMeasurement.h"

Collaboration diagram for CKNTimeMeasurement:
Collaboration graph

Public Types

enum  MEASUREMENT_INDEX {
  EVALUE = 0, MALLOC, FREE_MEM, COMM,
  FILEIO, MVMUL, VVDOT, EVALUE_MALLOC,
  EVALUE_FREE_MEM, MV_MALLOC, MV_FREE_MEM, MV_COMM,
  VV_COMM
}
 

Public Member Functions

 CKNTimeMeasurement ()
 
 ~CKNTimeMeasurement ()
 

Static Public Member Functions

static void MeasurementStart (MEASUREMENT_INDEX index)
 Measurement start for part. More...
 
static void MeasurementEnd (MEASUREMENT_INDEX index)
 Measurement end for part. More...
 
static double GetTakeTime (MEASUREMENT_INDEX index)
 Get taken time for part. More...
 
static void TotalMeasurementStart ()
 Measurement start for total taken time. More...
 
static void TotalMeasurementEnd ()
 Measurement end for total taken time. More...
 
static void InitTimer ()
 Init time related variable. More...
 
static double GetTotalTakeTime ()
 

Static Private Attributes

static double m_fTotalTimeStart = 0.
 Get total taken time. More...
 
static double m_fTotalTimeEnd = 0.
 End time for total. More...
 
static double m_fStartTime [MEASUREMENT_COUNT]
 Start time for part. More...
 
static double m_fTakeTime [MEASUREMENT_COUNT]
 End time for part. More...
 

Detailed Description

Time measurement class.

Date
28/Sep/2014
Author
Kyu Nam Cho(mysto.nosp@m.us@k.nosp@m.orea..nosp@m.ac.k.nosp@m.r), Hoon Ryu(elec1.nosp@m.020@.nosp@m.gmail.nosp@m..com)

Definition at line 18 of file KNTimeMeasurement.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

CKNTimeMeasurement::CKNTimeMeasurement ( )

Definition at line 16 of file KNTimeMeasurement.cpp.

17 {
18 }
CKNTimeMeasurement::~CKNTimeMeasurement ( )

Definition at line 20 of file KNTimeMeasurement.cpp.

21 {
22 }

Member Function Documentation

double CKNTimeMeasurement::GetTakeTime ( MEASUREMENT_INDEX  index)
static

Get taken time for part.

Parameters
indexPart index
Returns
Taken time

Definition at line 61 of file KNTimeMeasurement.cpp.

References m_fTakeTime.

Referenced by CKNLanczosTest::LargeSizeMatrixMPI(), CKNLanczosTest::SaveResultCVS(), and CKNLanczosMethod::ShowLanczosResult().

62 {
63 #ifdef DOING_MEASUREMENT
64  return m_fTakeTime[index];
65 #else //DOING_MEASUREMENT
66  return 0;
67 #endif
68 }
static double m_fTakeTime[MEASUREMENT_COUNT]
End time for part.

Here is the caller graph for this function:

static double CKNTimeMeasurement::GetTotalTakeTime ( )
inlinestatic

Definition at line 32 of file KNTimeMeasurement.h.

Referenced by CKNLanczosTest::LargeSizeMatrixMPI(), CKNLanczosTest::SaveResultCVS(), and CKNLanczosMethod::ShowLanczosResult().

32 { return m_fTotalTimeEnd - m_fTotalTimeStart; };
static double m_fTotalTimeStart
Get total taken time.
static double m_fTotalTimeEnd
End time for total.

Here is the caller graph for this function:

void CKNTimeMeasurement::InitTimer ( )
static

Init time related variable.

Definition at line 24 of file KNTimeMeasurement.cpp.

References m_fStartTime, m_fTakeTime, and MEASUREMENT_COUNT.

Referenced by CKNLanczosTest::COmpareWIthMatLabSeOrthMPI(), CKNLanczosTest::LargeSizeMatrixMPI(), CKNTBMS_Solver::Launching_TBMS_Solver(), and CKNLanczosLaunching::LaunchingLanczos().

25 {
26  int i;
27 
28  for( i = 0; i < MEASUREMENT_COUNT ; i ++ )
29  {
30  m_fStartTime[i] = 0.;
31  m_fTakeTime[i] = 0.;
32  }
33 }
static double m_fTakeTime[MEASUREMENT_COUNT]
End time for part.
static double m_fStartTime[MEASUREMENT_COUNT]
Start time for part.
#define MEASUREMENT_COUNT
Part numbers.

Here is the caller graph for this function:

void CKNTimeMeasurement::MeasurementEnd ( MEASUREMENT_INDEX  index)
static

Measurement end for part.

Parameters
indexPart index

Definition at line 87 of file KNTimeMeasurement.cpp.

References m_fStartTime, and m_fTakeTime.

Referenced by CKNMPIManager::AllReduceComlex(), CKNMPIManager::AllReduceDouble(), CKNMPIManager::BroadcastBool(), CKNMPIManager::BroadcastDouble(), CKNMPIManager::BroadcastInt(), CKNMPIManager::BroadcastLanczosResult(), CKNLanczosMethod::BuildTMatrix(), CKNLanczosMethod::BuildWaveFunction(), CKNLanczosMethod::EigenValueSolver(), CKNLanczosMethod::FinalizeLanczosInterationVariable(), CKNMPIManager::FinalizeManager(), CKNLanczosMethod::FinalLanczosVector(), CKNMPIManager::InitCommunicationBufferMetric(), CKNLanczosMethod::InitializeTemporaryArrayAndVector(), CKNLanczosMethod::InitLanczosIterationVariables(), CKNLanczosMethod::InitLanczosVector(), CKNLanczosMethod::InitVariables(), CKNLanczosMethod::IntegrateEigenvaluesEx(), CKNLanczosMethod::LanczosIteration(), CKNLanczosMethod::LanczosIterationLoop(), CKNLanczosMethod::MergeDegeneratedEigenvalues(), CKNMPIManager::MergeVector(), CKNMPIManager::MergeVectorEx_Optimal(), CKNMPIManager::MergeVectorOptimal(), CKNMatrixOperation::MVMulEx_AsyncCommWithLocalBlocks(), CKNLanczosMethod::ReleaseResult(), CKNLanczosMethod::SaveLanczosResult(), CKNLanczosTest::SaveResult(), and CKNMPIManager::SplitVector().

88 {
89 #ifdef DOING_MEASUREMENT
90 #ifdef DISABLE_MPI_ROUTINE
91  m_fTakeTime[index] += (clock() - m_fStartTime[index])/CLOCKS_PER_SEC;;
92 #else //DISABLE_MPI_ROUTINE
93  m_fTakeTime[index] += (MPI_Wtime() - m_fStartTime[index]);
94 #endif //DISABLE_MPI_ROUTINE
95 #endif
96 }
static double m_fTakeTime[MEASUREMENT_COUNT]
End time for part.
static double m_fStartTime[MEASUREMENT_COUNT]
Start time for part.

Here is the caller graph for this function:

void CKNTimeMeasurement::MeasurementStart ( MEASUREMENT_INDEX  index)
static

Measurement start for part.

Parameters
indexPart index

Definition at line 73 of file KNTimeMeasurement.cpp.

References m_fStartTime.

Referenced by CKNMPIManager::AllReduceComlex(), CKNMPIManager::AllReduceDouble(), CKNMPIManager::BroadcastBool(), CKNMPIManager::BroadcastDouble(), CKNMPIManager::BroadcastInt(), CKNMPIManager::BroadcastLanczosResult(), CKNLanczosMethod::BuildTMatrix(), CKNLanczosMethod::BuildWaveFunction(), CKNLanczosMethod::EigenValueSolver(), CKNLanczosMethod::FinalizeLanczosInterationVariable(), CKNMPIManager::FinalizeManager(), CKNLanczosMethod::FinalLanczosVector(), CKNMPIManager::InitCommunicationBufferMetric(), CKNLanczosMethod::InitializeTemporaryArrayAndVector(), CKNLanczosMethod::InitLanczosIterationVariables(), CKNLanczosMethod::InitLanczosVector(), CKNLanczosMethod::InitVariables(), CKNLanczosMethod::IntegrateEigenvaluesEx(), CKNLanczosMethod::LanczosIteration(), CKNLanczosMethod::LanczosIterationLoop(), CKNLanczosMethod::MergeDegeneratedEigenvalues(), CKNMPIManager::MergeVector(), CKNMPIManager::MergeVectorEx_Optimal(), CKNMPIManager::MergeVectorOptimal(), CKNMatrixOperation::MVMulEx_AsyncCommWithLocalBlocks(), CKNLanczosMethod::ReleaseResult(), CKNLanczosMethod::SaveLanczosResult(), CKNLanczosTest::SaveResult(), and CKNMPIManager::SplitVector().

74 {
75 #ifdef DOING_MEASUREMENT
76 #ifdef DISABLE_MPI_ROUTINE
77  m_fStartTime[index] = clock();
78 #else //DISABLE_MPI_ROUTINE
79  m_fStartTime[index] = MPI_Wtime();
80 #endif //DISABLE_MPI_ROUTINE
81 #endif
82 }
static double m_fStartTime[MEASUREMENT_COUNT]
Start time for part.

Here is the caller graph for this function:

void CKNTimeMeasurement::TotalMeasurementEnd ( )
static

Measurement end for total taken time.

Definition at line 46 of file KNTimeMeasurement.cpp.

References m_fTotalTimeEnd.

Referenced by CKNLanczosTest::LargeSizeMatrixMPI(), CKNTBMS_Solver::Launching_TBMS_Solver(), and CKNLanczosLaunching::LaunchingLanczos().

47 {
48 #ifdef DOING_MEASUREMENT
49 #ifdef DISABLE_MPI_ROUTINE
50  m_fTotalTimeEnd = clock() / CLOCKS_PER_SEC;;
51 #else //DISABLE_MPI_ROUTINE
52  m_fTotalTimeEnd = MPI_Wtime();
53 #endif //DISABLE_MPI_ROUTINE
54 #endif
55 }
static double m_fTotalTimeEnd
End time for total.

Here is the caller graph for this function:

void CKNTimeMeasurement::TotalMeasurementStart ( )
static

Measurement start for total taken time.

Definition at line 35 of file KNTimeMeasurement.cpp.

References m_fTotalTimeStart.

Referenced by CKNLanczosTest::LargeSizeMatrixMPI(), CKNTBMS_Solver::Launching_TBMS_Solver(), and CKNLanczosLaunching::LaunchingLanczos().

36 {
37 #ifdef DOING_MEASUREMENT
38 #ifdef DISABLE_MPI_ROUTINE
39  m_fTotalTimeStart = clock() / CLOCKS_PER_SEC;;
40 #else //DISABLE_MPI_ROUTINE
41  m_fTotalTimeStart = MPI_Wtime();
42 #endif //DISABLE_MPI_ROUTINE
43 #endif
44 }
static double m_fTotalTimeStart
Get total taken time.

Here is the caller graph for this function:

Member Data Documentation

double CKNTimeMeasurement::m_fStartTime
staticprivate

Start time for part.

Definition at line 37 of file KNTimeMeasurement.h.

Referenced by InitTimer(), MeasurementEnd(), and MeasurementStart().

double CKNTimeMeasurement::m_fTakeTime
staticprivate

End time for part.

Definition at line 38 of file KNTimeMeasurement.h.

Referenced by GetTakeTime(), InitTimer(), and MeasurementEnd().

double CKNTimeMeasurement::m_fTotalTimeEnd = 0.
staticprivate

End time for total.

Definition at line 36 of file KNTimeMeasurement.h.

Referenced by TotalMeasurementEnd().

double CKNTimeMeasurement::m_fTotalTimeStart = 0.
staticprivate

Get total taken time.

Start time for total

Definition at line 32 of file KNTimeMeasurement.h.

Referenced by TotalMeasurementStart().


The documentation for this class was generated from the following files: