Skip to content

[PETSc] [package list]

PETSc/3.17.4-cpeGNU-22.08 (PETSc-3.17.4-cpeGNU-22.08.eb)

Install with the EasyBuild-user module:

eb PETSc-3.17.4-cpeGNU-22.08.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider PETSc/3.17.4-cpeGNU-22.08.

EasyConfig:

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."""

toolchain = {'name': 'cpeGNU', 'version': '22.08'}
toolchainopts = {'openmp': True, 'usempi': True, 'pic': True}

source_urls = [
    'https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
]
sources = [SOURCELOWER_TAR_GZ]

builddependencies = [('buildtools', '%(toolchain_version)s', '', True)]

dependencies = [
    ('cray-python', EXTERNAL_MODULE),
    ('cray-hdf5-parallel', EXTERNAL_MODULE),
    ('Boost', '1.79.0'),
    ('METIS', '5.1.0'),
    ('ParMETIS','4.0.3'),
    ('SCOTCH', '6.1.3'),
    ('MUMPS', '5.5.1',),
    ('Hypre', '2.26.0'),
    ('SuperLU_DIST', '7.2.0', '-CPU'),
    ('STRUMPACK', '6.3.1', '-CPU'),
]

local_petsc_arch = 'cray-x86-milan-gnu'
#PETSC_ARCH=local_petsc_arch

configopts = '--with-petsc-arch=' + local_petsc_arch
configopts += ' CC=cc CXX=CC FC=ftn --with-cc=cc --with-cxx=CC --with-fc=ftn '
configopts += 'CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" FCFLAGS="$FCFLAGS" FFLAGS="$FFLAGS" CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS -Wl,--allow-multiple-definition" '
configopts += '--with-fortran-datatypes=1 --with-fortran-interfaces=1 --with-fortran-bindings=1 --with-cxx-dialect=C++11 '
configopts += '--with-x=0 --with-ssl=0 --with-shared-libraries=1 --with-mpiexec=srun --with-blas-lapack=1 --with-metis=1 --with-hypre=1 --with-scalapack=1 --with-ptscotch=1 --with-mumps=1 --with-hdf5=1 --with-superlu_dist=1 --with-strumpack=1 '
configopts += '--with-metis-dir="$EBROOTMETIS" --with-parmetis-dir="$EBROOTPARMETIS" --with-hdf5-dir="$CRAY_HDF5_PARALLEL_PREFIX" --with-ptscotch-dir="$EBROOTSCOTCH" --with-hypre-dir="$EBROOTHYPRE" --with-mumps-dir="$EBROOTMUMPS" --with-superlu_dist-dir="$EBROOTSUPERLU_DIST" --with-strumpack-dir="$EBROOTSTRUMPACK" '
configopts += '--with-batch=1 '

# This is for checking if linking against the library is correct
runtest = 'check_build MPIEXEC=exec V=1'

sanity_check_paths = {
    'files': ['lib/libpetsc.%s' % SHLIB_EXT],
    'dirs': ['lib/pkgconfig', 'lib/petsc/bin'],
}

moduleclass = 'numlib'

[PETSc] [package list]