diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/chameleon/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/chameleon/package.py | 104 |
1 files changed, 61 insertions, 43 deletions
diff --git a/var/spack/repos/builtin/packages/chameleon/package.py b/var/spack/repos/builtin/packages/chameleon/package.py index 9e5205c295..f73cd82e16 100644 --- a/var/spack/repos/builtin/packages/chameleon/package.py +++ b/var/spack/repos/builtin/packages/chameleon/package.py @@ -9,42 +9,56 @@ from spack.package import * class Chameleon(CMakePackage, CudaPackage): """Dense Linear Algebra for Scalable Multi-core Architectures and GPGPUs""" + homepage = "https://gitlab.inria.fr/solverstack/chameleon" - url = "https://gitlab.inria.fr/solverstack/chameleon/uploads/b299d6037d7636c6be16108c89bc2aab/chameleon-1.1.0.tar.gz" - git = "https://gitlab.inria.fr/solverstack/chameleon.git" - maintainers = ['fpruvost'] + url = "https://gitlab.inria.fr/solverstack/chameleon/uploads/b299d6037d7636c6be16108c89bc2aab/chameleon-1.1.0.tar.gz" + git = "https://gitlab.inria.fr/solverstack/chameleon.git" + maintainers = ["fpruvost"] - version('master', branch='master', submodules=True) - version('1.1.0', 'e64d0438dfaf5effb3740e53f3ab017d12744b85a138b2ef702a81df559126df') + version("master", branch="master", submodules=True) + version("1.1.0", "e64d0438dfaf5effb3740e53f3ab017d12744b85a138b2ef702a81df559126df") # cmake's specific - variant('shared', default=True, description='Build chameleon as a shared library') + variant("shared", default=True, description="Build chameleon as a shared library") # chameleon's specific variant( - 'runtime', default='starpu', description='Runtime support', - values=('openmp', 'starpu'), multi=False + "runtime", + default="starpu", + description="Runtime support", + values=("openmp", "starpu"), + multi=False, + ) + variant("mpi", default=True, when="runtime=starpu", description="Enable MPI") + variant("cuda", default=False, when="runtime=starpu", description="Enable CUDA") + variant( + "fxt", + default=False, + when="runtime=starpu", + description="Enable FxT tracing support through StarPU", + ) + variant( + "simgrid", + default=False, + when="runtime=starpu", + description="Enable simulation mode through StarPU+SimGrid", ) - variant('mpi', default=True, when='runtime=starpu', description='Enable MPI') - variant('cuda', default=False, when='runtime=starpu', description='Enable CUDA') - variant('fxt', default=False, when='runtime=starpu', description='Enable FxT tracing support through StarPU') - variant('simgrid', default=False, when='runtime=starpu', description='Enable simulation mode through StarPU+SimGrid') # dependencies - depends_on("pkgconfig", type='build') + depends_on("pkgconfig", type="build") with when("runtime=starpu"): depends_on("starpu") - depends_on("starpu~mpi", when='~mpi') - depends_on("starpu+mpi", when='+mpi') - depends_on("starpu~cuda", when='~cuda') - depends_on("starpu+cuda", when='+cuda') + depends_on("starpu~mpi", when="~mpi") + depends_on("starpu+mpi", when="+mpi") + depends_on("starpu~cuda", when="~cuda") + depends_on("starpu+cuda", when="+cuda") with when("+simgrid"): depends_on("starpu+simgrid") - depends_on("starpu+mpi~shared+simgrid", when='+mpi') + depends_on("starpu+mpi~shared+simgrid", when="+mpi") with when("~simgrid"): - depends_on("mpi", when='+mpi') - depends_on("cuda", when='+cuda') + depends_on("mpi", when="+mpi") + depends_on("cuda", when="+cuda") with when("+fxt"): depends_on("fxt") depends_on("starpu+fxt") @@ -64,38 +78,42 @@ class Chameleon(CMakePackage, CudaPackage): self.define("CHAMELEON_ENABLE_TESTING", "ON"), self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("CHAMELEON_USE_MPI", "mpi"), - self.define_from_variant("CHAMELEON_USE_CUDA", "cuda"), - self.define_from_variant("CHAMELEON_SIMULATION", "simgrid") + self.define_from_variant("CHAMELEON_USE_CUDA", "cuda"), + self.define_from_variant("CHAMELEON_SIMULATION", "simgrid"), ] - if spec.satisfies('runtime=openmp'): + if spec.satisfies("runtime=openmp"): args.extend([self.define("CHAMELEON_SCHED", "OPENMP")]) - if spec.satisfies('runtime=starpu'): + if spec.satisfies("runtime=starpu"): args.extend([self.define("CHAMELEON_SCHED", "STARPU")]) - if spec.satisfies('+mpi +simgrid'): - args.extend([ - self.define("MPI_C_COMPILER", self.spec['simgrid'].smpicc), - self.define("MPI_CXX_COMPILER", self.spec['simgrid'].smpicxx), - self.define("MPI_Fortran_COMPILER", self.spec['simgrid'].smpifc) - ]) - - if spec.satisfies('+mpi ~simgrid'): - args.extend([ - self.define("MPI_C_COMPILER", self.spec['mpi'].mpicc), - self.define("MPI_CXX_COMPILER", self.spec['mpi'].mpicxx), - self.define("MPI_Fortran_COMPILER", self.spec['mpi'].mpifc) - ]) - - if spec.satisfies('~simgrid'): - if ('^intel-mkl' in spec or '^intel-parallel-studio+mkl' in spec): - if ('threads=none' in spec): + if spec.satisfies("+mpi +simgrid"): + args.extend( + [ + self.define("MPI_C_COMPILER", self.spec["simgrid"].smpicc), + self.define("MPI_CXX_COMPILER", self.spec["simgrid"].smpicxx), + self.define("MPI_Fortran_COMPILER", self.spec["simgrid"].smpifc), + ] + ) + + if spec.satisfies("+mpi ~simgrid"): + args.extend( + [ + self.define("MPI_C_COMPILER", self.spec["mpi"].mpicc), + self.define("MPI_CXX_COMPILER", self.spec["mpi"].mpicxx), + self.define("MPI_Fortran_COMPILER", self.spec["mpi"].mpifc), + ] + ) + + if spec.satisfies("~simgrid"): + if "^intel-mkl" in spec or "^intel-parallel-studio+mkl" in spec: + if "threads=none" in spec: args.extend([self.define("BLA_VENDOR", "Intel10_64lp_seq")]) else: args.extend([self.define("BLA_VENDOR", "Intel10_64lp")]) - elif '^netlib-lapack' in spec: + elif "^netlib-lapack" in spec: args.extend([self.define("BLA_VENDOR", "Generic")]) - elif '^openblas' in spec: + elif "^openblas" in spec: args.extend([self.define("BLA_VENDOR", "OpenBLAS")]) return args |