Skip to content

Commit

Permalink
Merge pull request #5 from eflows4hpc/new_developments
Browse files Browse the repository at this point in the history
New developments
  • Loading branch information
jorgee authored Dec 1, 2023
2 parents 91d8bc4 + 5dc2641 commit 1e764e4
Show file tree
Hide file tree
Showing 20 changed files with 937 additions and 74 deletions.
10 changes: 0 additions & 10 deletions cfg/modules.yaml

This file was deleted.

129 changes: 78 additions & 51 deletions cfg/packages.yaml
Original file line number Diff line number Diff line change
@@ -1,102 +1,129 @@
packages:
autoconf:
gcc:
externals:
- spec: [email protected]
- spec: [email protected] languages=c,c++,fortran
prefix: /usr
automake:
extra_attributes:
compilers:
c: /usr/bin/x86_64-linux-gnu-gcc-8
cxx: /usr/bin/x86_64-linux-gnu-g++-8
fortran: /usr/bin/x86_64-linux-gnu-gfortran-8
- spec: [email protected] languages=c,c++,fortran
prefix: /usr
extra_attributes:
compilers:
c: /usr/bin/x86_64-linux-gnu-gcc-9
cxx: /usr/bin/x86_64-linux-gnu-g++-9
fortran: /usr/bin/x86_64-linux-gnu-gfortran-9
ncurses:
externals:
- spec: [email protected]
- spec: [email protected]+symlinks+termlib abi=6
prefix: /usr
cmake:
curl:
externals:
- spec: [email protected]
- spec: [email protected]+gssapi+ldap+nghttp2
prefix: /usr
diffutils:
bzip2:
externals:
- spec: [email protected]
- spec: [email protected]
prefix: /usr
file:
perl:
externals:
- spec: file@5.32
- spec: perl@5.30.0~cpanm+open+shared+threads
prefix: /usr
findutils:
tar:
externals:
- spec: [email protected]
- spec: [email protected]
prefix: /usr
gcc:
sqlite:
externals:
- spec: [email protected] languages=c,c++,fortran
- spec: [email protected]+fts~functions+rtree
prefix: /usr
extra_attributes:
compilers:
c: /usr/bin/x86_64-linux-gnu-gcc-7
cxx: /usr/bin/x86_64-linux-gnu-g++-7
fortran: /usr/bin/x86_64-linux-gnu-gfortran-7
git:
openssl:
externals:
- spec: [email protected]~tcltk
- spec: [email protected]
prefix: /usr
gmake:
file:
externals:
- spec: [email protected]
- spec: [email protected]
prefix: /usr
libtool:
xz:
externals:
- spec: libtool@2.4.6
- spec: xz@5.2.4
prefix: /usr
m4:
externals:
- spec: [email protected]
prefix: /usr
ncurses:
cpio:
externals:
- spec: [email protected]+symlinks+termlib abi=5
- spec: [email protected]
prefix: /usr
openssl:
python:
externals:
- spec: [email protected]
- spec: [email protected]+bz2+crypt+ctypes+dbm+lzma+nis+pyexpat+pythoncmd+readline+sqlite3+ssl~tkinter+uuid+zlib
prefix: /usr
perl:
gmake:
externals:
- spec: [email protected]~cpanm+shared+threads
- spec: [email protected]
prefix: /usr
pkgconf:
diffutils:
externals:
- spec: [email protected]
- spec: [email protected]
prefix: /usr
python:
cmake:
externals:
- spec: python@3.6.9+bz2+ctypes+dbm+lzma+nis+pyexpat~pythoncmd+readline+sqlite3+ssl~tix~tkinter+uuid+zlib
- spec: cmake@3.16.3
prefix: /usr
sqlite:
autoconf:
externals:
- spec: [email protected]
prefix: /usr
automake:
externals:
- spec: [email protected]+fts~functions+rtree
- spec: [email protected]
prefix: /usr
xz:
libtool:
externals:
- spec: [email protected]
prefix: /usr
binutils:
externals:
- spec: [email protected]
- spec: [email protected]
prefix: /usr
pkgconf:
externals:
- spec: [email protected]
prefix: /usr
pkg-config:
externals:
- spec: [email protected]
- spec: [email protected]
prefix: /usr
findutils:
externals:
- spec: [email protected]
prefix: /usr
coreutils:
externals:
- spec: [email protected]
prefix: /usr
git:
externals:
- spec: [email protected]~tcltk
prefix: /usr
openjdk:
externals:
- spec: [email protected]_312
prefix: /usr/lib/jvm/java-8-openjdk-amd64/
prefix: /usr/lib/jvm/java-8/
zlib:
externals:
- spec: [email protected]
prefix: /usr
#bzip2:
# externals:
# - spec: [email protected]
# prefix: /
tar:
libuuid:
externals:
- spec: [email protected]
prefix: /
cpio:
- spec: [email protected]
prefix: /usr
libxml2:
externals:
- spec: cpio@2.12
prefix: /
- spec: libxml2@2.9.10
prefix: /usr
106 changes: 106 additions & 0 deletions packages/chameleon-ecrc/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)


