Skip to content

[TAU] [package list]

TAU/2.35-cpeGNU-25.03-cray-python-3.11.7-mpi-CPU (TAU-2.35-cpeGNU-25.03-cray-python-3.11.7-mpi-CPU.eb)

Install with the EasyBuild-user module:

eb TAU-2.35-cpeGNU-25.03-cray-python-3.11.7-mpi-CPU.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider TAU/2.35-cpeGNU-25.03-cray-python-3.11.7-mpi-CPU.

EasyConfig:

# by Joachim Sødequist <joachim.sodequist@deic.dk>
# TAU installation uses a custom ./configure script that is not related to autotools.
easyblock = 'ConfigureMake'

local_craypython_version = '3.11.7'

local_Boost_version =     '1.88.0'        # https://www.boost.org/
local_oneTBB_version =    '2022.2.0'      # https://github.com/uxlfoundation/oneTBB/releases
local_libbfd_version =    '2.45'          # https://ftp.gnu.org/gnu/binutils/
local_libunwind_version = '1.8.1'         # http://download.savannah.nongnu.org/releases/libunwind/
local_PDT_version =       '3.25.2'        # https://www.cs.uoregon.edu/research/pdt/
local_zlib_version =      '1.3.1'         # https://zlib.net/

name = 'TAU'
version = '2.35'
versionsuffix = f'-cray-python-{local_craypython_version}-mpi-CPU'

whatis = [
    'Description: TAU - Tuning and Analysis Utilities'
]

description = """
TAU provides a suite of static and dynamic tools that provide 
graphical user interaction and interoperation to form an integrated analysis 
environment for parallel Fortran, C++, C, Java, and Python applications.
"""
homepage = 'https://www.cs.uoregon.edu/research/tau/home.php'
docurls = 'https://www.cs.uoregon.edu/research/tau/docs.php'

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

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

dependencies = [
    ('Boost',                                   local_Boost_version),  # Dyninst dependency
    ('cray-dyninst',                            EXTERNAL_MODULE),
    ('cray-mpich',                              EXTERNAL_MODULE),
    (f'cray-python/{local_craypython_version}', EXTERNAL_MODULE),
    ('libbfd',                                  local_libbfd_version),
    ('libunwind',                               local_libunwind_version),
    ('oneTBB',                                  local_oneTBB_version), # Dyninst dependency
    ('papi',                                    EXTERNAL_MODULE),
    ('PDT',                                     local_PDT_version),
    ('zlib',                                    local_zlib_version),
]

sources = [{
    'source_urls': ['https://www.cs.uoregon.edu/research/tau/tau_releases/'],
    'filename': SOURCELOWER_TAR_GZ,
    'extract_cmd': 'tar zxvf %s --strip-components=2',
}]

buildininstalldir = True             # Source code is part of the build, paths to src are hard-coded during configure
configure_without_installdir = True  # Custom configure script uses '-prefix' instead of '--prefix', configure manually

configopts = ' '.join([
    '-prefix=%(installdir)s',
    '-c++=CC',
    '-cc=cc',
    '-fortran=gfortran',  # ftn wrapper not compatible, gfortran is required set TAU_CXXLIBS_GNU_CNL for tau_cc.sh
    '-arch=craycnl',
    '-bfd=$EBROOTLIBBFD',
    '-unwind=$EBROOTLIBUNWIND',
    '-zlib=$EBROOTZLIB',
    '-mpi',
    '-mpiinc=$CRAY_MPICH_PREFIX/include',
    '-mpilib=$CRAY_MPICH_PREFIX/lib',
    '-openmp',
    '-pthread',
    '-papi=$CRAY_PAPI_PREFIX',
    '-python',
    '-pdt=$EBROOTPDT',
    '-tbb=$EBROOTONETBB',
    '-dyninst=$CRAY_DYNINST_INSTALL_DIR',
])

prebuildopts = ['PATH=$PATH:%(installdir)s/craycnl/bin/']

# The custom installation procedure does not have seperate build and install steps.
build_cmd = 'make install'
install_cmd = ' '  # Empty string would get passed as None-like resulting in default

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cp COPYRIGHT CREDITS LICENSE README README.gpu README.sampling %(installdir)s/share/licenses/%(name)s',
]

sanity_check_paths = {
    'files': ['craycnl/bin/tau_exec'],
    'dirs': []
}

modextrapaths = {'PATH': 'craycnl/bin/'}
modextravars = {'TAU_MAKEFILE': '%(installdir)s/craycnl/lib/Makefile.tau-gnu-papi-mpi-pthread-python-pdt-openmp'}

moduleclass = 'tools'

[TAU] [package list]