-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathminivite_short.py
52 lines (43 loc) · 1.72 KB
/
minivite_short.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
import reframe as rfm
import reframe.utility.sanity as sn
import hackathon as hack
@rfm.simple_test
class MiniViteTest(hack.HackathonBase):
# Where to run the binaries 'aws:c6gn' on Arm or 'aws:c5n' on Intel
valid_systems = ['aws:c6gn']
# Logging Variables
log_team_name = 'GarotesdePremia'
log_app_name = 'miniVite'
log_test_name = 'N 1000000'
# Define Execution
# Binary to run
executable = 'miniVite'
# Command line options to pass
executable_opts = ['-n 1000000']
# Where the output is written to
logfile = 'minivite.out'
# Store the output file (used for validation later)
keep_files = [logfile]
# Parameters - Compilers - Defined as their Spack specs (use spec or hash)
spec = parameter([
'[email protected] %[email protected]', # Minivite with the GCC compiler
'[email protected] %[email protected]', # Minivite with the Arm compiler
'[email protected] %[email protected]' # Minivite with the NVIDIA compiler
])
# Parameters - MPI / Threads - Used for scaling studies
parallelism = parameter([
{ 'nodes' : 1, 'mpi' : 1, 'omp' : 1},
{ 'nodes' : 1, 'mpi' : 2, 'omp' : 1},
{ 'nodes' : 1, 'mpi' : 4, 'omp' : 1},
{ 'nodes' : 1, 'mpi' : 8, 'omp' : 1},
{ 'nodes' : 1, 'mpi' : 16, 'omp' : 1},
{ 'nodes' : 1, 'mpi' : 32, 'omp' : 1},
{ 'nodes' : 1, 'mpi' : 64, 'omp' : 1},
])
@run_before('sanity')
def set_sanity_patterns(self):
self.sanity_patterns = sn.assert_found('Modularity', sn.print(self.stdout))
@run_before('performance')
def set_perf_pattern(self):
self.perf_patterns = {
'Run Time': sn.extractsingle(r'.*Time \(in s\):\s+(\S+).*', self.stdout, 1, float)}