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
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,3 +132,19 @@ ReFrame tries to keep concurrency high by maintaining as many test cases as poss
132
132
When the `concurrency limit <config_reference.html#.systems[].partitions[].max_jobs>`__ is reached, ReFrame will first try to free up execution slots by checking if any of the spawned jobs have finished, and it will fill that slots first before throttling execution.
133
133
134
134
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.
135
+
136
+
Timing the Test Pipeline
137
+
------------------------
138
+
139
+
.. versionadded:: 3.0
140
+
141
+
ReFrame keeps track of the time a test spends in every pipeline stage and reports that after each test finishes.
142
+
However, it does so from its own perspective and not from that of the scheduler backend used.
143
+
This has some practical implications:
144
+
As soon as a test enters the "run" phase, ReFrame's timer for that phase starts ticking regardless if the associated job is pending.
145
+
Similarly, the "run" phase ends as soon as ReFrame realizes it.
146
+
This will happen after the associated job has finished.
147
+
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.
148
+
149
+
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.
150
+
See :doc:`dependencies` for more information on how ReFrame treats tests with dependencies.
[ OK ] ( 1/21) OSUBuildTest on daint:gpu using PrgEnv-pgi
144
-
[ OK ] ( 2/21) OSUBuildTest on daint:gpu using PrgEnv-gnu
145
-
[ OK ] ( 3/21) OSUBuildTest on daint:gpu using PrgEnv-intel
146
-
[ OK ] ( 4/21) OSUAllreduceTest_2 on daint:gpu using PrgEnv-pgi
147
-
[ OK ] ( 5/21) OSUAllreduceTest_4 on daint:gpu using PrgEnv-pgi
148
-
[ OK ] ( 6/21) OSUAllreduceTest_8 on daint:gpu using PrgEnv-pgi
149
-
[ OK ] ( 7/21) OSUAllreduceTest_16 on daint:gpu using PrgEnv-pgi
150
-
[ OK ] ( 8/21) OSUAllreduceTest_4 on daint:gpu using PrgEnv-gnu
151
-
[ OK ] ( 9/21) OSUAllreduceTest_16 on daint:gpu using PrgEnv-gnu
152
-
[ OK ] (10/21) OSUAllreduceTest_8 on daint:gpu using PrgEnv-gnu
153
-
[ OK ] (11/21) OSUAllreduceTest_16 on daint:gpu using PrgEnv-intel
154
-
[ OK ] (12/21) OSULatencyTest on daint:gpu using PrgEnv-pgi
155
-
[ OK ] (13/21) OSUAllreduceTest_2 on daint:gpu using PrgEnv-gnu
156
-
[ OK ] (14/21) OSULatencyTest on daint:gpu using PrgEnv-gnu
157
-
[ OK ] (15/21) OSUBandwidthTest on daint:gpu using PrgEnv-pgi
158
-
[ OK ] (16/21) OSUBandwidthTest on daint:gpu using PrgEnv-gnu
159
-
[ OK ] (17/21) OSUAllreduceTest_8 on daint:gpu using PrgEnv-intel
160
-
[ OK ] (18/21) OSUAllreduceTest_4 on daint:gpu using PrgEnv-intel
161
-
[ OK ] (19/21) OSULatencyTest on daint:gpu using PrgEnv-intel
162
-
[ OK ] (20/21) OSUAllreduceTest_2 on daint:gpu using PrgEnv-intel
163
-
[ OK ] (21/21) OSUBandwidthTest on daint:gpu using PrgEnv-intel
143
+
[ OK ] ( 1/21) OSUBuildTest on daint:gpu using PrgEnv-pgi [compile: 29.581s run: 0.086s total: 29.708s]
144
+
[ OK ] ( 2/21) OSUBuildTest on daint:gpu using PrgEnv-gnu [compile: 26.250s run: 69.120s total: 95.437s]
145
+
[ OK ] ( 3/21) OSUBuildTest on daint:gpu using PrgEnv-intel [compile: 39.385s run: 89.213s total: 129.871s]
146
+
[ OK ] ( 4/21) OSULatencyTest on daint:gpu using PrgEnv-pgi [compile: 0.012s run: 145.355s total: 154.504s]
147
+
[ OK ] ( 5/21) OSUAllreduceTest_2 on daint:gpu using PrgEnv-pgi [compile: 0.014s run: 148.276s total: 154.433s]
148
+
[ OK ] ( 6/21) OSUAllreduceTest_4 on daint:gpu using PrgEnv-pgi [compile: 0.011s run: 149.763s total: 154.407s]
149
+
[ OK ] ( 7/21) OSUAllreduceTest_8 on daint:gpu using PrgEnv-pgi [compile: 0.013s run: 151.262s total: 154.378s]
150
+
[ OK ] ( 8/21) OSUAllreduceTest_16 on daint:gpu using PrgEnv-pgi [compile: 0.010s run: 152.716s total: 154.360s]
151
+
[ OK ] ( 9/21) OSULatencyTest on daint:gpu using PrgEnv-gnu [compile: 0.014s run: 210.952s total: 220.847s]
152
+
[ OK ] (10/21) OSUBandwidthTest on daint:gpu using PrgEnv-pgi [compile: 0.015s run: 213.285s total: 220.758s]
153
+
[ OK ] (11/21) OSUAllreduceTest_4 on daint:gpu using PrgEnv-gnu [compile: 0.011s run: 215.596s total: 220.717s]
154
+
[ OK ] (12/21) OSUAllreduceTest_16 on daint:gpu using PrgEnv-gnu [compile: 0.011s run: 218.742s total: 220.651s]
155
+
[ OK ] (13/21) OSUAllreduceTest_2 on daint:gpu using PrgEnv-intel [compile: 0.013s run: 203.214s total: 206.115s]
156
+
[ OK ] (14/21) OSUAllreduceTest_8 on daint:gpu using PrgEnv-intel [compile: 0.016s run: 204.819s total: 206.078s]
157
+
[ OK ] (15/21) OSUBandwidthTest on daint:gpu using PrgEnv-gnu [compile: 0.012s run: 258.772s total: 266.873s]
158
+
[ OK ] (16/21) OSUAllreduceTest_8 on daint:gpu using PrgEnv-gnu [compile: 0.014s run: 263.576s total: 266.752s]
159
+
[ OK ] (17/21) OSULatencyTest on daint:gpu using PrgEnv-intel [compile: 0.011s run: 227.234s total: 231.789s]
160
+
[ OK ] (18/21) OSUAllreduceTest_4 on daint:gpu using PrgEnv-intel [compile: 0.013s run: 229.729s total: 231.724s]
161
+
[ OK ] (19/21) OSUAllreduceTest_2 on daint:gpu using PrgEnv-gnu [compile: 0.013s run: 286.203s total: 292.444s]
162
+
[ OK ] (20/21) OSUAllreduceTest_16 on daint:gpu using PrgEnv-intel [compile: 0.028s run: 242.030s total: 242.091s]
163
+
[ OK ] (21/21) OSUBandwidthTest on daint:gpu using PrgEnv-intel [compile: 0.013s run: 243.719s total: 247.384s]
164
164
[----------] all spawned checks have finished
165
165
166
166
[ PASSED ] Ran 21 test case(s) from 7 check(s) (0 failure(s))
167
-
[==========] Finished on Wed Mar 25 14:37:53 2020
167
+
[==========] Finished on Wed Jun 3 09:07:24 2020
168
168
169
169
Before starting running the tests, ReFrame topologically sorts them based on their dependencies and schedules them for running using the selected execution policy.
170
170
With the serial execution policy, ReFrame simply executes the tests to completion as they "arrive", since the tests are already topologically sorted.
0 commit comments