Base class to provide some basic common infrastructure for timing measurements...
More...
#include <CaloGPUTimed.h>
Base class to provide some basic common infrastructure for timing measurements...
- Author
- Nuno Fernandes nuno..nosp@m.dos..nosp@m.santo.nosp@m.s.fe.nosp@m.rnand.nosp@m.es@c.nosp@m.ern.c.nosp@m.h
- Date
- 01 June 2022
Definition at line 24 of file CaloGPUTimed.h.
◆ CaloGPUTimed()
template<class T >
CaloGPUTimed::CaloGPUTimed |
( |
T * |
ptr | ) |
|
|
inlineprotected |
Definition at line 55 of file CaloGPUTimed.h.
56 m_measureTimes(ptr,
"MeasureTimes",
false,
"Save time measurements"),
57 m_timeFileName(ptr,
"TimeFileOutput",
"times.txt",
"File to which time measurements should be saved")
◆ print_times()
void CaloGPUTimed::print_times |
( |
const std::string & |
header, |
|
|
const size_t |
time_size |
|
) |
| const |
|
inlineprotected |
Definition at line 138 of file CaloGPUTimed.h.
145 std::vector<size_t>
indices(m_eventNumbers.size());
149 return m_eventNumbers[a] < m_eventNumbers[b];
154 out <<
"Event_Number Total " <<
header <<
"\n";
158 out << m_eventNumbers[
idx] <<
" ";
162 for (
size_t i = 0;
i < time_size; ++
i)
164 total += m_times[
idx * time_size +
i];
169 for (
size_t i = 0;
i < time_size; ++
i)
171 out << m_times[
idx * time_size +
i] <<
" ";
◆ record_times() [1/3]
template<class ... Args>
void CaloGPUTimed::record_times |
( |
const size_t |
event_num, |
|
|
const size_t & |
value |
|
) |
| const |
|
inlineprotected |
Definition at line 102 of file CaloGPUTimed.h.
104 const size_t time_size = 1;
110 std::lock_guard<std::mutex> lock_guard(
m_timeMutex);
111 old_size = m_times.size();
112 m_times.resize(old_size + time_size);
113 m_eventNumbers.push_back(event_num);
◆ record_times() [2/3]
template<class ... Args>
void CaloGPUTimed::record_times |
( |
const size_t |
event_num, |
|
|
const size_t & |
value, |
|
|
Args &&... |
args |
|
) |
| const |
|
inlineprotected |
Definition at line 120 of file CaloGPUTimed.h.
122 const size_t time_size =
sizeof...(args) + 1;
128 std::lock_guard<std::mutex> lock_guard(
m_timeMutex);
129 old_size = m_times.size();
130 m_times.resize(old_size + time_size);
131 m_eventNumbers.push_back(event_num);
◆ record_times() [3/3]
void CaloGPUTimed::record_times |
( |
const size_t |
event_num, |
|
|
const std::vector< size_t > & |
times |
|
) |
| const |
|
inlineprotected |
Definition at line 84 of file CaloGPUTimed.h.
89 std::lock_guard<std::mutex> lock_guard(
m_timeMutex);
90 old_size = m_times.size();
91 m_times.resize(old_size +
times.size());
92 m_eventNumbers.push_back(event_num);
95 for (
size_t i = 0;
i <
times.size(); ++
i)
97 m_times[old_size +
i] =
times[
i];
◆ record_times_helper() [1/3]
void CaloGPUTimed::record_times_helper |
( |
size_t |
index, |
|
|
size_t |
t |
|
) |
| const |
|
inlineprivate |
◆ record_times_helper() [2/3]
template<class ... Args>
void CaloGPUTimed::record_times_helper |
( |
size_t |
index, |
|
|
size_t |
t, |
|
|
Args &&... |
args |
|
) |
| const |
|
inlineprivate |
◆ record_times_helper() [3/3]
void CaloGPUTimed::record_times_helper |
( |
size_t |
| ) |
const |
|
inlineprivate |
◆ ATLAS_THREAD_SAFE [1/2]
std::vector<size_t> m_times CaloGPUTimed::ATLAS_THREAD_SAFE |
|
mutableprotected |
Vector to hold execution times to be recorded if necessary.
Definition at line 35 of file CaloGPUTimed.h.
◆ ATLAS_THREAD_SAFE [2/2]
std::vector<size_t> m_eventNumbers CaloGPUTimed::ATLAS_THREAD_SAFE |
|
mutableprotected |
Vector to hold the event numbers to be recorded if necessary.
Definition at line 40 of file CaloGPUTimed.h.
◆ m_measureTimes
Gaudi::Property<bool> CaloGPUTimed::m_measureTimes |
|
protected |
If true
, times are recorded to the file given by m_timeFileName
.
Defaults to false
.
Definition at line 46 of file CaloGPUTimed.h.
◆ m_timeFileName
Gaudi::Property<std::string> CaloGPUTimed::m_timeFileName |
|
protected |
File to which times should be saved.
Definition at line 50 of file CaloGPUTimed.h.
◆ m_timeMutex
std::mutex CaloGPUTimed::m_timeMutex |
|
mutableprotected |
Mutex that is locked when recording times.
Definition at line 32 of file CaloGPUTimed.h.
The documentation for this class was generated from the following file:
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.