@@ -15,6 +15,7 @@ def __init__(self, prg_envs):
1515 self .configs = {
1616 'PrgEnv-gnu' : 'cscs-gnu' ,
1717 'PrgEnv-cray' : 'cscs-cray' ,
18+ 'PrgEnv-pgi' : 'cscs-pgi' ,
1819 }
1920
2021 app_source = os .path .join (self .current_system .resourcesdir ,
@@ -31,7 +32,7 @@ def __init__(self, prg_envs):
3132 self .refs = {
3233 env : {bench_name : (rt , None , 0.1 , 'Seconds' )
3334 for (bench_name , rt ) in
34- zip (self .benchmarks , self .exec_times [env ])}
35+ zip (self .benchmarks [ env ] , self .exec_times [env ])}
3536 for env in self .valid_prog_environs
3637 }
3738
@@ -42,14 +43,18 @@ def __init__(self, prg_envs):
4243 self .executable = 'runspec'
4344
4445 outfile = sn .getitem (sn .glob ('result/ACCEL.*.log' ), 0 )
45- self .sanity_patterns = sn .all ([sn .assert_found (
46- r'Success.*%s' % bn , outfile ) for bn in self .benchmarks ])
47-
48- self .perf_patterns = {
49- bench_name : sn .avg (sn .extractall (
50- r'Success.*%s.*runtime=(?P<rt>[0-9.]+)' % bench_name ,
51- outfile , 'rt' , float ))
52- for bench_name in self .benchmarks
46+ self .sanity_patterns_ = {
47+ env : sn .all ([sn .assert_found (
48+ r'Success.*%s' % bn , outfile ) for bn in self .benchmarks [env ]])
49+ for env in self .valid_prog_environs
50+ }
51+
52+ self .perf_patterns_ = {
53+ env : {bench_name : sn .avg (sn .extractall (
54+ r'Success.*%s.*runtime=(?P<rt>[0-9.]+)' % bench_name ,
55+ outfile , 'rt' , float ))
56+ for bench_name in self .benchmarks [env ]}
57+ for env in self .valid_prog_environs
5358 }
5459
5560 self .maintainers = ['SK' ]
@@ -61,12 +66,15 @@ def setup(self, partition, environ, **job_opts):
6166 self .executable_opts = ['--config=%s' % self .configs [environ .name ],
6267 '--platform NVIDIA' ,
6368 '--tune=base' ,
64- '--device GPU' ] + self .benchmarks
69+ '--device GPU' ] + self .benchmarks [ environ . name ]
6570 self .reference = {
6671 'dom:gpu' : self .refs [environ .name ],
6772 'daint:gpu' : self .refs [environ .name ]
6873 }
6974
75+ self .sanity_patterns = self .sanity_patterns_ [environ .name ]
76+ self .perf_patterns = self .perf_patterns_ [environ .name ]
77+
7078 super ().setup (partition , environ , ** job_opts )
7179 # The job launcher has to be changed since the `runspec`
7280 # script is not used with srun.
@@ -78,12 +86,22 @@ def setup(self, partition, environ, **job_opts):
7886class SpecAccelCheckOpenCL (SpecAccelCheckBase ):
7987 def __init__ (self ):
8088 self .descr = 'SPEC-accel benchmark OpenCL'
81- valid_prog_environs = ['PrgEnv-gnu' , 'PrgEnv-cray' ]
89+ valid_prog_environs = ['PrgEnv-gnu' , 'PrgEnv-cray' , 'PrgEnv-pgi' ]
8290
83- self .benchmarks = ['systest' , 'tpacf' , 'stencil' , 'lbm' , 'fft' ,
91+ self .benchmarks = {
92+ 'PrgEnv-gnu' : ['systest' , 'tpacf' , 'stencil' , 'lbm' , 'fft' ,
8493 'spmv' , 'mriq' , 'bfs' , 'cutcp' , 'kmeans' ,
8594 'lavamd' , 'cfd' , 'nw' , 'hotspot' , 'lud' ,
86- 'ge' , 'srad' , 'heartwall' , 'bplustree' ]
95+ 'ge' , 'srad' , 'heartwall' , 'bplustree' ],
96+ 'PrgEnv-cray' : ['systest' , 'tpacf' , 'stencil' , 'lbm' , 'fft' ,
97+ 'spmv' , 'mriq' , 'bfs' , 'cutcp' , 'kmeans' ,
98+ 'lavamd' , 'cfd' , 'nw' , 'hotspot' , 'lud' ,
99+ 'ge' , 'srad' , 'heartwall' , 'bplustree' ],
100+ 'PrgEnv-pgi' : ['systest' , 'tpacf' , 'stencil' , 'lbm' , 'fft' ,
101+ 'spmv' , 'mriq' , 'bfs' , 'kmeans' ,
102+ 'lavamd' , 'cfd' , 'nw' , 'hotspot' , 'lud' ,
103+ 'ge' , 'srad' , 'heartwall' , 'bplustree' ],
104+ }
87105
88106 self .exec_times = {
89107 'PrgEnv-gnu' : [10.7 , 13.5 , 17.0 , 10.9 , 11.91 , 27.8 ,
@@ -92,6 +110,9 @@ def __init__(self):
92110 'PrgEnv-cray' : [10.7 , 13.5 , 17.0 , 10.9 , 11.91 , 27.8 ,
93111 7.0 , 23.1 , 10.8 , 24.9 , 8.7 , 24.4 , 16.2 ,
94112 15.7 , 15.6 , 11.1 , 20.0 , 41.9 , 26.2 ],
113+ 'PrgEnv-pgi' : [10.7 , 30 , 17.0 , 10.9 , 11.91 , 27.8 ,
114+ 7.0 , 23.1 , 24.9 , 8.7 , 24.4 , 16.2 ,
115+ 15.7 , 15.6 , 11.1 , 20.0 , 41.9 , 26.2 ],
95116 }
96117
97118 super ().__init__ (valid_prog_environs )
@@ -102,15 +123,22 @@ def __init__(self):
102123class SpecAccelCheckOpenACC (SpecAccelCheckBase ):
103124 def __init__ (self ):
104125 self .descr = 'SPEC-accel benchmark OpenACC'
105- valid_prog_environs = ['PrgEnv-cray' ]
126+ valid_prog_environs = ['PrgEnv-cray' , 'PrgEnv-pgi' ]
106127
107- self .benchmarks = ['ostencil' , 'olbm' , 'omriq' , 'md' , 'ep' ,
128+ self .benchmarks = {
129+ 'PrgEnv-cray' : ['ostencil' , 'olbm' , 'omriq' , 'md' , 'ep' ,
130+ 'clvrleaf' , 'cg' , 'seismic' , 'sp' , 'csp' ,
131+ 'miniGhost' , 'ilbdc' , 'swim' , 'bt' ],
132+ 'PrgEnv-pgi' : ['ostencil' , 'olbm' , 'omriq' , 'md' , 'ep' ,
108133 'clvrleaf' , 'cg' , 'seismic' , 'sp' , 'csp' ,
109- 'miniGhost' , 'ilbdc' , 'swim' , 'bt' ]
134+ 'ilbdc' , 'swim' , 'bt' ],
135+ }
110136
111137 self .exec_times = {
112138 'PrgEnv-cray' : [18 , 26 , 121 , 20 , 73 , 59 , 41 ,
113- 50 , 71 , 34 , 72 , 41 , 34 , 378 ]
139+ 50 , 71 , 34 , 72 , 41 , 34 , 378 ],
140+ 'PrgEnv-pgi' : [18 , 40 , 116 , 20 , 71 , 57 , 45 ,
141+ 56 , 33 , 32 , 41 , 48 , 15 ]
114142 }
115143
116144 super ().__init__ (valid_prog_environs )
0 commit comments