summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/chameleon/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/chameleon/package.py')
-rw-r--r--var/spack/repos/builtin/packages/chameleon/package.py104
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