Skip to content

Commit 3e2f7e0

Browse files
author
Vasileios Karakasis
committed
Fine tune documentation for time profiling.
1 parent f85ca2b commit 3e2f7e0

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

docs/pipeline.rst

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,18 @@ When the `concurrency limit <config_reference.html#.systems[].partitions[].max_j
130130

131131
ReFrame uses polling to check the status of the spawned jobs, but it does so in a dynamic way, in order to ensure both responsiveness and avoid overloading the system job scheduler with excessive polling.
132132

133-
Time Profiling of the Pipeline
134-
------------------------------
133+
Timing the Test Pipeline
134+
------------------------
135135

136136
.. versionadded:: 3.0
137137

138-
ReFrame keeps track of the time a test spends in each phases of the pipeline, but it has some limitations.
139-
The time that is reported for the run phase is not obtained from reliable sources, like the accounting information of the scheduler, but instead from the framework itself.
140-
This means that the end of the run phase is considered to be when ReFrame realizes the test has finished running and it can vary significantly because of the polling rate.
138+
ReFrame keeps track of the time a test spends in every pipeline stage and reports that after each test finishes.
139+
However, it does so from its own perspective and not from that of the scheduler backend used.
140+
This has some practical implications:
141+
As soon as a test enters the "run" phase, ReFrame's timer for that phase starts ticking regardless if the associated job is pending.
142+
Similarly, the "run" phase ends as soon as ReFrame realizes it.
143+
This will happen after the associated job has finished.
144+
For this reason, the time spent in the pipeline's "run" phase should *not* be interpreted as the actual runtime of the test, especially if a non-local scheduler backend is used.
141145

142-
The second limitation comes from the dependencies and the fact that a test's resources might not be cleaned up as soon as it finishes.
143-
ReFrame will wait until all the dependencies of a test finish successfully their execution before cleaning up its resources and if one of them fails it will ignore this phase completely.
144-
The final status of the test and its time profiling information are reported before the cleanup phase.
146+
Finally, the execution time of the "cleanup" phase is not reported when a test finishes, since it may be deferred in case that there exist tests that depend on that one.
147+
See :doc:`dependencies` for more information on how ReFrame treats tests with dependencies.

0 commit comments

Comments
 (0)