You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/pipeline.rst
+11-8Lines changed: 11 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -130,15 +130,18 @@ When the `concurrency limit <config_reference.html#.systems[].partitions[].max_j
130
130
131
131
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.
132
132
133
-
Time Profiling of the Pipeline
134
-
------------------------------
133
+
Timing the Test Pipeline
134
+
------------------------
135
135
136
136
.. versionadded:: 3.0
137
137
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.
141
145
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