Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{numlib}[intel/2021b] SuiteSparse v5.8.1, PETSc v3.18.4, SLEPc v3.18.2 w/ Python 3.9.6 #17625

Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions easybuild/easyconfigs/p/PETSc/PETSc-3.18.4-intel-2021b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name = 'PETSc'
version = '3.18.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."""

toolchain = {'name': 'intel', 'version': '2021b'}
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 = [
{'petsc-3.18.4.tar.gz': '6173d30637261c5b740c0bea14747759200ca2012c7343139f9216bc296a6394'},
{'PETSc_ranlib-fix.patch': '64cf9d5008d5e92117e65bdec5316d991b6a6b8c8ecf7ea46eb790a498266297'},
]

builddependencies = [('CMake', '3.22.1')]

dependencies = [
('Python', '3.9.6'),
('SciPy-bundle', '2021.10'),
('Boost', '1.77.0'),
('METIS', '5.1.0'),
('SCOTCH', '6.1.2'),
('MUMPS', '5.4.1', '-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 = '--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'
21 changes: 21 additions & 0 deletions easybuild/easyconfigs/s/SLEPc/SLEPc-3.18.2-intel-2021b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name = 'SLEPc'
version = '3.18.2'

homepage = 'https://www.grycap.upv.es/slepc/'
description = """SLEPc (Scalable Library for Eigenvalue Problem Computations) is a software library for the solution
of large scale sparse eigenvalue problems on parallel computers. It is an extension of PETSc and can be used for
either standard or generalized eigenproblems, with real or complex arithmetic. It can also be used for computing a
partial SVD of a large, sparse, rectangular matrix, and to solve quadratic eigenvalue problems."""

toolchain = {'name': 'intel', 'version': '2021b'}
toolchainopts = {'usempi': True, 'openmp': True}

source_urls = ['https://slepc.upv.es/download/distrib']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['5bd90a755934e702ab1fdb3320b9fe75ab5fc28c93d364248ea86a372fbe6a62']

dependencies = [('PETSc', '3.18.4')]

petsc_arch = 'installed-arch-linux2-c-opt'

moduleclass = 'numlib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name = 'SuiteSparse'
version = '5.10.1'
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': 'intel', 'version': '2021b'}
toolchainopts = {'unroll': True, 'pic': True}

source_urls = ['https://github.com/DrTimothyAldenDavis/SuiteSparse/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['acb4d1045f48a237e70294b950153e48dce5b5f9ca8190e86c2b8c54ce00a7ee']

builddependencies = [
('CMake', '3.21.1'),
('M4', '1.4.19'),
]

dependencies = [
('METIS', local_metis_ver),
('MPFR', '4.1.0'),
]

parallel = 1
branfosj marked this conversation as resolved.
Show resolved Hide resolved
# 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 && "
# disable optimisation report to reduce memory use during compile
prebuildopts += 'sed -i "s/-qopt-report=5/-qopt-report=0/" GraphBLAS/CMakeLists.txt && '
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's... interesting.

Should we consider doing this always, via the custom easyblock we have for SuiteSparse?
There's no impact on the binaries being built by disabling the optimization report, I think?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've asked the question (DrTimothyAldenDavis/GraphBLAS#211) to better understand if there are implications. Ideally it'd be changed upstream, meaning we'd not need this.


moduleclass = 'numlib'