new file: l/LAPACK/LAPACK-3.10.0-gompi-2021a.eb

new file:   m/Mmg/Mmg-5.6.0-gompi-2021a.eb
	new file:   m/mpi4py/mpi4py-3.1.3-foss-2021a.eb
	new file:   p/PETSc/PETSc-3.17.4-foss-2021a.eb
	new file:   p/PETSc/webclient-3.17.0.patch
	new file:   s/SuiteSparse/SuiteSparse-5.13.0-foss-2021a-METIS-5.1.0.eb
	deleted:    p/PETSc/PETSc-3.17.2-foss-2021a.eb
This commit is contained in:
Jakub Kropacek 2022-09-24 14:26:55 +02:00 committed by easybuild
parent 606842a9e5
commit 29773993aa
7 changed files with 281 additions and 59 deletions

View File

@ -0,0 +1,16 @@
name = 'LAPACK'
version = '3.10.0'
homepage = 'https://www.netlib.org/lapack/'
description = """LAPACK is written in Fortran90 and provides routines for solving systems of
simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue
problems, and singular value problems."""
toolchain = {'name': 'gompi', 'version': '2021a'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/Reference-LAPACK/lapack/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['328c1bea493a32cac5257d84157dc686cc3ab0b004e2bea22044e0a59f6f8a19']
moduleclass = 'numlib'

View File

@ -0,0 +1,49 @@
# IT4Innovations 2022
# JK
easyblock = 'CMakeMake'
name = 'Mmg'
version = '5.6.0'
homepage = 'https://www.mmgtools.org/'
description = """
Mmg is an open source software for simplicial remeshing. It provides 3 applications and 4 libraries:
the mmg2d application and the libmmg2d library: adaptation and optimization of a two-dimensional triangulation
and generation of a triangulation from a set of points or from given boundary edges
the mmgs application and the libmmgs library: adaptation and optimization of a surface triangulation
and isovalue discretization
the mmg3d application and the libmmg3d library: adaptation and optimization of a tetrahedral mesh
and implicit domain meshing
the libmmg library gathering the libmmg2d, libmmgs and libmmg3d libraries
"""
toolchain = {'name': 'gompi', 'version': '2021a'}
source_urls = ['https://github.com/MmgTools/mmg/archive']
sources = ['v%(version)s.tar.gz']
patches = ['mmg-%(version)s_remove_ci_tests.patch']
checksums = [
'bbf9163d65bc6e0f81dd3acc5a51e4a8c47a7fdae849abc26277e01154fe2437', # v5.6.0.tar.gz
'99de7437fb9d036c786b7f1526da93d4aa1d28e728fe7279f4c9204bbbb9f734', # mmg-5.6.0_remove_ci_tests.patch
]
builddependencies = [('CMake', '3.20.1')]
dependencies = [('SCOTCH', '6.1.0')]
# CI tests require downloading of data that might not be available in the future.
# Sticking to tests included in the source with help of patch
configopts = '-DUSE_SCOTCH=ON -DBUILD_TESTING=ON -DONLY_VERY_SHORT_TESTS=ON '
configopts += '-DTEST_LIBMMG2D=ON -DTEST_LIBMMG3D=ON -DTEST_LIBMMGS=ON '
configopts += '-DLIBMMG2D_SHARED=ON -DLIBMMG3D_SHARED=ON -DLIBMMGS_SHARED=ON -DLIBMMG_SHARED=ON '
runtest = 'test'
sanity_check_paths = {
'files': ['bin/%s_O3' % x for x in ['mmg2d', 'mmg3d', 'mmgs']] +
['lib/lib%s.%s' % (x, y) for x in ['mmg2d', 'mmg3d', 'mmgs', 'mmg'] for y in ['a', SHLIB_EXT]],
'dirs': ['include/mmg/%s' % x for x in ['mmg2d', 'mmg3d', 'mmgs']]
}
moduleclass = 'math'

View File

@ -0,0 +1,27 @@
# IT4Innovations
# JK 2022
easyblock = 'PythonPackage'
name = 'mpi4py'
version = '3.1.3'
homepage = 'http://mpi4py.scipy.org/docs'
description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for
the Python programming language, allowing any Python program to exploit multiple processors."""
toolchain = {'name': 'foss', 'version': '2021a'}
source_urls = [PYPI_SOURCE]
sources = [SOURCE_TAR_GZ]
dependencies = [
('Python', '3.9.5'),
]
sanity_check_paths = {
'files': [],
'dirs': ['lib/python3.9/site-packages/mpi4py'],
}
moduleclass = 'mpi'

View File

@ -1,59 +0,0 @@
# IT4Innovations
# LK JK
name = 'PETSc'
version = '3.17.2'
homepage = 'https://www.mcs.anl.gov/petsc'
description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the
scalable (parallel) solution of scientific applications modeled by partial differential equations."""
toolchain = {'name': 'foss', 'version': '2021a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'openmp': True, 'usempi': True, 'optarch': 'march=core-avx2', 'pic': True}
else:
toolchainopts = {'openmp': True, 'usempi': True, 'pic': True}
source_urls = [
'https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
'ftp://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
]
sources = [SOURCELOWER_TAR_GZ]
patches = [
'PETSc_ranlib-fix.patch',
]
checksums = [
'2313dd1ca41bf0ace68671ea6f8d4abf90011ed899f5e1e08658d3f18478359d', # petsc-3.17.2.tar.gz
'64cf9d5008d5e92117e65bdec5316d991b6a6b8c8ecf7ea46eb790a498266297', # PETSc_ranlib-fix.patch
]
builddependencies = [('CMake', '3.20.1')]
dependencies = [
('Python', '3.9.5'),
('SciPy-bundle', '2021.05'),
('Boost', '1.76.0'),
('METIS', '5.1.0'),
('SCOTCH', '6.1.0'),
('MUMPS', '5.4.0', '-metis'),
# ('SuiteSparse', '5.10.1', '-METIS-5.1.0'),
('Hypre', '2.24.0'),
]
# enabling --with-mpi4py seems to be totally broken, leads to make errors like:
# No rule to make target 'mpi4py-build'
configopts = ' CC=$CC CXX=$CXX FC=$FC F77=$F77 F90=$F90 '
configopts += ' CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS FFLAGS=$FFLAGS F90FLAGS=$F90FLAGS '
configopts += ' CPPFLAGS=$CPPFLAGS LDFLAGS=$LDFLAGS '
configopts += ' --LIBS="$LIBS -lrt" --with-mpi4py=0 '
#configopts = '--LIBS="$LIBS -lrt" --with-mpi4py=0 --with-fortran=1 --download-scalapack '
#configopts += '--download-parmetis --download-metis --download-mumps=yes'
shared_libs = 1
# only required when building PETSc in a SLURM job environment
# configopts += '--with-batch=1 --known-mpi-shared-libraries=1 --known-64-bit-blas-indices=0 '
# prebuildopts = "srun ./conftest-arch-linux2-c-opt && ./reconfigure-arch-linux2-c-opt.py && "
moduleclass = 'numlib'

View File

@ -0,0 +1,86 @@
# Updated to version 3.17.0 with significantly more modules added
# J. Sassmannshausen ICL/UK
easyblock = 'ConfigureMake'
name = 'PETSc'
version = '3.17.4'
homepage = 'https://www.mcs.anl.gov/petsc'
description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the
scalable (parallel) solution of scientific applications modeled by partial differential equations.
This installation is build with significant amounts of modules in it compared to previous versions."""
toolchain = {'name': 'foss', 'version': '2021a'}
toolchainopts = {'openmp': True, 'usempi': True, 'pic': True}
source_urls = [
'https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
'ftp://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
]
sources = [SOURCELOWER_TAR_GZ]
patches = [
'webclient-3.17.0.patch',
]
checksums = [
'99c127486722a3ffd95a268b4ceb0976cbf217926c681a9631bd7246eab8cb2a', # petsc-3.17.4.tar.gz
'2ba253df42853385e2683dbc87dfcb66d4ce4bcd84e054efa8f466274f49bc81', # webclient-3.17.0.patch
]
builddependencies = [
('Eigen', '3.3.9'),
('CMake', '3.20.1')
]
dependencies = [
('Python', '3.9.5'),
('SciPy-bundle', '2021.05'),
('Boost', '1.76.0'),
('METIS', '5.1.0'),
('SCOTCH', '6.1.0'),
('MUMPS', '5.4.0', '-metis'),
('SuiteSparse', '5.10.1', '-METIS-5.1.0'),
('Hypre', '2.21.0'),
('zlib', '1.2.11'),
('BLIS', '0.8.1'),
('Szip', '2.1.1'),
('HDF5', '1.12.1'),
('GMP', '6.2.1'),
('GSL', '2.7'),
('libjpeg-turbo', '2.0.6'),
('libpng', '1.6.37'),
('giflib', '5.2.1'),
('OpenSSL', '1.1', '', True),
('libyaml', '0.2.5'),
('zstd', '1.4.9'),
('Mmg', '5.6.0'),
('MPFR', '4.1.0'),
('googletest', '1.11.0'),
('muParser', '2.3.3'),
('ParMETIS', '4.0.3'),
]
# enabling --with-mpi4py seems to be totally broken, leads to make errors like:
# No rule to make target 'mpi4py-build'
configopts = '--configModules=PETSc.Configure --optionsModule=config.compilerOptions '
configopts += '--LIBS="$LIBS -lrt" --download-mpi4py --with-mpi4py=1 --download-petsc4py --CXXFLAGS="$CXXFLAGS '
configopts += '-DOMPI_SKIP_MPICXX -DMPICH_SKIP_MPICXX" --with-mpi=1 --with-build-step-np=4 '
configopts += '--CPPFLAGS="$CPPFLAGS" --F90FLAGS="$F90FLAGS" --FFLAGS="$FFLAGS" --FCFLAGS="$FCFLAGS" '
configopts += '--with-blaslapack-lib=" -lflexiblas -lgfortran" '
configopts += '--with-shared-libraries=1 --with-debugging=0 --with-pic=1 --with-x=0 '
configopts += '--with-windows-graphics=0 --with-numpy=1 --with-fftw=1 --with-scalapack=1 '
configopts += '--with-python=1 --with-boost=1 --with-metis=1 -with-ptscotch=1 --with-mumps=1 '
configopts += '--with-hypre=1 --with-suitesparse=1 --with-hwloc=1 --with-openmp=1 --with-zlib=1 --with-blis=1 '
configopts += '--with-hdf5=1 --with-eigen=1 --with-parmetis=1 --with-gmp=1 --with-gsl=1 --with-libjpeg=1 '
configopts += '--with-libpng=1 --with-yaml=1 --with-zstd=1 --with-ssl=1 --with-triangle=0 --with-giflib=1 '
sanity_check_paths = {
'files': ['lib/libpetsc.%s' % SHLIB_EXT],
'dirs': ['include', 'share']
}
modextrapaths = {'PYTHONPATH': 'lib'}
moduleclass = 'numlib'

View File

@ -0,0 +1,69 @@
Based on https://gitlab.com/petsc/petsc/-/merge_requests/5257
Author: J. Sassmannshausen / ICL (UK)
diff --git a/petsc-3.17.0.orig/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py b/petsc-3.17.0/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py
index ecc3b03..6c6c354 100755
--- a/petsc-3.17.0.orig/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py
+++ b/petsc-3.17.0/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py
@@ -36,6 +36,7 @@ configure_options = [
'--with-mpi-f90module-visibility=0',
'--download-kokkos=1',
'--download-kokkos-kernels=1',
+ '--with-ssl=1',
]
if __name__ == '__main__':
diff --git a/petsc-3.17.0.orig/config/examples/arch-ci-linux-gcc-pkgs-opt.py b/petsc-3.17.0/config/examples/arch-ci-linux-gcc-pkgs-opt.py
index 8828156..132e3d6 100755
--- a/petsc-3.17.0.orig/config/examples/arch-ci-linux-gcc-pkgs-opt.py
+++ b/petsc-3.17.0/config/examples/arch-ci-linux-gcc-pkgs-opt.py
@@ -28,6 +28,7 @@ configure_options = [
'--download-amrex',
'--download-hypre',
'--download-ks',
+ '--with-ssl=1',
]
if __name__ == '__main__':
diff --git a/petsc-3.17.0.orig/src/sys/webclient/box.c b/petsc-3.17.0/src/sys/webclient/box.c
index d306966..eb2fac7 100644
--- a/petsc-3.17.0.orig/src/sys/webclient/box.c
+++ b/petsc-3.17.0/src/sys/webclient/box.c
@@ -304,9 +304,9 @@ PetscErrorCode PetscBoxUpload(MPI_Comm comm,const char access_token[],const char
PetscCall(PetscPushJSONValue(body,"mimeType","text.html",len));
PetscCall(PetscStrcat(body,","));
PetscCall(PetscPushJSONValue(body,"description","a file",len));
- ierr = PetscStrcat(body, "}\r\n\r\n"
- "--foo_bar_baz\r\n"
- "Content-Type: text/html\r\n\r\n");PetscCall(ierr);
+ PetscCall(PetscStrcat(body, "}\r\n\r\n"
+ "--foo_bar_baz\r\n"
+ "Content-Type: text/html\r\n\r\n"));
PetscCall(PetscStrlen(body,&blen));
fd = fopen (filename, "r");
PetscCheck(fd,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to open file: %s",filename);
diff --git a/petsc-3.17.0.orig/src/sys/webclient/client.c b/petsc-3.17.0/src/sys/webclient/client.c
index dfe6b12..350cac9 100644
--- a/petsc-3.17.0.orig/src/sys/webclient/client.c
+++ b/petsc-3.17.0/src/sys/webclient/client.c
@@ -123,7 +123,7 @@ static PetscErrorCode PetscHTTPBuildRequest(const char type[],const char url[],c
if (header) {
PetscCall(PetscStrendswith(header,"\r\n",&flg));
- PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_ARG_WRONG,"header must end with \\r\");
+ PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_ARG_WRONG,"header must end with \\r\\n");
}
PetscCall(PetscStrlen(type,&typelen));
diff --git a/petsc-3.17.0.orig/src/sys/webclient/google.c b/petsc-3.17.0/src/sys/webclient/google.c
index 8626b7c..c66f8cc 100644
--- a/petsc-3.17.0.orig/src/sys/webclient/google.c
+++ b/petsc-3.17.0/src/sys/webclient/google.c
@@ -158,7 +158,7 @@ PetscErrorCode PetscGoogleDriveUpload(MPI_Comm comm,const char access_token[],co
fd = fopen (filename, "r");
PetscCheck(fd,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to open file: %s",filename);
rd = fread (body+blen, sizeof (unsigned char), sb.st_size, fd);
- PetscCheckFalse(rd != (size_t) sb.st_size,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to read entire file: %s %d %d",filename,(int)rd,sb.st_size);
+ PetscCheckFalse(rd != (size_t) sb.st_size,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to read entire file: %s %d %d",filename,(int)rd,(int)sb.st_size);
fclose(fd);
body[blen + rd] = 0;
ierr = PetscStrcat(body,"\r\n\r\n"

View File

@ -0,0 +1,34 @@
# IT4Innovations 2022
# JK
name = 'SuiteSparse'
version = '5.13.0'
local_metis_ver = '5.1.0'
versionsuffix = '-METIS-%s' % local_metis_ver
homepage = 'https://faculty.cse.tamu.edu/davis/suitesparse.html'
description = """SuiteSparse is a collection of libraries manipulate sparse matrices."""
toolchain = {'name': 'foss', 'version': '2021a'}
toolchainopts = {'unroll': True, 'pic': True}
source_urls = ['https://github.com/DrTimothyAldenDavis/SuiteSparse/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['59c6ca2959623f0c69226cf9afb9a018d12a37fab3a8869db5f6d7f83b6b147d']
builddependencies = [
('CMake', '3.20.1'),
('M4', '1.4.18'),
]
dependencies = [
('METIS', local_metis_ver),
('MPFR', '4.1.0'),
]
# make sure that bin/demo can find libsuitesparseconfig.so.5 during build
prebuildopts = "export LD_LIBRARY_PATH=%(builddir)s/SuiteSparse-%(version)s/lib:$LD_LIBRARY_PATH && "
# remove broken symlink
prebuildopts += "rm GraphBLAS/CUDA/test/graphblascuda_test && "
moduleclass = 'numlib'