npb package: add version 3.4.1 (#28122)
* The Class F problem has been added to seven of the benchmarks (BT, SP, LU, CG, MG, FT, and EP). * The Class E problem has been added to the IS benchmark. * In version 3.4.1, 'the number of processes' option does not apply. * MPIFC and FC flags were added.
This commit is contained in:
parent
f3035f98e1
commit
9c8a75ff9c
@ -32,6 +32,7 @@ class Npb(MakefilePackage):
|
||||
url = "https://www.nas.nasa.gov/assets/npb/NPB3.3.1.tar.gz"
|
||||
|
||||
version('3.3.1', sha256='4a8ea679b1df69f583c544c47198b3c26a50ec2bb6f8f69aef66c04c9a747d2d')
|
||||
version('3.4.1', sha256='f3a43467da6e84a829ea869156d3ea86c17932136bb413a4b6dab23018a28881')
|
||||
|
||||
# Valid Benchmark Names
|
||||
valid_names = (
|
||||
@ -52,7 +53,7 @@ class Npb(MakefilePackage):
|
||||
'W', # Workstation size
|
||||
'A', 'B', 'C', # standard test problems
|
||||
# ~4X size increase going from one class to the next
|
||||
'D', 'E', # large test problems
|
||||
'D', 'E', 'F' # large test problems
|
||||
# ~16X size increase from each of the previous classes
|
||||
)
|
||||
|
||||
@ -117,6 +118,7 @@ def edit(self, spec, prefix):
|
||||
if 'implementation=mpi' in spec:
|
||||
definitions = {
|
||||
# Parallel Fortran
|
||||
'MPIFC': spec['mpi'].mpifc,
|
||||
'MPIF77': spec['mpi'].mpif77,
|
||||
'FLINK': spec['mpi'].mpif77,
|
||||
'FMPI_LIB': spec['mpi'].libs.ld_flags,
|
||||
@ -138,6 +140,7 @@ def edit(self, spec, prefix):
|
||||
elif 'implementation=openmp' in spec:
|
||||
definitions = {
|
||||
# Parallel Fortran
|
||||
'FC': spack_fc,
|
||||
'F77': spack_f77,
|
||||
'FLINK': spack_f77,
|
||||
'F_LIB': '',
|
||||
@ -189,15 +192,20 @@ def edit(self, spec, prefix):
|
||||
with open('config/suite.def', 'w') as suite_def:
|
||||
for name in names:
|
||||
for classname in classes:
|
||||
# Classes C, D and E are not available for DT
|
||||
if name == 'dt' and classname in ('C', 'D', 'E'):
|
||||
# Classes C, D, E and F are not available for DT
|
||||
if name == 'dt' and classname in ('C', 'D', 'E', 'F'):
|
||||
continue
|
||||
|
||||
# Class E is not available for IS
|
||||
if name == 'is' and classname == 'E':
|
||||
continue
|
||||
# Class E, F is not available for IS at @3.3.1
|
||||
# Class F is not available for IS at @3.4.1
|
||||
if name == 'is':
|
||||
if classname == 'E':
|
||||
if spec.satisfies('@3.3.1'):
|
||||
continue
|
||||
if classname == 'F':
|
||||
continue
|
||||
|
||||
if 'implementation=mpi' in spec:
|
||||
if 'implementation=mpi' in spec and spec.satisfies('@3.3.1'):
|
||||
for nproc in nprocs:
|
||||
suite_def.write('{0}\t{1}\t{2}\n'.format(
|
||||
name, classname, nproc))
|
||||
|
Loading…
Reference in New Issue
Block a user