Skip to content

[SuperLU] [package list]

SuperLU/7.0.1-cpeGNU-26.03-ParMETIS-idx32-fp32 (SuperLU-7.0.1-cpeGNU-26.03-ParMETIS-idx32-fp32.eb)

Install with the EasyBuild-user module:

eb SuperLU-7.0.1-cpeGNU-26.03-ParMETIS-idx32-fp32.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider SuperLU/7.0.1-cpeGNU-26.03-ParMETIS-idx32-fp32.

EasyConfig:

#DOC Generates static and shared libraries. The shared library uses the single-threaded BLAS library.
#DOC Uses METIS from ParMETIS with idx 32 and fp 32.
easyblock = "CMakeMake"

local_ParMETIS_version =     '4.0.3'         # https:/http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download

local_SuperLU_version =      '7.0.1'         # https://github.com/xiaoyeli/superlu/releases

name =           'SuperLU'
version =        local_SuperLU_version
version_suffix = '-ParMETIS-idx32-fp32'

homepage = 'https://crd-legacy.lbl.gov/~xiaoye/SuperLU/'

whatis = [
    'Description: SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines.'
]

description = """
SuperLU is a general purpose library for the
direct solution of large, sparse, nonsymmetric systems
of linear equations on high performance machines.
The library is written in C and is callable from either C or Fortran program.

This version uses METIS from the ParMETIS module, with 32-bit indices and
floats.
"""

toolchain = {'name': 'cpeGNU', 'version': '26.03'}
toolchain_opts = {'pic': True}

github_account = 'xiaoyeli'
source_urls =    [GITHUB_LOWER_SOURCE]
sources =        ["v%(version)s.tar.gz"]
checksums =      ['86dcca1e086f8b8079990d07f00eb707fc9ef412cf3b2ce808b37956f0de2cb8']

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

deps = [
    ('ParMETIS', local_ParMETIS_version, '-idx32-fp32'), # It looks like this is what is used by default in PETSc?
]

local_common_configure_opts = ' '.join([
    '-DTPL_ENABLE_METISLIB=ON',
    '-DTPL_METIS_INCLUDE_DIRS="${EBROOTPARMETIS}/include"',
    '-DTPL_METIS_LIBRARIES="${EBROOTPARMETIS}/lib/libparmetis.a;${EBROOTPARMETIS}/lib/libmetis.a"',
    '-DTPL_ENABLE_INTERNAL_BLASLIB=OFF',
])

configure_opts = [
    '-DBUILD_SHARED_LIBS=ON  ' + local_common_configure_opts,      
    '-DBUILD_SHARED_LIBS=OFF ' + local_common_configure_opts,      
]

run_test = " test"

post_install_cmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cd ../%(namelower)s-%(version)s && cp License.txt README %(installdir)s/share/licenses/%(name)s',   
]

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

env_mod_category = 'numlib'

[SuperLU] [package list]