Skip to content

Commit 0e5f621

Browse files
committed
Use PerfGraph for profiling (idaholab#353)
1 parent b891718 commit 0e5f621

File tree

6 files changed

+40
-10
lines changed

6 files changed

+40
-10
lines changed

include/userobjects/MyTRIMDiracRun.h

+5
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ class MyTRIMDiracRun : public MyTRIMRunBase
4646

4747
/// data such as interstitials and vacancies produced will be stored here
4848
MyTRIMResultList _result_list;
49+
50+
///@{ timers
51+
PerfID _perf_trim;
52+
PerfID _perf_finalize;
53+
///@}
4954
};
5055

5156
#endif // MYTRIMDIRACRUN_H

include/userobjects/MyTRIMElementRun.h

+5
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ class MyTRIMElementRun : public MyTRIMRunBase
4646
/// data such as interstitials and vacancies produced will be stored here
4747
MyTRIMResultMap _result_map;
4848

49+
///@{ timers
50+
PerfID _perf_trim;
51+
PerfID _perf_finalize;
52+
///@}
53+
4954
private:
5055
/// zero result to return for elements that have not been touched by the cascades
5156
MyTRIMResult _zero;

include/userobjects/MyTRIMRasterizer.h

+3
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,9 @@ class MyTRIMRasterizer : public ElementUserObject
198198

199199
private:
200200
bool _execute_this_timestep;
201+
202+
/// timers
203+
PerfID _perf_finalize;
201204
};
202205

203206
#endif // MYTRIMRASTERIZER_H

src/userobjects/MyTRIMDiracRun.C

+13-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ validParams<MyTRIMDiracRun>()
2727
return params;
2828
}
2929

30-
MyTRIMDiracRun::MyTRIMDiracRun(const InputParameters & parameters) : MyTRIMRunBase(parameters)
30+
MyTRIMDiracRun::MyTRIMDiracRun(const InputParameters & parameters)
31+
: MyTRIMRunBase(parameters),
32+
_perf_trim(registerTimedSection("trim", 2)),
33+
_perf_finalize(registerTimedSection("finalize", 2))
3134
{
3235
if (_trim_parameters.desired_npka != 0)
3336
mooseError("Result scaling not supported in MyTRIMDiracRun");
@@ -52,9 +55,10 @@ MyTRIMDiracRun::execute()
5255
_console << "\nMyTRIM: Running " << _trim_parameters.original_npka << " recoils." << std::endl;
5356

5457
// run threads
55-
Moose::perf_log.push("MyTRIMRecoilLoop", "Solve");
56-
Threads::parallel_reduce(PKARange(_pka_list.begin(), _pka_list.end()), rl);
57-
Moose::perf_log.pop("MyTRIMRecoilLoop", "Solve");
58+
{
59+
TIME_SECTION(_perf_trim);
60+
Threads::parallel_reduce(PKARange(_pka_list.begin(), _pka_list.end()), rl);
61+
}
5862

5963
// fetch the joined data from thread 0
6064
_result_list = rl.getResultList();
@@ -63,6 +67,11 @@ MyTRIMDiracRun::execute()
6367
void
6468
MyTRIMDiracRun::finalize()
6569
{
70+
TIME_SECTION(_perf_finalize);
71+
72+
if (!_rasterizer.executeThisTimestep())
73+
return;
74+
6675
// for single processor runs we do not need to do anything here
6776
if (_app.n_processors() == 1)
6877
return;

src/userobjects/MyTRIMElementRun.C

+10-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ validParams<MyTRIMElementRun>()
2929
}
3030

3131
MyTRIMElementRun::MyTRIMElementRun(const InputParameters & parameters)
32-
: MyTRIMRunBase(parameters), _zero(_nvars)
32+
: MyTRIMRunBase(parameters),
33+
_perf_trim(registerTimedSection("trim", 2)),
34+
_perf_finalize(registerTimedSection("finalize", 2)),
35+
_zero(_nvars)
3336
{
3437
}
3538

@@ -55,10 +58,10 @@ MyTRIMElementRun::execute()
5558
<< "Result scaling factor: " << _trim_parameters.result_scaling_factor << std::endl;
5659

5760
// run threads
58-
Moose::perf_log.push("MyTRIMRecoilLoop", "Solve");
59-
Threads::parallel_reduce(PKARange(_pka_list.begin(), _pka_list.end()), rl);
60-
61-
Moose::perf_log.pop("MyTRIMRecoilLoop", "Solve");
61+
{
62+
TIME_SECTION(_perf_trim);
63+
Threads::parallel_reduce(PKARange(_pka_list.begin(), _pka_list.end()), rl);
64+
}
6265

6366
// fetch the joined data from thread 0
6467
_result_map = rl.getResultMap();
@@ -67,6 +70,8 @@ MyTRIMElementRun::execute()
6770
void
6871
MyTRIMElementRun::finalize()
6972
{
73+
TIME_SECTION(_perf_finalize);
74+
7075
if (!_rasterizer.executeThisTimestep())
7176
return;
7277

src/userobjects/MyTRIMRasterizer.C

+4-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ MyTRIMRasterizer::MyTRIMRasterizer(const InputParameters & parameters)
144144
_periodic(isCoupled("periodic_var") ? coupled("periodic_var", 0) : coupled("var", 0)),
145145
_accumulated_time(0.0),
146146
_accumulated_time_old(0.0),
147-
_interval(getParam<unsigned int>("interval"))
147+
_interval(getParam<unsigned int>("interval")),
148+
_perf_finalize(registerTimedSection("finalize", 2))
148149
{
149150
if (_nvars == 0)
150151
mooseError("Must couple variables to MyTRIMRasterizer.");
@@ -370,6 +371,8 @@ MyTRIMRasterizer::threadJoin(const UserObject & y)
370371
void
371372
MyTRIMRasterizer::finalize()
372373
{
374+
TIME_SECTION(_perf_finalize);
375+
373376
// save the accumulated time so that we can properly roll back if the step does not converge
374377
_accumulated_time_old = _accumulated_time;
375378

0 commit comments

Comments
 (0)