forked from fjebaker/SPEChpc-reframe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
spechpc.py
90 lines (68 loc) · 3.05 KB
/
spechpc.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import logging
import reframe as rfm
import reframe.core.builtins as blt
import harness
import harness.config as config
F_MHZ = config.F_MHZ
logger = logging.getLogger(__name__)
class SetupPerfEvents(rfm.RegressionMixin):
@blt.run_after("setup")
def set_perf_events(self):
partition_name = self.current_partition.name
if partition_name in (config.SAPPHIRE, config.ICELAKE):
self.perf_events = [
harness.PerfEvents.power.energy_ram,
harness.PerfEvents.power.energy_pkg,
]
elif partition_name == config.CASCADE_LAKE:
self.perf_events = [
harness.PerfEvents.power.energy_cores,
harness.PerfEvents.power.energy_ram,
harness.PerfEvents.power.energy_pkg,
]
else:
self.perf_events = [
harness.PerfEvents.power.energy_cores,
harness.PerfEvents.power.energy_pkg,
]
@rfm.simple_test
class Lbm_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
num_nodes = 1
spechpc_binary = fixture(harness.build_Lbm_t, scope="environment")
@rfm.simple_test
class Soma_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
num_nodes = 1
spechpc_binary = fixture(harness.build_Soma_t, scope="environment")
# using these fixtures to ensure the build process is serial between tests
dag_build = fixture(harness.build_Lbm_t, scope="environment")
@rfm.simple_test
class Tealeaf_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
num_nodes = 1
spechpc_binary = fixture(harness.build_Tealeaf_t, scope="environment")
dag_build = fixture(harness.build_Soma_t, scope="environment")
@rfm.simple_test
class Clvleaf_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
num_nodes = 1
spechpc_binary = fixture(harness.build_Clvleaf_t, scope="environment")
dag_build = fixture(harness.build_Tealeaf_t, scope="environment")
@rfm.simple_test
class Pot3d_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
num_nodes = 1
spechpc_binary = fixture(harness.build_Pot3d_t, scope="environment")
dag_build = fixture(harness.build_Clvleaf_t, scope="environment")
@rfm.simple_test
class Hpgmgfv_Exa_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
num_nodes = 1
spechpc_binary = fixture(harness.build_Hpgmgfv_Exa_t, scope="environment")
dag_build = fixture(harness.build_Pot3d_t, scope="environment")
@rfm.simple_test
class Weather_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
num_nodes = 1
spechpc_binary = fixture(harness.build_Weather_t, scope="environment")
dag_build = fixture(harness.build_Hpgmgfv_Exa_t, scope="environment")
# can't seem to compile?
# @rfm.simple_test
# class Sph_Exa_t(harness.SPEChpcBase, harness.FrequencySweepAll, SetupPerfEvents):
# num_nodes = 1
# spechpc_binary = fixture(harness.build_Sph_Exa_t, scope="environment")
# dag_build = fixture(harness.build_Pot3d_t, scope="environment")