Updating amrvis to allow building with profiling support. (#9204)
* Updating amrvis to allow building with profiling support. * Setting MPI default to true.
This commit is contained in:
parent
ae1420bffc
commit
8f80ee7a40
@ -52,6 +52,8 @@ class Amrvis(MakefilePackage):
|
|||||||
)
|
)
|
||||||
variant('mpi', default=True, description='Enable MPI parallel support')
|
variant('mpi', default=True, description='Enable MPI parallel support')
|
||||||
variant('debug', default=False, description='Enable debugging features')
|
variant('debug', default=False, description='Enable debugging features')
|
||||||
|
variant('profiling', default=False,
|
||||||
|
description='Enable AMReX profiling features')
|
||||||
|
|
||||||
depends_on('gmake', type='build')
|
depends_on('gmake', type='build')
|
||||||
depends_on('mpi', when='+mpi')
|
depends_on('mpi', when='+mpi')
|
||||||
@ -62,6 +64,17 @@ class Amrvis(MakefilePackage):
|
|||||||
depends_on('libxt')
|
depends_on('libxt')
|
||||||
depends_on('libxext')
|
depends_on('libxext')
|
||||||
depends_on('motif')
|
depends_on('motif')
|
||||||
|
depends_on('flex')
|
||||||
|
depends_on('bison')
|
||||||
|
|
||||||
|
conflicts(
|
||||||
|
'+profiling', when='dims=1',
|
||||||
|
msg='Amrvis profiling support requires a 2D build'
|
||||||
|
)
|
||||||
|
conflicts(
|
||||||
|
'+profiling', when='dims=3',
|
||||||
|
msg='Amrvis profiling support requires a 2D build'
|
||||||
|
)
|
||||||
|
|
||||||
# Only doing gcc and clang at the moment.
|
# Only doing gcc and clang at the moment.
|
||||||
# Intel currently fails searching for mpiicc, mpiicpc, etc.
|
# Intel currently fails searching for mpiicc, mpiicpc, etc.
|
||||||
@ -81,7 +94,7 @@ def edit(self, spec, prefix):
|
|||||||
# Set all available makefile options to values we want
|
# Set all available makefile options to values we want
|
||||||
makefile = FileFilter('GNUmakefile')
|
makefile = FileFilter('GNUmakefile')
|
||||||
makefile.filter(
|
makefile.filter(
|
||||||
r'^AMREX_HOME\s*=.*',
|
r'^AMREX_HOME\s*\?=.*',
|
||||||
'AMREX_HOME = {0}'.format('./amrex')
|
'AMREX_HOME = {0}'.format('./amrex')
|
||||||
)
|
)
|
||||||
makefile.filter(
|
makefile.filter(
|
||||||
@ -94,15 +107,21 @@ def edit(self, spec, prefix):
|
|||||||
)
|
)
|
||||||
makefile.filter(
|
makefile.filter(
|
||||||
r'^PROFILE\s*=.*',
|
r'^PROFILE\s*=.*',
|
||||||
'PROFILE = FALSE'
|
'PROFILE = {0}'.format(
|
||||||
|
spec.variants['profiling'].value
|
||||||
|
).upper()
|
||||||
)
|
)
|
||||||
makefile.filter(
|
makefile.filter(
|
||||||
r'^TRACE_PROFILE\s*=.*',
|
r'^TRACE_PROFILE\s*=.*',
|
||||||
'TRACE_PROFILE = FALSE'
|
'TRACE_PROFILE = {0}'.format(
|
||||||
|
spec.variants['profiling'].value
|
||||||
|
).upper()
|
||||||
)
|
)
|
||||||
makefile.filter(
|
makefile.filter(
|
||||||
r'^COMM_PROFILE\s*=.*',
|
r'^COMM_PROFILE\s*=.*',
|
||||||
'COMM_PROFILE = FALSE'
|
'COMM_PROFILE = {0}'.format(
|
||||||
|
spec.variants['profiling'].value
|
||||||
|
).upper()
|
||||||
)
|
)
|
||||||
makefile.filter(
|
makefile.filter(
|
||||||
r'^COMP\s*=.*',
|
r'^COMP\s*=.*',
|
||||||
@ -134,7 +153,9 @@ def edit(self, spec, prefix):
|
|||||||
)
|
)
|
||||||
makefile.filter(
|
makefile.filter(
|
||||||
r'^USE_PROFPARSER\s*=.*',
|
r'^USE_PROFPARSER\s*=.*',
|
||||||
'USE_PROFPARSER = FALSE'
|
'USE_PROFPARSER = {0}'.format(
|
||||||
|
spec.variants['profiling'].value
|
||||||
|
).upper()
|
||||||
)
|
)
|
||||||
|
|
||||||
# A bit risky here deleting all /usr and /opt X
|
# A bit risky here deleting all /usr and /opt X
|
||||||
@ -171,6 +192,8 @@ def edit(self, spec, prefix):
|
|||||||
file.writelines(contents)
|
file.writelines(contents)
|
||||||
|
|
||||||
def setup_environment(self, spack_env, run_env):
|
def setup_environment(self, spack_env, run_env):
|
||||||
|
# We don't want an AMREX_HOME the user may have set already
|
||||||
|
spack_env.unset('AMREX_HOME')
|
||||||
# Help force Amrvis to not pick up random system compilers
|
# Help force Amrvis to not pick up random system compilers
|
||||||
if '+mpi' in self.spec:
|
if '+mpi' in self.spec:
|
||||||
spack_env.set('MPI_HOME', self.spec['mpi'].prefix)
|
spack_env.set('MPI_HOME', self.spec['mpi'].prefix)
|
||||||
|
Loading…
Reference in New Issue
Block a user