Skip to content

[ScaLAPACK] [package list]

ScaLAPACK/4.0-cpeGNU-22.12-amd (ScaLAPACK-4.0-cpeGNU-22.12-amd.eb)

Install with the EasyBuild-user module:

eb ScaLAPACK-4.0-cpeGNU-22.12-amd.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider ScaLAPACK/4.0-cpeGNU-22.12-amd.

EasyConfig:

easyblock = 'CMakeMake'

name =          'ScaLAPACK'
version =       '4.0'
versionsuffix = '-amd'

homepage = 'https://developer.amd.com/amd-aocl/'

whatis = [
    'Description: AMD optimized ScaLAPACK as part of AOCL'
]

description = """
ScaLAPACK is a library of high-performance linear algebra routines for
parallel distributed memory machines. It depends on external libraries
including BLAS and LAPACK for Linear Algebra computations. AMD\'s optimized
version of ScaLAPACK enables using the BLIS and libFLAME libraries with
optimized dense-matrix functions and solvers for AMD processors.
BLIS is a portable software framework for instantiating high-performance
BLAS-like dense linear algebra libraries. This module provides AMD\'s fork
of the BLIS library.

Note that this implementation of ScaLAPACK will conflict with the Cray LibSci
library, so when using this module you have to unload the cray-libsci module
as otherwise the Cray compiler wrappers will add LibSci to the libraries used
by the compiler.

Cray LibSci already contains BLAS, LAPACK and ScaLAPACK functionality and
should be your first choice. But this module may be useful if you run into
problems with the Cray LibSci library. Note however that software in the
LUMI stack is by default build with the Cray LibSci library, so your code
that relies on ScaLAPACK may not link correctly to any of the other modules
in the LUMI software stacks.
"""

toolchain = {'name': 'cpeGNU', 'version': '22.12'}

source_urls = ['https://github.com/amd/aocl-scalapack/archive/']
sources =     ['%(version)s.tar.gz']
checksums =   ['f02913b5984597b22cdb9a36198ed61039a1bf130308e778dc31b2a7eb88b33b']

builddependencies = [ # Create a reproducible build environment.
    ('buildtools', '%(toolchain_version)s', '', True),
]

dependencies = [
    ('BLIS',     version, versionsuffix),  # Will be pulled in via libFLAME anyway though
    ('libFLAME', version, versionsuffix)
]

preconfigopts = 'module unload cray-libsci && '

configopts  = '-DBLAS_LIBRARIES=${EBROOTBLIS}/lib/libblis.so -DLAPACK_LIBRARIES=${EBROOTLIBFLAME}/lib/libflame.so -DUSE_OPTIMIZED_LAPACK_BLAS=ON '
configopts += '-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DCMAKE_BUILD_TYPE=Release '

prebuildopts = 'module unload cray-libsci && '

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s && cd ../aocl-scalapack-%(version)s && cp LICENSE README README_ScaLAPACK_AMD %(installdir)s/share/licenses/%(name)s',
]

sanity_check_paths = {
    'files': ['lib/libscalapack.%s' % SHLIB_EXT],
    'dirs':  ['lib'],
}

#modluafooter = """
#conflict("cray-libsci")
#"""

moduleclass = 'numlib'

[ScaLAPACK] [package list]