from spack.package import *


class ChameleonEcrc(CMakePackage, CudaPackage):
"""Dense Linear Algebra for Scalable Multi-core Architectures and GPGPUs"""
git = "https://github.com/omar-hmarzouk/DLA.git"
maintainers = ['omar-hmarzouk']

#version('master', branch='master', submodules=True)
version('default', branch='Spack-changes', submodules=True)
# cmake's specific
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
)
variant('mpi', default=False, 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("[email protected]:", type='build')
depends_on("intel-mkl")

with when("runtime=starpu"):
depends_on("starpu")
depends_on("starpu~mpi", when='~mpi')
depends_on("starpu+mpi", when='+mpi')
#depends_on("hwloc+cuda+nvml",when='+cuda')
#depends_on("cublas", when='+cuda')
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')
with when("~simgrid"):
depends_on("mpi", when='+mpi')
depends_on("cuda", when='+cuda')
with when("+fxt"):
depends_on("fxt")
depends_on("starpu+fxt")

with when("~simgrid"):
depends_on("blas")
depends_on("lapack")

def cmake_args(self):

spec = self.spec
args = [
"-Wno-dev",
self.define("CMAKE_COLOR_MAKEFILE", "ON"),
self.define("CMAKE_VERBOSE_MAKEFILE", "ON"),
self.define("CHAMELEON_ENABLE_EXAMPLE", "ON"),
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")
]

if spec.satisfies('runtime=openmp'):
args.extend([self.define("CHAMELEON_SCHED", "OPENMP")])
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('+mpi'):
print("CHAMELEON-MPI")

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:
args.extend([self.define("BLA_VENDOR", "Generic")])
elif '^openblas' in spec:
args.extend([self.define("BLA_VENDOR", "OpenBLAS")])

return args

21 changes: 16 additions & 5 deletions packages/compss/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,15 @@ class Compss(Package):

# notify when the package is updated.
maintainers = ['jorgee', 'compsuperscalar']

version('2.10-riscv', sha256='04c0a7dfde86d541fee9281e588bc725e84266f7f18754d743924a584d9650f2')
version('2.10', sha256='0795ca7674f1bdd0faeac950fa329377596494f64223650fe65a096807d58a60', preferred=True)
version("eflows4hpc", sha256="a85efd592b85fe3392497da85d192e7543e6ac1e8333c6c3f8ca7f0777a54aaf")
#version("eflows4hpc", sha256="2f187a447074e87989b73d23ca4e855c0123f82bfc4ba31628ccbe6a1517d5f4")
#version("eflows4hpc", sha256="0251c82cdd4557ed9026f6296f7c475f3d15c3e1fc13edd04c7ff1399328d2b3")
version("3.2", sha256="f32825d7f26bde13cd3699f0aea14da18632b30cf08f113a06ae050033efc837", preferred=True)
version("3.1", sha256="53880443567269faa724d1908a6bc4d82998be3cc93c77386f620c4c8a72e60d")
version("3.0", sha256="3a84e0c6cd84aea155abf08370b1ad5bf5f65c99d4b17d70346c6457e7d0b215")
version("2.10.1", sha256="0a983a85b53c3a1c82ea63aedf54e353c5627ba25b85c1cda1bbea5a35ba08af")
version("2.10-riscv", sha256="2170abfc484234b1384a4ec698acfe045ffca56806624e6237f5dab39bfe86bf")
version("2.10", sha256="0795ca7674f1bdd0faeac950fa329377596494f64223650fe65a096807d58a60")

# dependencies.
depends_on('[email protected]:')
Expand All @@ -45,12 +51,17 @@ class Compss(Package):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')

depends_on('py-setuptools', when="@3.1:", type='build')
depends_on('py-setuptools', when="@eflows4hpc", type='build')

def install(self, spec, prefix):
import os
print("Prefix: " + str(prefix))
install_script = Executable('./install')
install_script('-A', '--only-python-3', prefix.compss)
if spec.satisfies("@2.10"):
install_script('-A', '--only-python-3', prefix.compss)
else:
install_script(prefix.compss)
print("Dirs: " +str(os.listdir(str(prefix))))


Expand Down
7 changes: 7 additions & 0 deletions packages/compss/workflow.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

{
"execution": {
"type":"workflow"
}
}

Loading

0 comments on commit 1e764e4

Please sign in to comment.