diff --git a/easybuild/easyconfigs/p/PETSc/PETSc-3.22.0-foss-2024a.eb b/easybuild/easyconfigs/p/PETSc/PETSc-3.22.0-foss-2024a.eb new file mode 100644 index 000000000000..f2fe547228db --- /dev/null +++ b/easybuild/easyconfigs/p/PETSc/PETSc-3.22.0-foss-2024a.eb @@ -0,0 +1,45 @@ +## +# Author: Robert Mijakovic +# Author: Jasper Grimm (UoY) +## +name = 'PETSc' +version = '3.22.0' + +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': '2024a'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'https://web.cels.anl.gov/projects/petsc/download/release-snapshots', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['2c03f7c0f7ad2649240d4989355cf7fb7f211b75156cd7d424e1d9dd7dfb290b'] + +builddependencies = [('CMake', '3.29.3')] + +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('Boost', '1.85.0'), + ('METIS', '5.1.0'), + ('SCOTCH', '7.0.6'), + ('MUMPS', '5.7.2', '-metis'), + ('SuiteSparse', '7.10.1'), + ('Hypre', '2.32.0'), + ('ParMETIS', '4.0.3'), + ('SuperLU_DIST', '9.0.0'), + ('mpi4py', '4.0.1'), +] + +configopts = '--LIBS="$LIBS -lrt" --with-mpi4py=0 ' + +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/easybuild/easyconfigs/p/ParMETIS/ParMETIS-4.0.3-gompi-2024a.eb b/easybuild/easyconfigs/p/ParMETIS/ParMETIS-4.0.3-gompi-2024a.eb new file mode 100644 index 000000000000..a39fe73cb436 --- /dev/null +++ b/easybuild/easyconfigs/p/ParMETIS/ParMETIS-4.0.3-gompi-2024a.eb @@ -0,0 +1,30 @@ +## +# Author: Robert Mijakovic +## +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'https://github.com/KarypisLab/ParMETIS' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning + unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the + functionality provided by METIS and includes routines that are especially suited for parallel AMR computations and + large scale numerical simulations. The algorithms implemented in ParMETIS are based on the parallel multilevel k-way + graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning schemes.""" + +toolchain = {'name': 'gompi', 'version': '2024a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', + 'https://www.cp2k.org/static/downloads', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['f2d9a231b7cf97f1fee6e8c9663113ebf6c240d407d3c118c55b3633d6be6e5f'] + +builddependencies = [('CMake', '3.29.3')] + +# Build static and shared libraries +configopts = ['', '-DSHARED=1'] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/SuperLU_DIST/SuperLU_DIST-9.0.0-foss-2024a.eb b/easybuild/easyconfigs/s/SuperLU_DIST/SuperLU_DIST-9.0.0-foss-2024a.eb new file mode 100644 index 000000000000..47c2a84b2f5b --- /dev/null +++ b/easybuild/easyconfigs/s/SuperLU_DIST/SuperLU_DIST-9.0.0-foss-2024a.eb @@ -0,0 +1,44 @@ +easyblock = "EB_SuperLU" + +name = 'SuperLU_DIST' +version = '9.0.0' + +homepage = 'https://crd-legacy.lbl.gov/~xiaoye/SuperLU/' +description = """SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems + of linear equations on high performance machines.""" + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'pic': True, 'openmp': True} + +github_account = 'xiaoyeli' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ["v%(version)s.tar.gz"] +checksums = ['aa43d33d4b1b0f5f7b5ad7685e9a6bc25088832c6c74d2ab8f75a2c9f4e9e955'] + +builddependencies = [('CMake', '3.29.3')] + +dependencies = [ + ('ParMETIS', '4.0.3'), +] + +configopts = '-DTPL_PARMETIS_INCLUDE_DIRS="${EBROOTPARMETIS}/include" ' +configopts += '-DTPL_PARMETIS_LIBRARIES="${EBROOTPARMETIS}/lib/libparmetis.a;${EBROOTPARMETIS}/lib/libmetis.a" ' + +# Some tests run longer than default 1500s timeout on fairly big machine (36 cores). +# Include only first four tests, which should be fairly small to run +pretestopts = 'export ARGS="$ARGS --tests-regex pdtest_[21]x1_[13]_2_8_20_SP" && ' + +# remove broken symlink to libsuperlu.a +postinstallcmds = [ + "if [ -f %(installdir)s/lib64/libsuperlu.a ]; then rm %(installdir)s/lib64/libsuperlu.a; fi", + # This second one can be removed when https://github.com/easybuilders/easybuild-framework/pull/4435 is merged + # (i.e. in EasyBuild 5.0) + "if [ -f %(installdir)s/lib/libsuperlu.a ]; then rm %(installdir)s/lib/libsuperlu.a; fi" +] + +sanity_check_paths = { + 'files': ['lib64/libsuperlu_dist.a'], + 'dirs': ['include'] +} + +moduleclass = 'numlib'