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"
|
url = "https://www.nas.nasa.gov/assets/npb/NPB3.3.1.tar.gz"
|
||||||
|
|
||||||
version('3.3.1', sha256='4a8ea679b1df69f583c544c47198b3c26a50ec2bb6f8f69aef66c04c9a747d2d')
|
version('3.3.1', sha256='4a8ea679b1df69f583c544c47198b3c26a50ec2bb6f8f69aef66c04c9a747d2d')
|
||||||
|
version('3.4.1', sha256='f3a43467da6e84a829ea869156d3ea86c17932136bb413a4b6dab23018a28881')
|
||||||
|
|
||||||
# Valid Benchmark Names
|
# Valid Benchmark Names
|
||||||
valid_names = (
|
valid_names = (
|
||||||
@ -52,7 +53,7 @@ class Npb(MakefilePackage):
|
|||||||
'W', # Workstation size
|
'W', # Workstation size
|
||||||
'A', 'B', 'C', # standard test problems
|
'A', 'B', 'C', # standard test problems
|
||||||
# ~4X size increase going from one class to the next
|
# ~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
|
# ~16X size increase from each of the previous classes
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -117,6 +118,7 @@ def edit(self, spec, prefix):
|
|||||||
if 'implementation=mpi' in spec:
|
if 'implementation=mpi' in spec:
|
||||||
definitions = {
|
definitions = {
|
||||||
# Parallel Fortran
|
# Parallel Fortran
|
||||||
|
'MPIFC': spec['mpi'].mpifc,
|
||||||
'MPIF77': spec['mpi'].mpif77,
|
'MPIF77': spec['mpi'].mpif77,
|
||||||
'FLINK': spec['mpi'].mpif77,
|
'FLINK': spec['mpi'].mpif77,
|
||||||
'FMPI_LIB': spec['mpi'].libs.ld_flags,
|
'FMPI_LIB': spec['mpi'].libs.ld_flags,
|
||||||
@ -138,6 +140,7 @@ def edit(self, spec, prefix):
|
|||||||
elif 'implementation=openmp' in spec:
|
elif 'implementation=openmp' in spec:
|
||||||
definitions = {
|
definitions = {
|
||||||
# Parallel Fortran
|
# Parallel Fortran
|
||||||
|
'FC': spack_fc,
|
||||||
'F77': spack_f77,
|
'F77': spack_f77,
|
||||||
'FLINK': spack_f77,
|
'FLINK': spack_f77,
|
||||||
'F_LIB': '',
|
'F_LIB': '',
|
||||||
@ -189,15 +192,20 @@ def edit(self, spec, prefix):
|
|||||||
with open('config/suite.def', 'w') as suite_def:
|
with open('config/suite.def', 'w') as suite_def:
|
||||||
for name in names:
|
for name in names:
|
||||||
for classname in classes:
|
for classname in classes:
|
||||||
# Classes C, D and E are not available for DT
|
# Classes C, D, E and F are not available for DT
|
||||||
if name == 'dt' and classname in ('C', 'D', 'E'):
|
if name == 'dt' and classname in ('C', 'D', 'E', 'F'):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Class E is not available for IS
|
# Class E, F is not available for IS at @3.3.1
|
||||||
if name == 'is' and classname == 'E':
|
# Class F is not available for IS at @3.4.1
|
||||||
continue
|
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:
|
for nproc in nprocs:
|
||||||
suite_def.write('{0}\t{1}\t{2}\n'.format(
|
suite_def.write('{0}\t{1}\t{2}\n'.format(
|
||||||
name, classname, nproc))
|
name, classname, nproc))
|
||||||
|
Loading…
Reference in New Issue
Block a user