mirror of
https://code.it4i.cz/sccs/easyconfigs-it4i.git
synced 2025-04-08 07:52:11 +01:00

modified: p/PETSc/PETSc-3.12.2-intel-2018a-it4i.eb new file: p/PETSc/PETSc-3.12.2-intel-2019a-it4i.eb modified: s/Singularity/Singularity-3.5.2.eb
57 lines
2.2 KiB
Plaintext
57 lines
2.2 KiB
Plaintext
# IT4Innovations 2019
|
|
# kompilovat na cn
|
|
|
|
easyblock = 'ConfigureMake'
|
|
name = 'PETSc'
|
|
version = '3.12.2'
|
|
versionsuffix = '-it4i'
|
|
|
|
homepage = 'http://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': '2019a'}
|
|
|
|
# build is still parallel, PETSc make doesnt support -j opt
|
|
maxparallel = 0
|
|
|
|
source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots']
|
|
sources = [SOURCELOWER_TAR_GZ]
|
|
|
|
# (build) dependencies provided through EasyBuild
|
|
builddependencies = [('CMake', '3.16.0', '-rc3', True)]
|
|
|
|
# configure installs dependencies -> remove installdir before configure
|
|
keeppreviousinstall = True
|
|
preconfigopts = 'rm -rf %(installdir)s;'
|
|
|
|
petscArch = 'intel-opt'
|
|
petscDir = '%(builddir)s/%(namelower)s-%(version)s'
|
|
|
|
# config options
|
|
configopts = '--CFLAGS=-O3 -xHost --CXXFLAGS=-O3 -xHost --FFLAGS=-O3 -xHost --with-c++-support --with-pic=1 '
|
|
configopts += '--with-cc=mpicc --with-cxx=mpicxx --with-fc=mpif90 --with-debugging=0 --with-gnu-compilers=0 '
|
|
configopts += '--with-mpi=1 --with-x=0 '
|
|
configopts += '--download-metis --download-parmetis --download-mumps --download-superlu --download-superlu_dist '
|
|
configopts += '--with-blas-lapack-lib=[$EBROOTIMKL/mkl/lib/intel64_lin/libmkl_intel_lp64.a,libmkl_sequential.a,libmkl_core.a] '
|
|
configopts += '--with-scalapack-include=$EBROOTIMKL/mkl/include '
|
|
configopts += '--with-scalapack-lib=[$EBROOTIMKL/mkl/lib/intel64_lin/libmkl_scalapack_lp64.a,libmkl_blacs_intelmpi_lp64.a,libmkl_intel_lp64.a,libmkl_sequential.a,libmkl_core.a] '
|
|
configopts += '--with-scalapack=1 '
|
|
configopts += 'PETSC_ARCH=%s' % petscArch
|
|
|
|
installopts = 'PETSC_DIR=%s PETSC_ARCH=%s' % (petscDir, petscArch)
|
|
buildopts = installopts + ' all'
|
|
|
|
modextravars = {'PETSC_DIR': '%(installdir)s'}
|
|
modextrapaths = {'PATH': 'lib/petsc/bin'}
|
|
|
|
moduleclass = 'numlib'
|
|
|
|
# sanity checks
|
|
runtest = 'test' # run make test after make
|
|
sanity_check_paths = {
|
|
'files': ['include/petscconf.h', 'lib/libpetsc.so'],
|
|
'dirs': []
|
|
}
|
|
sanity_check_commands = [('petscmpiexec', '-h')]
|