10
10
import reframe .utility .sanity as sn
11
11
import numpy as np
12
12
13
+
13
14
@rfm .simple_test
14
15
class SlurmEnergy1nodeTest (rfm .RunOnlyRegressionTest ):
15
16
"""Checks the energy reporting with a delay"""
@@ -32,7 +33,7 @@ def assert_finished(self):
32
33
def extract_perf (self ):
33
34
"""Extract energy from counters to compare with slurm and check diff is zero"""
34
35
jobid = self .job .jobid
35
- #print("jobid: ", jobid)
36
+ # print("jobid: ", jobid)
36
37
slurm = rfm .utility .osext .run_command (
37
38
"sacct -j " + str (jobid ) + " --format=JobID,ConsumedEnergy --noconvert | tr '\n ' ' ' " ,
38
39
check = True ,
@@ -62,7 +63,6 @@ def extract_perf(self):
62
63
return diff
63
64
64
65
65
-
66
66
@rfm .simple_test
67
67
class SlurmEnergy4nodesTest (rfm .RunOnlyRegressionTest ):
68
68
"""Checks the energy reporting with a delay"""
@@ -75,7 +75,6 @@ class SlurmEnergy4nodesTest(rfm.RunOnlyRegressionTest):
75
75
num_nodes = 4
76
76
num_tasks_per_node = 1
77
77
num_tasks = num_nodes * num_tasks_per_node
78
-
79
78
80
79
tags = {"production" , "maintenance" , "craype" }
81
80
@@ -90,56 +89,56 @@ def assert_finished(self):
90
89
def extract_perf (self ):
91
90
"""Extract energy from counters to compare with slurm and check diff is zero"""
92
91
jobid = self .job .jobid
93
- #print("jobid: ", jobid)
92
+ # print("jobid: ", jobid)
94
93
slurm = rfm .utility .osext .run_command (
95
94
"sacct -j " + str (jobid ) + " --format=JobID,ConsumedEnergy --noconvert | tr '\n ' ' ' " ,
96
95
check = True ,
97
96
shell = True ,
98
97
)
99
- print ("slurm: " , slurm .stdout )
98
+ # print("slurm: ", slurm.stdout)
100
99
101
100
nodelist_raw = rfm .utility .osext .run_command (
102
101
"ls nid* | tr '\n ' ',' | sed 's/,$//g'" ,
103
102
check = True ,
104
103
shell = True ,
105
104
)
106
105
107
- #print("nodelist output: ", nodelist_raw.stdout)
106
+ # print("nodelist output: ", nodelist_raw.stdout)
108
107
109
108
nodelist = list (nodelist_raw .stdout .split ("," ))
110
109
111
- #print("nodelist: ", nodelist)
110
+ # print("nodelist: ", nodelist)
112
111
113
112
energy_data = []
114
113
115
114
energy_counters = []
116
115
117
116
for i , nodeid in enumerate (nodelist ):
118
- energy_data .append (sn .extractall (r"(?P<energy>[0-9]+)\sJ\s(?P<time>[0-9]+)\sus" , nodeid , "energy" ))
117
+ energy_data .append (sn .extractall (r"(?P<energy>[0-9]+)\sJ\s(?P<time>[0-9]+)\sus" , nodeid , "energy" ))
119
118
120
119
for i , energy in enumerate (energy_data ):
121
120
energy_counters .append (int (str (energy [0 ])))
122
121
energy_counters .append (int (str (energy [1 ])))
123
122
124
- #print("energy counters: ", energy_counters)
123
+ # print("energy counters: ", energy_counters)
125
124
126
125
energy_slurm = sn .extractall_s (
127
126
r"JobID\s+ConsumedEnergy\s+------------ --------------\s+[0-9]+\s+[0-9]+\s+[0-9]+.bat\+\s+[0-9]+\s+[0-9]+.ext\+\s+[0-9]+\s+[0-9]+.0\s+(?P<energy>[0-9]+)" ,
128
127
str (slurm .stdout ),
129
128
"energy" ,
130
129
)
131
- #print("energy slurm: ", energy_slurm)
130
+ # print("energy slurm: ", energy_slurm)
132
131
133
132
energy_counters_diff = 0
134
133
135
134
for i in np .arange (0 , len (energy_counters ), 2 ):
136
- print (energy_counters [i + 1 ] - energy_counters [i ])
137
- energy_counters_diff += energy_counters [i + 1 ] - energy_counters [i ]
135
+ # print(energy_counters[i + 1] - energy_counters[i])
136
+ energy_counters_diff += energy_counters [i + 1 ] - energy_counters [i ]
138
137
139
- #print("energy counters diff: ", energy_counters_diff)
138
+ # print("energy counters diff: ", energy_counters_diff)
140
139
141
140
diff = energy_counters_diff - int (str (energy_slurm [0 ]))
142
141
143
- #print("diff: ", diff)
142
+ # print("diff: ", diff)
144
143
145
144
return diff
0 commit comments