diff --git a/l/LAPACK/LAPACK-3.10.0-gompi-2021a.eb b/l/LAPACK/LAPACK-3.10.0-gompi-2021a.eb new file mode 100644 index 00000000..b85e2694 --- /dev/null +++ b/l/LAPACK/LAPACK-3.10.0-gompi-2021a.eb @@ -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' diff --git a/m/Mmg/Mmg-5.6.0-gompi-2021a.eb b/m/Mmg/Mmg-5.6.0-gompi-2021a.eb new file mode 100644 index 00000000..fc3d319d --- /dev/null +++ b/m/Mmg/Mmg-5.6.0-gompi-2021a.eb @@ -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' diff --git a/m/mpi4py/mpi4py-3.1.3-foss-2021a.eb b/m/mpi4py/mpi4py-3.1.3-foss-2021a.eb new file mode 100644 index 00000000..f3e087ab --- /dev/null +++ b/m/mpi4py/mpi4py-3.1.3-foss-2021a.eb @@ -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' diff --git a/p/PETSc/PETSc-3.17.2-foss-2021a.eb b/p/PETSc/PETSc-3.17.2-foss-2021a.eb deleted file mode 100644 index 7c630281..00000000 --- a/p/PETSc/PETSc-3.17.2-foss-2021a.eb +++ /dev/null @@ -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' diff --git a/p/PETSc/PETSc-3.17.4-foss-2021a.eb b/p/PETSc/PETSc-3.17.4-foss-2021a.eb new file mode 100644 index 00000000..a83230a1 --- /dev/null +++ b/p/PETSc/PETSc-3.17.4-foss-2021a.eb @@ -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' + diff --git a/p/PETSc/webclient-3.17.0.patch b/p/PETSc/webclient-3.17.0.patch new file mode 100644 index 00000000..9bc5ac8c --- /dev/null +++ b/p/PETSc/webclient-3.17.0.patch @@ -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" diff --git a/s/SuiteSparse/SuiteSparse-5.13.0-foss-2021a-METIS-5.1.0.eb b/s/SuiteSparse/SuiteSparse-5.13.0-foss-2021a-METIS-5.1.0.eb new file mode 100644 index 00000000..d821348e --- /dev/null +++ b/s/SuiteSparse/SuiteSparse-5.13.0-foss-2021a-METIS-5.1.0.eb @@ -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'