From 4c26448e220789b49841054f44b24b5f06c1db84 Mon Sep 17 00:00:00 2001 From: Jiri Furst Date: Tue, 23 Jan 2024 12:17:52 +0100 Subject: [PATCH 1/3] adding easyconfigs: PETSc-3.20.3-foss-2023a.eb, SuperLU_DIST-8.1.2-foss-2023a.eb, SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb, ParMETIS-4.0.3-gompi-2023a.eb --- .../p/PETSc/PETSc-3.20.3-foss-2023a.eb | 45 +++++++++++++++++++ .../p/ParMETIS/ParMETIS-4.0.3-gompi-2023a.eb | 29 ++++++++++++ ...iteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb | 31 +++++++++++++ .../SuperLU_DIST-8.1.2-foss-2023a.eb | 40 +++++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb create mode 100644 easybuild/easyconfigs/p/ParMETIS/ParMETIS-4.0.3-gompi-2023a.eb create mode 100644 easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb create mode 100644 easybuild/easyconfigs/s/SuperLU_DIST/SuperLU_DIST-8.1.2-foss-2023a.eb diff --git a/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb b/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb new file mode 100644 index 00000000000..de6c5d13631 --- /dev/null +++ b/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb @@ -0,0 +1,45 @@ +## +# Author: Robert Mijakovic +# Author: Jasper Grimm (UoY) +## +name = 'PETSc' +version = '3.20.3' + +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': '2023a'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'https://web.cels.anl.gov/projects/petsc/download/release-snapshots', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['75a94fb44df0512f51ad093fa784e56b61f51b7ead5956fbe49185c203f8c245'] + +builddependencies = [('CMake', '3.26.3')] + +dependencies = [ + ('Python', '3.11.3'), + ('SciPy-bundle', '2023.07'), + ('Boost', '1.82.0'), + ('METIS', '5.1.0'), + ('SCOTCH', '7.0.3'), + ('MUMPS', '5.6.1', '-metis'), + ('SuiteSparse', '5.13.0', '-METIS-5.1.0'), + ('Hypre', '2.29.0'), + ('ParMETIS', '4.0.3'), + ('SuperLU_DIST', '8.1.2'), + ('mpi4py', '3.1.4'), +] + +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-2023a.eb b/easybuild/easyconfigs/p/ParMETIS/ParMETIS-4.0.3-gompi-2023a.eb new file mode 100644 index 00000000000..f7b83302873 --- /dev/null +++ b/easybuild/easyconfigs/p/ParMETIS/ParMETIS-4.0.3-gompi-2023a.eb @@ -0,0 +1,29 @@ +## +# Author: Robert Mijakovic +## +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +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': '2023a'} +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', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['f2d9a231b7cf97f1fee6e8c9663113ebf6c240d407d3c118c55b3633d6be6e5f'] + +builddependencies = [('CMake', '3.26.3')] + +# Build static and shared libraries +configopts = ['', '-DSHARED=1'] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb new file mode 100644 index 00000000000..5d4c41b2f4d --- /dev/null +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb @@ -0,0 +1,31 @@ +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': '2023a'} +toolchainopts = {'unroll': True, 'pic': True} + +source_urls = ['https://github.com/DrTimothyAldenDavis/SuiteSparse/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['59c6ca2959623f0c69226cf9afb9a018d12a37fab3a8869db5f6d7f83b6b147d'] + +builddependencies = [ + ('CMake', '3.26.3'), + ('M4', '1.4.19'), +] + +dependencies = [ + ('METIS', local_metis_ver), + ('MPFR', '4.2.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' diff --git a/easybuild/easyconfigs/s/SuperLU_DIST/SuperLU_DIST-8.1.2-foss-2023a.eb b/easybuild/easyconfigs/s/SuperLU_DIST/SuperLU_DIST-8.1.2-foss-2023a.eb new file mode 100644 index 00000000000..d71b00777fc --- /dev/null +++ b/easybuild/easyconfigs/s/SuperLU_DIST/SuperLU_DIST-8.1.2-foss-2023a.eb @@ -0,0 +1,40 @@ +easyblock = "EB_SuperLU" + +name = 'SuperLU_DIST' +version = '8.1.2' + +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': '2023a'} +toolchainopts = {'pic': True, 'openmp': True} + +github_account = 'xiaoyeli' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ["v%(version)s.tar.gz"] +checksums = ['7b16c442bb01ea8b298c0aab9a2584aa4615d09786aac968cb2f3118c058206b'] + +builddependencies = [('CMake', '3.26.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" && ' + +postinstallcmds = [ + "rm %(installdir)s/lib64/libsuperlu.a", # remove broken symlink to libsuperlu.a +] + +sanity_check_paths = { + 'files': ['lib64/libsuperlu_dist.a'], + 'dirs': ['include'] +} + +moduleclass = 'numlib' From b93c1936f8e095065f5867832c15feae3622c625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20F=C3=BCrst?= Date: Sat, 27 Jan 2024 14:15:11 +0100 Subject: [PATCH 2/3] Update PETSc to use SuiteSparse-7.1.0 --- .../p/PETSc/PETSc-3.20.3-foss-2023a.eb | 3 +- ...iteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb | 31 ------------------- 2 files changed, 1 insertion(+), 33 deletions(-) delete mode 100644 easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb diff --git a/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb b/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb index de6c5d13631..7b23fa6d644 100644 --- a/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb +++ b/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb @@ -16,7 +16,6 @@ source_urls = [ 'https://web.cels.anl.gov/projects/petsc/download/release-snapshots', ] sources = [SOURCELOWER_TAR_GZ] -checksums = ['75a94fb44df0512f51ad093fa784e56b61f51b7ead5956fbe49185c203f8c245'] builddependencies = [('CMake', '3.26.3')] @@ -27,7 +26,7 @@ dependencies = [ ('METIS', '5.1.0'), ('SCOTCH', '7.0.3'), ('MUMPS', '5.6.1', '-metis'), - ('SuiteSparse', '5.13.0', '-METIS-5.1.0'), + ('SuiteSparse', '7.1.0'), ('Hypre', '2.29.0'), ('ParMETIS', '4.0.3'), ('SuperLU_DIST', '8.1.2'), diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb deleted file mode 100644 index 5d4c41b2f4d..00000000000 --- a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2023a-METIS-5.1.0.eb +++ /dev/null @@ -1,31 +0,0 @@ -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': '2023a'} -toolchainopts = {'unroll': True, 'pic': True} - -source_urls = ['https://github.com/DrTimothyAldenDavis/SuiteSparse/archive'] -sources = ['v%(version)s.tar.gz'] -checksums = ['59c6ca2959623f0c69226cf9afb9a018d12a37fab3a8869db5f6d7f83b6b147d'] - -builddependencies = [ - ('CMake', '3.26.3'), - ('M4', '1.4.19'), -] - -dependencies = [ - ('METIS', local_metis_ver), - ('MPFR', '4.2.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' From 1c16f6f2c2f0f0a65edf2f049227755bbfbc8004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20F=C3=BCrst?= Date: Sat, 27 Jan 2024 14:33:46 +0100 Subject: [PATCH 3/3] Add missing checksums --- easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb b/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb index 7b23fa6d644..7c4db8a3646 100644 --- a/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb +++ b/easybuild/easyconfigs/p/PETSc/PETSc-3.20.3-foss-2023a.eb @@ -16,6 +16,7 @@ source_urls = [ 'https://web.cels.anl.gov/projects/petsc/download/release-snapshots', ] sources = [SOURCELOWER_TAR_GZ] +checksums = ['75a94fb44df0512f51ad093fa784e56b61f51b7ead5956fbe49185c203f8c245'] builddependencies = [('CMake', '3.26.3')]