hpccm.building_blocks

source package hpccm.building_blocks

Classes

  • amgx The amgx building block downloads, configures, builds, and installs the AMGX component.

  • arm_allinea_studio The arm_allinea_studio building block downloads and installs the Arm Allinea Studio.

  • boost The boost building block downloads and installs the Boost component.

  • catalyst The catalyst building block configures, builds, and installs the ParaView Catalyst component.

  • cgns The cgns building block downloads and installs the CGNS component.

  • charm The charm building block downloads and install the Charm++ component.

  • cmake The cmake building block downloads and installs the CMake component.

  • conda The conda building block installs Anaconda.

  • doca_ofed The doca_ofed building block downloads and installs the NVIDIA DOCA Software Framework.

  • fftw The fftw building block downloads, configures, builds, and installs the FFTW component. Depending on the parameters, the source will be downloaded from the web (default) or copied from a source directory in the local build context.

  • gdrcopy The gdrcopy building block builds and installs the user space library from the gdrcopy component.

  • generic_autotools The generic_autotools building block downloads, configures, builds, and installs a specified GNU Autotools enabled package.

  • generic_build The generic_build building block downloads and builds a specified package.

  • generic_cmake The generic_cmake building block downloads, configures, builds, and installs a specified CMake enabled package.

  • gnu The gnu building block installs the GNU compilers from the upstream Linux distribution.

  • hdf5 The hdf5 building block downloads, configures, builds, and installs the HDF5 component. Depending on the parameters, the source will be downloaded from the web (default) or copied from a source directory in the local build context.

  • hpcx The hpcx building block downloads and installs the Mellanox HPC-X component.

  • intel_mpi The intel_mpi building block downloads and installs the Intel MPI Library.

  • intel_psxe The intel_psxe building block installs Intel Parallel Studio XE.

  • intel_psxe_runtime The intel_mpi building block downloads and installs the Intel Parallel Studio XE runtime.

  • julia The julia building block downloads and installs the Julia programming environment.

  • knem The knem building block install the headers from the KNEM component.

  • kokkos The kokkos building block downloads and installs the Kokkos component.

  • libsim The libsim building block configures, builds, and installs the VisIt Libsim component.

  • llvm The llvm building block installs the LLVM compilers (clang and clang++) from the upstream Linux distribution.

  • magma The magma building block configures, builds, and installs the MAGMA component.

  • mkl The mkl building block downloads and installs the Intel Math Kernel Library.

  • mlnx_ofed The mlnx_ofed building block downloads and installs the Mellanox OpenFabrics Enterprise Distribution for Linux.

  • mpich The mpich building block configures, builds, and installs the MPICH component.

  • multi_ofed The multi_ofed building block downloads and installs multiple versions of the OpenFabrics Enterprise Distribution (OFED). Please refer to the mlnx_ofed and ofed building blocks for more information.

  • mvapich2_gdr The mvapich2_gdr building blocks installs the MVAPICH2-GDR component. Depending on the parameters, the package will be downloaded from the web (default) or copied from the local build context.

  • mvapich2 The mvapich2 building block configures, builds, and installs the MVAPICH2 component. Depending on the parameters, the source will be downloaded from the web (default) or copied from a source directory in the local build context.

  • nccl The nccl building block installs the NCCL component.

  • netcdf The netcdf building block downloads, configures, builds, and installs the NetCDF component.

  • nsight_compute The nsight_compute building block downloads and installs the [NVIDIA Nsight Compute profiler]](https://developer.nvidia.com/nsight-compute).

  • nsight_systems The nsight_systems building block downloads and installs the [NVIDIA Nsight Systems profiler]](https://developer.nvidia.com/nsight-systems).

  • nvhpc The nvhpc building block downloads and installs the NVIDIA HPC SDK. By default, the NVIDIA HPC SDK is installed from a package repository. Alternatively the tar package can be downloaded by specifying the tarball parameter, or a local tar package may used instead by specifying the package parameter.

  • nvshmem The nvshmem building block builds and installs the NVSHMEM component. CMake version 3.19 or later is required and must be installed separately.

  • ofed The ofed building block installs the OpenFabrics Enterprise Distribution packages that are part of the Linux distribution.

  • openblas The openblas building block builds and installs the OpenBLAS component.

  • openmpi The openmpi building block configures, builds, and installs the OpenMPI component.

  • packages The packages building block specifies the set of operating system packages to install. Based on the Linux distribution, the building block invokes either apt-get (Ubuntu) or yum (RHEL-based).

  • pgi The pgi building block installs the PGI compiler from a manually downloaded package.

  • pip The pip building block installs Python packages from PyPi.

  • pmix The pmix building block configures, builds, and installs the PMIX component.

  • pnetcdf The pnetcdf building block downloads, configures, builds, and installs the PnetCDF component.

  • python The python building block installs Python from the upstream Linux distribution.

  • rdma_core The rdma_core building block configures, builds, and installs the RDMA Core component.

  • scif The scif building blocks installs components using the Scientific Filesystem (SCI-F).

  • sensei The sensei building block configures, builds, and installs the SENSEI component.

  • slurm_pmi2 The slurm_pmi2 building block configures, builds, and installs the PMI2 component from SLURM.

  • ucx The ucx building block configures, builds, and installs the UCX component.

  • xpmem The xpmem building block builds and installs the user space library from the XPMEM component.

  • yum The yum building block specifies the set of operating system packages to install. This building block should only be used on images that use the Red Hat package manager (e.g., CentOS).

class amgx(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The amgx building block downloads, configures, builds, and installs the AMGX component.

The CMake building block should be installed prior to this building block.

Installing an MPI building block before this one is optional and will build the AMGX library with MPI support. Some Eigensolvers make use of the MAGMA and/or MKL libraries and are only available if the paths to these libraries is specified as shown below in the cmake_opts.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • branch The git branch to clone. AMGX releases are tagged, that is, specifying branch='v2.1.0' downloads a particular AMGX version. The default is master.

  • cmake_opts List of options to pass to cmake. The default value is an empty list. See the "Building" section of the AMGX documentation of the specified library version for more details. Some options are CMAKE_NO_MPI:Boolean (default=False) - build without MPI support even if the FindMPI script finds an MPI library. AMGX_NO_RPATH:Boolean (default=False) - by default CMake adds -rpath flags to binaries, this option disables that. MKL_ROOT_DIR:String, MAGMA_ROOT_DIR:String - MAGMA/MKL are used to accelerate some of the Eigensolvers. These solvers will return "error 'not supported'" if AMGX was not build with MKL/MAGMA support.

  • commit The git commit to clone. The default is empty and uses the latest commit on the selected branch of the repository.

  • directory Build from an unpackaged source directory relative to the local build context instead of fetching AMGX sources from a git repository. This option is incompatible with repository/branch/ commit. The default is None.

  • ospackages List of OS packages to install prior to downloading, configuring, and building. The default value is [git].

  • prefix The top level install location. The default is /usr/local/amgx.

  • repository The git repository to clone. The default is https://github.com/NVIDIA/AMGX.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

Examples

amgx(branch='v2.1.0')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method amgx.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

a = amgx(...)
Stage0 += a
Stage1 += a.runtime()

class arm_allinea_studio(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The arm_allinea_studio building block downloads and installs the Arm Allinea Studio.

You must agree to the Arm End User License Agreement to use this building block.

As a side effect, a toolchain is created containing the Arm Allinea Studio compilers. The toolchain can be passed to other operations that want to build using the Arm Allinea Studio compilers. However, the environment is not automatically configured for the Arm Allinea Studio compilers. The desired environment module must be manually loaded, e.g., module load Generic-AArch64/RHEL/7/arm-linux-compiler/20.3.

Parameters

  • environment Boolean flag to specify whether the environment (MODULEPATH) should be modified to include Arm Allinea Studio. The default is True.

  • eula By setting this value to True, you agree to the Arm End User License Agreement. The default value is False.

  • microarchitectures List of microarchitectures to install. From 22.0 version, only generic is available. Available values are generic, generic-sve for version 21.1, and neoverse-n1, thunderx2t99 are valid for versions <= 20.3. Irrespective of this setting, the generic implementation will always be installed.

  • ospackages List of OS packages to install prior to installing Arm Allinea Studio. For Ubuntu, the default values are libc6-dev, lmod, python, tar, tcl, and wget. For RHEL-based Linux distributions, the default values are glibc-devel, Lmod, tar, and wget.

  • prefix The top level install prefix. The default value is /opt/arm.

  • tarball Path to the Arm Allinea Studio tarball relative to the local build context. The default value is empty. If this is defined, the tarball in the local build context will be used rather than downloading the tarball from the web.

  • version The version of Arm Allinea Studio to install. The default value is 22.0. Due to differences in the packaging scheme, versions prior to 20.2 are not supported.

Examples

arm_allinea_studio(eula=True,
                   microarchitectures=['generic', 'thunderx2t99'],
                   version='20.3')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method arm_allinea_studio.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

a = arm_allinea_compiler(...)
Stage0 += a
Stage1 += a.runtime()

class boost(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The boost building block downloads and installs the Boost component.

Parameters

  • b2_opts List of options to pass to b2. The default is an empty list.

  • bootstrap_opts List of options to pass to bootstrap.sh. The default is an empty list.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH) should be modified to include Boost. The default is True.

  • ldconfig Boolean flag to specify whether the Boost library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the Boost library directory. The default value is False.

  • ospackages List of OS packages to install prior to building. For Ubuntu, the default values are bzip2, libbz2-dev, tar, wget, and zlib1g-dev. For RHEL-based Linux distributions the default values are bzip2, bzip2-devel, tar, wget, which, and zlib-devel.

  • prefix The top level installation location. The default value is /usr/local/boost.

  • python Boolean flag to specify whether Boost should be built with Python support. If enabled, the Python C headers need to be installed (typically this can be done by adding python-dev or python-devel to the list of OS packages). This flag is ignored if bootstrap_opts is set. The default is False.

  • sourceforge Boolean flag to specify whether Boost should be downloaded from SourceForge rather than the current Boost repository. For versions of Boost older than 1.63.0, the SourceForge repository should be used. The default is False.

  • version The version of Boost source to download. The default value is 1.87.0.

Examples

boost(prefix='/opt/boost/1.67.0', version='1.67.0')
boost(sourceforge=True, version='1.57.0')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method boost.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

b = boost(...)
Stage0 += b
Stage1 += b.runtime()

class catalyst(**kwargs)

Bases : bb_base, hpccm.templates.CMakeBuild, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The catalyst building block configures, builds, and installs the ParaView Catalyst component.

The CMake building block should be installed prior to this building block.

A MPI building block should be installed prior to this building block.

If GPU rendering will be used then a cudagl base image is recommended.

Parameters

  • cmake_opts List of options to pass to cmake. The default is an empty list.

  • edition The Catalyst edition to use. Valid choices are Base, Base-Essentials, Base-Essentials-Extras, Base-Essentials-Extras-Rendering-Base, Base-Enable-Python, Base-Enable-Python-Essentials, Base-Enable-Python-Essentials-Extras, and Base-Enable-Python-Essentials-Extras-Rendering-Base. If a Python edition is selected, then the Python building block should be installed with development libraries prior to this building block. The default value is Base-Enable-Python-Essentials-Extras-Rendering-Base.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include ParaView Catalyst. The default is True.

  • ldconfig Boolean flag to specify whether the Catalyst library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the Catalyst library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are git, gzip, make, tar, and wget. If a rendering edition is selected then libxau-dev, libxext-dev, libxt-dev, libice-dev, libsm-dev, libx11-dev, libgl1-mesa-dev are also included. For RHEL-based Linux distributions, the default values are git, gzip, make, tar, wget, and which. If a rendering edition is selected then libX11-devel, libXau-devel, libXext-devel, libXt-devel, libICE-devel, libSM-devel, libglvnd-devel, mesa-libGL-devel are also included.

  • prefix The top level install location. The default value is /usr/local/catalyst.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of Catalyst source to download. The default value is 5.6.1.

Examples

catalyst(prefix='/opt/catalyst/5.6.0', version='5.6.0')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method catalyst.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

c = catalyst(...)
Stage0 += c
Stage1 += c.runtime()

class cgns(**kwargs)

Bases : bb_base

The cgns building block downloads and installs the CGNS component.

The HDF5 building block should be installed prior to this building block.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the test cases should be run. The default is False.

  • configure_opts List of options to pass to configure. The default value is --with-hdf5=/usr/local/hdf5 and --with-zlib.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • prefix The top level install location. The default value is /usr/local/cgns.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are file, make, wget, and zlib1g-dev. For RHEL-based Linux distributions the default values are bzip2, file, make, wget and zlib-devel.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of CGNS source to download. The default value is 4.1.2.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

cgns(prefix='/opt/cgns/3.3.1', version='3.3.1')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method cgns.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

c = cgns(...)
Stage0 += c
Stage1 += c.runtime()

class charm(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.sed, hpccm.templates.tar, hpccm.templates.wget

The charm building block downloads and install the Charm++ component.

Parameters

  • basedir List of additional include and library paths for building Charm++. The default is an empty list.

  • check Boolean flag to specify whether the test cases should be run. The default is False.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH, PATH, and other variables) should be modified to include Charm++. The default is True.

  • ldconfig Boolean flag to specify whether the Charm++ library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the Charm++ library directory. The default value is False.

  • options List of additional options to use when building Charm++. The default values are --build-shared, and --with-production.

  • ospackages List of OS packages to install prior to configuring and building. The default values are autoconf, automake, git, libtool, make, and wget.

  • prefix The top level install prefix. The default value is /usr/local.

  • target The target Charm++ framework to build. The default value is charm++.

  • target_architecture The target machine architecture to build. For x86_64 processors, the default value is multicore-linux-x86_64. For aarch64 processors, the default value is multicore-arm8.

  • version The version of Charm++ to download. The default value is 6.10.2.

Examples

charm(prefix='/opt', version='6.8.2')
charm(target_architecture='mpi-linux-x86_64')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method charm.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

c = charm(...)
Stage0 += c
Stage1 += c.runtime()

class cmake(**kwargs)

Bases : bb_base, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The cmake building block downloads and installs the CMake component.

Parameters

  • bootstrap_opts List of options to pass to bootstrap when building from source. The default is an empty list.

  • eula By setting this value to True, you agree to the CMake End-User License Agreement. The default value is False.

  • ospackages List of OS packages to install prior to installing. The default values are make and wget.

  • prefix The top level install location. The default value is /usr/local.

  • source Boolean flag to specify whether to build CMake from source. If True, includes the libssl-dev package in the list of OS packages for Ubuntu, and openssl-devel for RHEL-based distributions. For x86_64 and aarch64 processors, the default is False, i.e., use the available pre-compiled package. For all other processors, the default is True.

  • version The version of CMake to download. The default value is 3.25.1.

Examples

cmake(eula=True)
cmake(eula=True, version='3.10.3')

class conda(**kwargs)

Bases : bb_base, hpccm.templates.rm, hpccm.templates.wget

The conda building block installs Anaconda.

You must agree to the Anaconda End User License Agreement to use this building block.

Parameters

  • channels List of additional Conda channels to enable. The default is an empty list.

  • environment Path to the Conda environment file to clone. The default value is empty.

  • eula By setting this value to True, you agree to the Anaconda End User License Agreement. The default value is False.

  • ospackages List of OS packages to install prior to installing Conda. The default values are ca-certificates and wget.

  • packages List of Conda packages to install. The default is an empty list.

  • prefix The top level install location. The default value is /usr/local/anaconda.

  • python2 Boolean flag to specify that the Python 2 version of Anaconda should be installed. The default is False.

  • python_subversion The Python version to install. This value is ignored if the Conda version is less than 4.8. The default is py312 if using Python 3, and py27 if using Python 2.

  • version The version of Anaconda to download. The default value is 25.1.1-2 if using Python 3, and 4.8.3 if using Python 2.

Examples

conda(packages=['numpy'])
conda(channels=['conda-forge', 'nvidia'], prefix='/opt/conda')
conda(environment='environment.yml')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method conda.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

c = conda(...)
Stage0 += c
Stage1 += c.runtime()

class doca_ofed(**kwargs)

Bases : bb_base, hpccm.templates.annotate, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The doca_ofed building block downloads and installs the NVIDIA DOCA Software Framework.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • archlabel The CPU architecture label assigned by Mellanox to the package repository. The default value is x86_64 for x86_64 processors and arm64-sbsa for aarch64 processors.

  • oslabel The Linux distribution label assigned by Mellanox to the package repository. For Ubuntu, the default value is ubuntuXX.04 where XX is derived from the base image. For RHEL-base Linux distributions, the default value is rhelX.

  • ospackages List of OS packages to install prior to installing DOCA OFED. The default values are ca-certificates, gnupg, and wget.

  • packages List of packages to install from DOCA. For Ubuntu, the default values are ibverbs-providers, ibverbs-utils libibmad-dev, libibmad5, libibumad3, libibumad-dev, libibverbs-dev libibverbs1, librdmacm-dev, and librdmacm1. For RHEL-based Linux distributions, the default values are libibumad, libibverbs, libibverbs-utils, librdmacm, rdma-core, and rdma-core-devel.

  • version The version of DOCA OFED to download. The default value is 3.3.0.

Examples

doca_ofed(version='3.2.0')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method doca_ofed.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

d = doca_ofed(...)
Stage0 += d
Stage1 += d.runtime()

class fftw(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The fftw building block downloads, configures, builds, and installs the FFTW component. Depending on the parameters, the source will be downloaded from the web (default) or copied from a source directory in the local build context.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • configure_opts List of options to pass to configure. For x86_64 processors, the default values are --enable-shared, --enable-openmp, --enable-threads, and --enable-sse2. For other processors, the default values are --enable-shared, --enable-openmp, and --enable-threads.

  • directory Path to the unpackaged source directory relative to the local build context. The default value is empty. If this is defined, the source in the local build context will be used rather than downloading the source from the web.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH) should be modified to include FFTW. The default is True.

  • ldconfig Boolean flag to specify whether the FFTW library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the FFTW library directory. The default value is False.

  • mpi Boolean flag to specify whether to build with MPI support enabled. The default is False.

  • ospackages List of OS packages to install prior to configuring and building. The default values are file, make, and wget.

  • prefix The top level install location. The default value is /usr/local/fftw.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of FFTW source to download. This value is ignored if directory is set. The default value is 3.3.10.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

fftw(prefix='/opt/fftw/3.3.7', version='3.3.7')
fftw(directory='sources/fftw-3.3.7')
n = nvhpc(eula=True)
fftw(toolchain=n.toolchain)
fftw(check=True, configure_opts=['--enable-shared', '--enable-threads',
                                 '--enable-sse2', '--enable-avx'])

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method fftw.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

f = fftw(...)
Stage0 += f
Stage1 += f.runtime()

class gdrcopy(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The gdrcopy building block builds and installs the user space library from the gdrcopy component.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • environment Boolean flag to specify whether the environment (CPATH, LIBRARY_PATH, and LD_LIBRARY_PATH) should be modified to include the gdrcopy. The default is True.

  • ldconfig Boolean flag to specify whether the gdrcopy library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the gdrcopy library directory. The default value is False.

  • ospackages List of OS packages to install prior to building. The default values are make and wget.

  • prefix The top level install location. The default value is /usr/local/gdrcopy.

  • targets List of make targets to build. The default values are lib and lib_install.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of gdrcopy source to download. The default value is 2.4.4.

Examples

gdrcopy(prefix='/opt/gdrcopy/2.1', version='2.1')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method gdrcopy.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

g = gdrcopy(...)
Stage0 += g
Stage1 += g.runtime()

class generic_autotools(**kwargs)

Bases : bb_base, hpccm.templates.ConfigureMake, hpccm.templates.annotate, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm

The generic_autotools building block downloads, configures, builds, and installs a specified GNU Autotools enabled package.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • annotations Dictionary of additional annotations to include. The default is an empty dictionary.

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • build_directory The location to build the package. The default value is the source code location.

  • build_environment Dictionary of environment variables and values to set when building the package. The default is an empty dictionary.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • configure_opts List of options to pass to configure. The default value is an empty list.

  • devel_environment Dictionary of environment variables and values, e.g., LD_LIBRARY_PATH and PATH, to set in the development stage after the package is built and installed. The default is an empty dictionary.

  • directory The source code location. The default value is the basename of the downloaded package. If the value is not an absolute path, then the temporary working directory is prepended.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment should be modified (see devel_environment and runtime_environment). The default is True.

  • export_build_environment Boolean flag to specify whether the build environment should be exported, or merely set on the configure command line. The default is False.

  • install Boolean flag to specify whether the make install step should be performed. The default is True.

  • ldconfig Boolean flag to specify whether the library directory should be added dynamic linker cache. The default value is False.

  • libdir The path relative to the install prefix to use when configuring the dynamic linker cache. The default value is lib.

  • make Boolean flag to specify whether the make step should be performed. The default is True.

  • package Path to the local source package relative to the local build context. One of this parameter or the repository or url parameters must be specified.

  • postinstall List of shell commands to run after running 'make install'. The working directory is the install prefix. The default is an empty list.

  • preconfigure List of shell commands to run prior to running configure. The working directory is the source code location. The default is an empty list.

  • prefix The top level install location. The default value is /usr/local. It is highly recommended not use use this default and instead set the prefix to a package specific directory.

  • recursive Initialize and checkout git submodules. repository parameter must be specified. The default is False.

  • repository The git repository of the package to build. One of this parameter or the package or url parameters must be specified.

  • _run_arguments Specify additional Dockerfile RUN arguments (Docker specific).

  • runtime The list of files / directories to copy into the runtime stage. The default is an empty list, i.e., copy the entire prefix.

  • runtime_environment Dictionary of environment variables and values, e.g., LD_LIBRARY_PATH and PATH, to set in the runtime stage. The default is an empty dictionary.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • url The URL of the package to build. One of this parameter or the package or repository parameters must be specified.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

generic_autotools(directory='tcl8.6.9/unix',
                  prefix='/usr/local/tcl',
                  url='https://prdownloads.sourceforge.net/tcl/tcl8.6.9-src.tar.gz')
generic_autotools(preconfigure=['./autogen.sh'],
                  prefix='/usr/local/zeromq',
                  repository='https://github.com/zeromq/libzmq.git')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method generic_autotools.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

g = generic_autotools(...)
Stage0 += g
Stage1 += g.runtime()

class generic_build(**kwargs)

Bases : bb_base, hpccm.templates.annotate, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm

The generic_build building block downloads and builds a specified package.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • annotations Dictionary of additional annotations to include. The default is an empty dictionary.

  • build List of shell commands to run in order to build the package. The working directory is the source directory. The default is an empty list.

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • devel_environment Dictionary of environment variables and values, e.g., LD_LIBRARY_PATH and PATH, to set in the development stage after the package is built and installed. The default is an empty dictionary.

  • directory The source code location. The default value is the basename of the downloaded package. If the value is not an absolute path, then the temporary working directory is prepended.

  • environment Boolean flag to specify whether the environment should be modified (see devel_environment and runtime_environment). The default is True.

  • install List of shell commands to run in order to install the package. The working directory is the source directory. If prefix is defined, it will be automatically created if the list is non-empty. The default is an empty list.

  • ldconfig Boolean flag to specify whether the library directory should be added dynamic linker cache. The default value is False.

  • libdir The path relative to the install prefix to use when configuring the dynamic linker cache. The default value is lib.

  • package Path to the local source package relative to the local build context. One of this parameter or the repository or url parameters must be specified.

  • prefix The top level install location. The default value is empty. If defined then the location is copied as part of the runtime method.

  • recursive Initialize and checkout git submodules. repository parameter must be specified. The default is False.

  • repository The git repository of the package to build. One of this parameter or the package or url parameters must be specified.

  • _run_arguments Specify additional Dockerfile RUN arguments (Docker specific).

  • runtime The list of files / directories to copy into the runtime stage. The default is an empty list, i.e., copy the entire prefix.

  • runtime_environment Dictionary of environment variables and values, e.g., LD_LIBRARY_PATH and PATH, to set in the runtime stage. The default is an empty dictionary.

  • unpack Unpack the sources after downloading. Default is True.

  • url The URL of the package to build. One of this parameter or the package or repository or parameters must be specified.

Examples

generic_build(build=['make ARCH=sm_70'],
              install=['cp stream /usr/local/bin/cuda-stream'],
              repository='https://github.com/bcumming/cuda-stream')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method generic_build.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

g = generic_build(...)
Stage0 += g
Stage1 += g.runtime()

class generic_cmake(**kwargs)

Bases : bb_base, hpccm.templates.CMakeBuild, hpccm.templates.annotate, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm

The generic_cmake building block downloads, configures, builds, and installs a specified CMake enabled package.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • annotations Dictionary of additional annotations to include. The default is an empty dictionary.

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • build_directory The location to build the package. The default value is a build subdirectory in the source code location.

  • build_environment Dictionary of environment variables and values to set when building the package. The default is an empty dictionary.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • cmake_opts List of options to pass to cmake. The default value is an empty list.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • devel_environment Dictionary of environment variables and values, e.g., LD_LIBRARY_PATH and PATH, to set in the development stage after the package is built and installed. The default is an empty dictionary.

  • directory The source code location. The default value is the basename of the downloaded package. If the value is not an absolute path, then the temporary working directory is prepended.

  • environment Boolean flag to specify whether the environment should be modified (see devel_environment and runtime_environment). The default is True.

  • install Boolean flag to specify whether the make install step should be performed. The default is True.

  • ldconfig Boolean flag to specify whether the library directory should be added dynamic linker cache. The default value is False.

  • libdir The path relative to the install prefix to use when configuring the dynamic linker cache. The default value is lib.

  • make Boolean flag to specify whether the make step should be performed. The default is True.

  • package Path to the local source package relative to the local build context. One of this parameter or the repository or url parameters must be specified.

  • postinstall List of shell commands to run after running 'make install'. The working directory is the install prefix. The default is an empty list.

  • preconfigure List of shell commands to run prior to running cmake. The working directory is the source code location. The default is an empty list.

  • prefix The top level install location. The default value is /usr/local. It is highly recommended not to use this default and instead set the prefix to a package specific directory.

  • recursive Initialize and checkout git submodules. repository parameter must be specified. The default is False.

  • repository The git repository of the package to build. One of this parameter or the package or url parameters must be specified.

  • _run_arguments Specify additional Dockerfile RUN arguments (Docker specific).

  • runtime The list of files / directories to copy into the runtime stage. The default is an empty list, i.e., copy the entire prefix.

  • runtime_environment Dictionary of environment variables and values, e.g., LD_LIBRARY_PATH and PATH, to set in the runtime stage. The default is an empty dictionary.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • url The URL of the package to build. One of this parameter or the repository or package parameters must be specified.

Examples

generic_cmake(cmake_opts=['-D CMAKE_BUILD_TYPE=Release',
                          '-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda',
                          '-D GMX_BUILD_OWN_FFTW=ON',
                          '-D GMX_GPU=ON',
                          '-D GMX_MPI=OFF',
                          '-D GMX_OPENMP=ON',
                          '-D GMX_PREFER_STATIC_LIBS=ON',
                          '-D MPIEXEC_PREFLAGS=--allow-run-as-root'],
              directory='gromacs-2018.2',
              prefix='/usr/local/gromacs',
              url='https://github.com/gromacs/gromacs/archive/v2018.2.tar.gz')
generic_cmake(branch='v0.8.0',
              cmake_opts=['-D CMAKE_BUILD_TYPE=RELEASE',
                          '-D QUDA_DIRAC_CLOVER=ON',
                          '-D QUDA_DIRAC_DOMAIN_WALL=ON',
                          '-D QUDA_DIRAC_STAGGERED=ON',
                          '-D QUDA_DIRAC_TWISTED_CLOVER=ON',
                          '-D QUDA_DIRAC_TWISTED_MASS=ON',
                          '-D QUDA_DIRAC_WILSON=ON',
                          '-D QUDA_FORCE_GAUGE=ON',
                          '-D QUDA_FORCE_HISQ=ON',
                          '-D QUDA_GPU_ARCH=sm_70',
                          '-D QUDA_INTERFACE_MILC=ON',
                          '-D QUDA_INTERFACE_QDP=ON',
                          '-D QUDA_LINK_HISQ=ON',
                          '-D QUDA_MPI=ON'],
              prefix='/usr/local/quda',
              repository='https://github.com/lattice/quda.git')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method generic_cmake.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

g = generic_cmake(...)
Stage0 += g
Stage1 += g.runtime()

class gnu(**kwargs)

Bases : bb_base, hpccm.templates.ConfigureMake, hpccm.templates.envvars, hpccm.templates.git, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The gnu building block installs the GNU compilers from the upstream Linux distribution.

As a side effect, a toolchain is created containing the GNU compilers. The toolchain can be passed to other operations that want to build using the GNU compilers.

Parameters

  • cc Boolean flag to specify whether to install gcc. The default is True.

  • configure_opts List of options to pass to configure. The default value is --disable-multilib. This option is only recognized if a source build is enabled.

  • cxx Boolean flag to specify whether to install g++. The default is True.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include the GNU compiler. The default is True.

  • extra_repository Boolean flag to specify whether to enable an extra package repository containing addition GNU compiler packages. For Ubuntu, setting this flag to True enables the ppa:ubuntu-toolchain-r/test repository. For RHEL-based Linux distributions, setting this flag to True enables the Software Collections (SCL) repository. The default is False.

  • fortran Boolean flag to specify whether to install gfortran. The default is True.

  • ldconfig Boolean flag to specify whether the GNU library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the GNU library directory. The default value is False. This option is only recognized if a source build is enabled.

  • openacc Boolean flag to control whether a OpenACC enabled compiler is built. If True, adds --with-cuda-driver and --enable-offload-targets=nvptx-none to the list of host compiler configure options and also builds the accelerator compiler and dependencies (nvptx-tools and nvptx-newlib). The default value is False. This option is only recognized if a source build is enabled.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are bzip2, file, gcc, g++, git, make, perl, tar, wget, and xz-utils. For RHEL-based Linux distributions, the default values are bzip2, file, gcc, gcc-c++, git, make, perl, tar, wget, and xz. This option is only recognized if a source build is enabled.

  • prefix The top level install location. The default value is /usr/local/gnu. This option is only recognized if a source build is enabled.

  • source Boolean flag to control whether to build the GNU compilers from source. The default value is False.

  • version The version of the GNU compilers to install. Note that the version refers to the Linux distribution packaging, not the actual compiler version. For Ubuntu, the version is appended to the default package name, e.g., gcc-7. For RHEL-based Linux distributions, the version is inserted into the SCL Developer Toolset package name, e.g., devtoolset-7-gcc. For RHEL-based Linux distributions, specifying the version automatically sets extra_repository to True. If a source build is enabled, the version is the compiler tarball version on the GNU FTP site and the version must be specified. The default is an empty value.

Examples

gnu()
gnu(fortran=False)
gnu(extra_repository=True, version='7')
gnu(openacc=True, source=True, version='9.1.0')
g = gnu()
openmpi(..., toolchain=g.toolchain, ...)

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method gnu.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

g = gnu(...)
Stage0 += g
Stage1 += g.runtime()

class hdf5(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The hdf5 building block downloads, configures, builds, and installs the HDF5 component. Depending on the parameters, the source will be downloaded from the web (default) or copied from a source directory in the local build context.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • configure_opts List of options to pass to configure. The default values are --enable-cxx and --enable-fortran.

  • directory Path to the unpackaged source directory relative to the local build context. The default value is empty. If this is defined, the source in the local build context will be used rather than downloading the source from the web.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, LIBRARY_PATH, PATH, and others) should be modified to include HDF5. The default is True.

  • ldconfig Boolean flag to specify whether the HDF5 library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the HDF5 library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are bzip2, file, make, wget, and zlib1g-dev. For RHEL-based Linux distributions the default values are bzip2, file, make, wget and zlib-devel.

  • prefix The top level install location. The default value is /usr/local/hdf5.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of HDF5 source to download. This value is ignored if directory is set. The default value is 1.14.5.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

hdf5(prefix='/opt/hdf5/1.10.1', version='1.10.1')
hdf5(directory='sources/hdf5-1.10.1')
n = nvhpc(eula=True)
hdf5(toolchain=n.toolchain)
hdf5(check=True, configure_opts=['--enable-cxx', '--enable-fortran',
                                 '--enable-profiling=yes'])

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method hdf5.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

h = hdf5(...)
Stage0 += h
Stage1 += h.runtime()

class hpcx(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The hpcx building block downloads and installs the Mellanox HPC-X component.

Parameters

  • buildlabel The build label assigned by Mellanox to the tarball. For version 2.24 and later, the default value is the value of cuda parameter. For versions 2.17 through 2.23, the default value is cuda12. For version 2.16 the default value is cuda12-gdrcopy2-nccl2.18. For version 2.15 the default value is cuda12-gdrcopy2-nccl2.17. For version 2.14 the default value is cuda11-gdrcopy2-nccl2.16. For versions 2.12 and 2.13 the default value is cuda11-gdrcopy2-nccl2.12. For versions 2.10 and 2.11 the default value is cuda11-gdrcopy2-nccl2.11. This value is ignored for HPC-X version version 2.9 and earlier.

  • cuda The CUDA label assigned by Mellanox to the tarball. This parameter is only recognized for version 2.24 and later. The default value is cuda13.

  • environment Boolean flag to specify whether the environment should be modified to include HPC-X. This option is only recognized if hpcxinit is False. The default is True.

  • hpcxinit Mellanox HPC-X provides an environment script (hpcx-init.sh) to setup the HPC-X environment. If this value is True, the bashrc is modified to automatically source this environment script. However, HPC-X is not automatically available to subsequent container image build steps; the environment is available when the container image is run. To set the HPC-X environment in subsequent build steps you can explicitly call source /usr/local/hpcx/hpcx-init.sh && hpcx_load in each build step. If this value is set to False, then the environment is set such that the environment is visible to both subsequent container image build steps and when the container image is run. However, the environment may differ slightly from that set by hpcx-init.sh. The default value is True.

  • inbox Boolean flag to specify whether to use Mellanox HPC-X built for Inbox OFED. If the value is True, use Inbox OFED. If the value is False, use Mellanox OFED. The default is False.

  • ldconfig Boolean flag to specify whether the Mellanox HPC-X library directories should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the HPC-X library directories. This value is ignored if hpcxinit is True. The default value is False.

  • mlnx_ofed The version of Mellanox OFED that should be matched. This value is ignored if Inbox OFED is selected, or for HPC-X 2.21 and later. The default value is 5 for HPC-X version 2.10 and later, and 5.2-2.2.0.0 for earlier HPC-X versions.

  • multi_thread Boolean flag to specify whether the multi-threaded version of Mellanox HPC-X should be used. The default is False.

  • ofedlabel The Mellanox OFED label assigned by Mellanox to the tarball. For version 2.21 and later, the default value is gcc-doca_ofed. For version 2.16 through 2.18, the default value is gcc-mlnx_ofed. For earlier versions, the default value is gcc-MLNX_OFED_LINUX-5. This value is ignored if inbox is True.

  • oslabel The Linux distribution label assigned by Mellanox to the tarball. For Ubuntu, the default value is ubuntu16.04 for Ubuntu 16.04, ubuntu18.04 for Ubuntu 18.04, ubuntu20.04 for Ubuntu 20.04, ubuntu22.04 for Ubuntu 22.04, and ubuntu24.04 for Ubuntu 24.04. For HPC-X version 2.10 and later and RHEL-based Linux distributions, the default value is redhat7 for version 7, redhat8 for version 8, and redhat9 for version 9. For HPC-X version 2.9 and earlier and RHEL-based Linux distributions, the default value is redhat7.6 for version 7 and redhat8.0 for version 8.

  • ospackages List of OS packages to install prior to installing Mellanox HPC-X. For Ubuntu, the default values are bzip2, libnuma1, openssh-client, tar, and wget. For RHEL-based distributions the default values are bzip2, numactl-libs, openssh-clients, tar, and wget.

  • prefix The top level installation location. The default value is /usr/local/hpcx.

  • version The version of Mellanox HPC-X to install. The default value is 2.24.1.

Examples

hpcx(prefix='/usr/local/hpcx', version='2.16')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method hpcx.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

h = hpcx(...)
Stage0 += h
Stage1 += h.runtime()

class intel_mpi(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.wget

The intel_mpi building block downloads and installs the Intel MPI Library.

You must agree to the Intel End User License Agreement to use this building block.

Parameters

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH, PATH, and others) should be modified to include Intel MPI. mpivars has precedence. The default is True.

  • eula By setting this value to True, you agree to the Intel End User License Agreement. The default value is False.

  • mpivars Intel MPI provides an environment script (mpivars.sh) to setup the Intel MPI environment. If this value is True, the bashrc is modified to automatically source this environment script. However, the Intel MPI environment is not automatically available to subsequent container image build steps; the environment is available when the container image is run. To set the Intel MPI environment in subsequent build steps you can explicitly call source /opt/intel/compilers_and_libraries/linux/mpi/intel64/bin/mpivars.sh intel64 in each build step. If this value is to set False, then the environment is set such that the environment is visible to both subsequent container image build steps and when the container image is run. However, the environment may differ slightly from that set by mpivars.sh. The default value is True.

  • ospackages List of OS packages to install prior to installing Intel MPI. For Ubuntu, the default values are apt-transport-https, ca-certificates, gnupg, man-db, openssh-client, and wget. For RHEL-based Linux distributions, the default values are man-db and openssh-clients.

  • version The version of Intel MPI to install. The default value is 2019.6-088.

Examples

intel_mpi(eula=True, version='2018.3-051')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method intel_mpi.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

i = intel_mpi(...)
Stage0 += i
Stage1 += i.runtime()

class intel_psxe(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.rm, hpccm.templates.sed, hpccm.templates.tar

The intel_psxe building block installs Intel Parallel Studio XE.

You must agree to the Intel End User License Agreement to use this building block.

Parameters

  • components List of Intel Parallel Studio XE components to install. The default values is DEFAULTS. If only the Intel C++ and Fortran compilers are desired, then use intel-icc__x86_64 and intel-ifort__x86_64. Please note that the values are not consistent between versions; for a list of components, extract pset/mediaconfig.xml from the tarball and grep for Abbr.

  • daal Boolean flag to specify whether the Intel Data Analytics Acceleration Library environment should be configured when psxevars is False. This flag also controls whether to install the corresponding runtime in the runtime method. Note: this flag does not control whether the developer environment is installed; see components. The default is True.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH, PATH, and others) should be modified to include Intel Parallel Studio XE. psxevars has precedence. The default is True.

  • eula By setting this value to True, you agree to the Intel End User License Agreement. The default value is False.

  • icc Boolean flag to specify whether the Intel C++ Compiler environment should be configured when psxevars is False. This flag also controls whether to install the corresponding runtime in the runtime method. Note: this flag does not control whether the developer environment is installed; see components. The default is True.

  • ifort Boolean flag to specify whether the Intel Fortran Compiler environment should be configured when psxevars is False. This flag also controls whether to install the corresponding runtime in the runtime method. Note: this flag does not control whether the developer environment is installed; see components. The default is True.

  • ipp Boolean flag to specify whether the Intel Integrated Performance Primitives environment should be configured when psxevars is False. This flag also controls whether to install the corresponding runtime in the runtime method. Note: this flag does not control whether the developer environment is installed; see components. The default is True.

  • license The license to use to activate Intel Parallel Studio XE. If the string contains a @ the license is interpreted as a network license, e.g., 12345@lic-server. Otherwise, the string is interpreted as the path to the license file relative to the local build context. The default value is empty. While this value is not required, the installation is unlikely to be successful without a valid license.

  • mkl Boolean flag to specify whether the Intel Math Kernel Library environment should be configured when psxevars is False. This flag also controls whether to install the corresponding runtime in the runtime method. Note: this flag does not control whether the developer environment is installed; see components. The default is True.

  • mpi Boolean flag to specify whether the Intel MPI Library environment should be configured when psxevars is False. This flag also controls whether to install the corresponding runtime in the runtime method. Note: this flag does not control whether the developer environment is installed; see components. The default is True.

  • ospackages List of OS packages to install prior to installing Intel MPI. For Ubuntu, the default values are build-essential and cpio. For RHEL-based Linux distributions, the default values are gcc, gcc-c++, make, and which.

  • prefix The top level install location. The default value is /opt/intel.

  • psxevars Intel Parallel Studio XE provides an environment script (compilervars.sh) to setup the environment. If this value is True, the bashrc is modified to automatically source this environment script. However, the Intel runtime environment is not automatically available to subsequent container image build steps; the environment is available when the container image is run. To set the Intel Parallel Studio XE environment in subsequent build steps you can explicitly call source /opt/intel/compilers_and_libraries/linux/bin/compilervars.sh intel64 in each build step. If this value is to set False, then the environment is set such that the environment is visible to both subsequent container image build steps and when the container image is run. However, the environment may differ slightly from that set by compilervars.sh. This option will be used with the runtime method. The default value is True.

  • runtime_version The version of Intel Parallel Studio XE runtime to install via the runtime method. The runtime is installed using the intel_psxe_runtime building block. This value is passed as its version parameter. In general, the major version of the runtime should correspond to the tarball version. The default value is 2020.2-14.

  • tarball Path to the Intel Parallel Studio XE tarball relative to the local build context. The default value is empty. This parameter is required.

  • tbb Boolean flag to specify whether the Intel Threading Building Blocks environment should be configured when psxevars is False. This flag also controls whether to install the corresponding runtime in the runtime method. Note: this flag does not control whether the developer environment is installed; see components. The default is True.

Examples

intel_psxe(eula=True, license='XXXXXXXX.lic',
           tarball='parallel_studio_xe_2018_update1_professional_edition.tgz')
i = intel_psxe(...)
openmpi(..., toolchain=i.toolchain, ...)

Methods

  • runtime Install the runtime from a full build in a previous stage

method intel_psxe.runtime(_from='0')

Install the runtime from a full build in a previous stage

class intel_psxe_runtime(**kwargs)

Bases : bb_base, hpccm.templates.envvars

The intel_mpi building block downloads and installs the Intel Parallel Studio XE runtime.

You must agree to the Intel End User License Agreement to use this building block.

Note: this building block does not install development versions of the Intel software tools. Please see the intel_psxe, intel_mpi, or mkl building blocks for development environments.

Parameters

  • daal Boolean flag to specify whether the Intel Data Analytics Acceleration Library runtime should be installed. The default is True.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH, PATH, and others) should be modified to include Intel Parallel Studio XE runtime. psxevars has precedence. The default is True.

  • eula By setting this value to True, you agree to the Intel End User License Agreement. The default value is False.

  • icc Boolean flag to specify whether the Intel C++ Compiler runtime should be installed. The default is True.

  • ifort Boolean flag to specify whether the Intel Fortran Compiler runtime should be installed. The default is True.

  • ipp Boolean flag to specify whether the Intel Integrated Performance Primitives runtime should be installed. The default is True.

  • mkl Boolean flag to specify whether the Intel Math Kernel Library runtime should be installed. The default is True.

  • mpi Boolean flag to specify whether the Intel MPI Library runtime should be installed. The default is True.

  • psxevars Intel Parallel Studio XE provides an environment script (psxevars.sh) to setup the environment. If this value is True, the bashrc is modified to automatically source this environment script. However, the Intel runtime environment is not automatically available to subsequent container image build steps; the environment is available when the container image is run. To set the Intel Parallel Studio XE runtime environment in subsequent build steps you can explicitly call source /opt/intel/psxe_runtime/linux/bin/psxevars.sh intel64 in each build step. If this value is to set False, then the environment is set such that the environment is visible to both subsequent container image build steps and when the container image is run. However, the environment may differ slightly from that set by psxevars.sh. The default value is True.

  • ospackages List of OS packages to install prior to installing Intel MPI. For Ubuntu, the default values are apt-transport-https, ca-certificates, gcc, gnupg, man-db, openssh-client, and wget. For RHEL-based Linux distributions, the default values are man-db, openssh-clients, and which.

  • tbb Boolean flag to specify whether the Intel Threading Building Blocks runtime should be installed. The default is True.

  • version The version of the Intel Parallel Studio XE runtime to install. The default value is 2020.2-14.

Examples

intel_psxe_runtime(eula=True, version='2018.5-281')
intel_psxe_runtime(daal=False, eula=True, ipp=False, psxevars=False)

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method intel_psxe_runtime.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

i = intel_psxe_runtime(...)
Stage0 += i
Stage1 += i.runtime()

class julia(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The julia building block downloads and installs the Julia programming environment.

Parameters

  • cuda Boolean flag to specify whether the JuliaGPU packages should be installed. If True, the CUDAapi, CUDAdrv, CUDAnative, and CuArrays packages are installed. Note that the CUDAdrv package must be rebuilt when the container is running to align with the host CUDA driver. The default is False.

  • depot Path to the location of "user" Julia package depot. The default is an empty string, i.e., ~/.julia. The depot location needs to be writable by the user running the container.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include Julia. The default is True.

  • history Path to the Julia history file. The default value is an empty string, i.e., ~/.julia/logs/repl_history.jl. The history location needs to be writable by the user running the container.

  • ldconfig Boolean flag to specify whether the Julia library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the Julia library directory. The default value is False.

  • ospackages List of OS packages to install prior to building. The default values are tar and wget.

  • packages List of Julia packages to install. The default is an empty list.

  • prefix The top level installation location. The default value is /usr/local/julia.

  • version The version of Julia to install. The default value is 1.5.1.

Examples

julia(prefix='/usr/local/julia', version='1.3.1')
julia(depot='/tmp', history='/tmp/repl_history.jl')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method julia.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

j = julia(...)
Stage0 += j
Stage1 += j.runtime()

class knem(**kwargs)

Bases : bb_base, hpccm.templates.envvars

The knem building block install the headers from the KNEM component.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • environment Boolean flag to specify whether the environment (CPATH) should be modified to include knem. The default is True.

  • ospackages List of OS packages to install prior to installing. The default values are ca-certificates and git.

  • prefix The top level install location. The default value is /usr/local/knem.

  • version The version of KNEM source to download. The default value is 1.1.4.

Examples

knem(prefix='/opt/knem/1.1.3', version='1.1.3')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method knem.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

k = knem(...)
Stage0 += k
Stage1 += k.runtime()

class kokkos(**kwargs)

Bases : bb_base, hpccm.templates.downloader, hpccm.templates.envvars

The kokkos building block downloads and installs the Kokkos component.

The CMake building block should be installed prior to this building block.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • arch List of target architectures to build. If set adds -DKokkos_ARCH_<value>=ON to the list of CMake options. The default value is VOLTA70, i.e., sm_70. If a CUDA aware build is not selected, then a non-default value should be used.

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • check Boolean flag to specify whether the build should be checked. If True, adds -DKokkos_ENABLE_TESTS=ON to the list of CMake options. The default is False.

  • cmake_opts List of options to pass to cmake. The default is -DCMAKE_BUILD_TYPE=RELEASE.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • cuda Flag to control whether a CUDA aware build is performed. If True, adds -DKokkos_ENABLE_CUDA=ON and -DCMAKE_CXX_COMPILER=$(pwd)/../bin/nvcc_wrapper to the list of CMake options. The default value is True.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include Kokkos. The default is True.

  • hwloc Flag to control whether a hwloc aware build is performed. If True, adds -DKokkos_ENABLE_HWLOC=ON to the list of CMake options. The default value is True.

  • ospackages List of OS packages to install prior to building. For Ubuntu, the default values are gzip, libhwloc-dev, make, tar, and wget. For RHEL-based Linux distributions the default values are gzip, hwloc-devel, make, tar, and wget.

  • prefix The top level installation location. The default value is /usr/local/kokkos.

  • repository The location of the git repository that should be used to build OpenMPI. If True, then use the default https://github.com/kokkos/kokkos.git repository. The default is empty, i.e., use the release package specified by version.

  • url The location of the tarball that should be used to build Kokkos. The default is empty, i.e., use the release package specified by version.

  • version The version of Kokkos source to download. The default value is 3.2.00.

Examples

kokkos(prefix='/opt/kokkos/3.1.01', version='3.1.01')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method kokkos.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

k = kokkos(...)
Stage0 += k
Stage1 += k.runtime()

class libsim(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.wget

The libsim building block configures, builds, and installs the VisIt Libsim component.

If GPU rendering will be used then a cudagl base image is recommended.

Parameters

  • build_opts List of VisIt build script options. The default values are --xdb and --server-components-only.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include Libsim. The default is True.

  • ldconfig Boolean flag to specify whether the Libsim library directories should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the Libsim library directories. The default value is False.

  • mpi Boolean flag to specify whether Libsim should be built with MPI support. VisIt uses MPI-1 routines that have been removed from the MPI standard; the MPI library may need to be built with special compatibility options, e.g., --enable-mpi1-compatibility for OpenMPI. If True, then the build script options --parallel and --no-icet are added and the environment variable PAR_COMPILER is set to mpicc. If True, a MPI library building block should be installed prior this building block. The default value is True.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are gzip, make, patch, tar, wget, zlib1g-dev, libxt-dev, libgl1-mesa-dev, and libglu1-mesa-dev. For RHEL-based Linux distributions, the default values are gzip, make, patch, tar, wget, which, zlib-devel, libXt-devel, libglvnd-devel, mesa-libGL-devel, and mesa-libGLU-devel.

  • prefix The top level install location. The default value is /usr/local/visit.

  • system_cmake Boolean flag to specify whether the system provided cmake should be used. If False, then the build script downloads a private copy of cmake. If True, then the build script option --system-cmake is added. If True, then the cmake building block should be installed prior to this building block. The default is True.

  • system_python Boolean flag to specify whether the system provided python should be used. If False, then the build script downloads a private copy of python. If True, then the build script option --system-python is added. If True, then the Python building block should be installed with development libraries prior to this building block. The default is True.

  • thirdparty Boolean flag to specify whether third-party components included by the build script should be retained. If True, then the build script option --thirdparty-path is added and set to <prefix>/third-party. The default is True.

  • version The version of Libsim source to download. The default value is 2.13.3.

Examples

libsim(prefix='/opt/libsim', version='2.13.3')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method libsim.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

l = libsim(...)
Stage0 += l
Stage1 += l.runtime()

class llvm(**kwargs)

Bases : bb_base, hpccm.templates.envvars

The llvm building block installs the LLVM compilers (clang and clang++) from the upstream Linux distribution.

As a side effect, a toolchain is created containing the LLVM compilers. A toolchain can be passed to other operations that want to build using the LLVM compilers.

Parameters

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH and PATH) should be modified to include the LLVM compilers when necessary. The default is True.

  • extra_tools Boolean flag to specify whether to also install clang-format and clang-tidy. The default is False.

  • openmp Boolean flag to specify whether to also install OpenMP support. The default is True.

  • toolset Boolean flag to specify whether to also install the full LLVM toolset. The default is False.

  • upstream Boolean flag to specify whether to use the upstream LLVM packages. This option is ignored if the base image is not Ubuntu-based.

  • version The version of the LLVM compilers to install. Note that the version refers to the Linux distribution packaging, not the actual compiler version. For RHEL-based 8.x Linux distributions, the version is ignored. The default is an empty value.

Examples

llvm()
llvm(version='7')
llvm(upstream=True, version='11')
l = llvm()
openmpi(..., toolchain=l.toolchain, ...)

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method llvm.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

l = llvm(...)
Stage0 += l
Stage1 += l.runtime()

class magma(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The magma building block configures, builds, and installs the MAGMA component.

The CMake building block should be installed prior to this building block.

Either the MKL or OpenBLAS building block should also be installed.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • cmake_opts List of options to pass to cmake. The default value is an empty list.

  • gpu_target List of GPU architectures to compile. The default values are Pascal, Volta, and Turing.

  • ospackages List of OS packages to install prior to configuring and building. The default values are tar and wget.

  • prefix The top level install location. The default value is /usr/local/magma.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of MAGMA source to download. The default value is 2.5.3.

Examples

magma(prefix='/opt/magma', version='2.5.3')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method magma.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

m = magma(...)
Stage0 += m
Stage1 += m.runtime()

class mkl(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.wget

The mkl building block downloads and installs the Intel Math Kernel Library.

You must agree to the Intel End User License Agreement to use this building block.

Parameters

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH, PATH, and other variables) should be modified to include MKL. The default is True.

  • eula By setting this value to True, you agree to the Intel End User License Agreement. The default value is False.

  • mklvars MKL provides an environment script (mklvars.sh) to setup the MKL environment. If this value is True, the bashrc is modified to automatically source this environment script. However, the MKL environment is not automatically available to subsequent container image build steps; the environment is available when the container image is run. To set the MKL environment in subsequent build steps you can explicitly call source /opt/intel/mkl/bin/mklvars.sh intel64 in each build step. If this value is to set False, then the environment is set such that the environment is visible to both subsequent container image build steps and when the container image is run. However, the environment may differ slightly from that set by mklvars.sh. The default value is True.

  • ospackages List of OS packages to install prior to installing MKL. For Ubuntu, the default values are apt-transport-https, ca-certificates, gnupg, and wget. For RHEL-based Linux distributions, the default is an empty list.

  • version The version of MKL to install. The default value is 2020.0-088.

Examples

mkl(eula=True, version='2018.3-051')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method mkl.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

m = mkl(...)
Stage0 += m
Stage1 += m.runtime()

class mlnx_ofed(**kwargs)

Bases : bb_base, hpccm.templates.annotate, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The mlnx_ofed building block downloads and installs the Mellanox OpenFabrics Enterprise Distribution for Linux.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • oslabel The Linux distribution label assigned by Mellanox to the tarball. For Ubuntu, the default value is ubuntu16.04. For RHEL-based Linux distributions, the default value is rhel7.2 for x86_64 processors and rhel7.6alternate for aarch64 processors.

  • ospackages List of OS packages to install prior to installing OFED. For Ubuntu, the default values are findutils, libnl-3-200, libnl-route-3-200, libnuma1, and wget. For RHEL-based 7.x distributions, the default values are findutils, libnl, libnl3, numactl-libs, and wget. For RHEL-based 8.x distributions, the default values are findutils, libnl3, numactl-libs, and wget.

  • packages List of packages to install from Mellanox OFED. For version 5.0 and later on Ubuntu, ibverbs-providers, ibverbs-utils libibmad-dev, libibmad5, libibumad3, libibumad-dev, libibverbs-dev libibverbs1, librdmacm-dev, and librdmacm1. For earlier versions on Ubuntu, the default values are libibverbs1, libibverbs-dev, libibmad, libibmad-devel, libibumad, libibumad-devel, libmlx4-1, libmlx4-dev, libmlx5-1, libmlx5-dev, librdmacm1, librdmacm-dev, and ibverbs-utils. For version 5.0 and later on RHEL-based Linux distributions, the default values are libibumad, libibverbs, libibverbs-utils, librdmacm, rdma-core, and rdma-core-devel. For earlier versions on RHEL-based Linux distributions, the default values are libibverbs, libibverbs-devel, libibverbs-utils, libibmad, libibmad-devel, libibumad, libibumad-devel, libmlx4, libmlx4-devel, libmlx5, libmlx5-devel, librdmacm, and librdmacm-devel.

  • prefix The top level install location. Instead of installing the packages via the package manager, they will be extracted to this location. This option is useful if multiple versions of Mellanox OFED need to be installed. The environment must be manually configured to recognize the Mellanox OFED location, e.g., in the container entry point. The default value is empty, i.e., install via the package manager to the standard system locations.

  • version The version of Mellanox OFED to download. The default value is 5.6-2.0.9.0.

Examples

mlnx_ofed(version='4.2-1.0.0.0')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method mlnx_ofed.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

m = mlnx_ofed(...)
Stage0 += m
Stage1 += m.runtime()

class mpich(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The mpich building block configures, builds, and installs the MPICH component.

As a side effect, a toolchain is created containing the MPI compiler wrappers. The tool can be passed to other operations that want to build using the MPI compiler wrappers.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the make check and make testing steps should be performed. The default is False.

  • configure_opts List of options to pass to configure. The default is an empty list.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include MPICH. The default is True.

  • ldconfig Boolean flag to specify whether the MPICH library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the MPICH library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are file, gzip, make, openssh-client, perl, tar, and wget. For RHEL-based Linux distributions, the default values are file, gzip, make, openssh-clients, perl, tar, and wget.

  • prefix The top level install location. The default value is /usr/local/mpich.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of MPICH source to download. The default value is 3.3.2.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

mpich(prefix='/opt/mpich/3.3', version='3.3')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method mpich.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

m = mpich(...)
Stage0 += m
Stage1 += m.runtime()

class multi_ofed(**kwargs)

Bases : bb_base, hpccm.templates.annotate

The multi_ofed building block downloads and installs multiple versions of the OpenFabrics Enterprise Distribution (OFED). Please refer to the mlnx_ofed and ofed building blocks for more information.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • inbox Boolean flag to specify whether to install the 'inbox' OFED distributed by the Linux distribution. The default is True.

  • mlnx_oslabel The Linux distribution label assigned by Mellanox to the tarball. Please see the corresponding mlnx_ofed parameter for more information.

  • mlnx_packages List of packages to install from Mellanox OFED. Please see the corresponding mlnx_ofed parameter for more information.

  • mlnx_versions A list of Mellanox OpenFabrics Enterprise Distribution for Linux versions to install. The default values are 3.4-2.0.0.0, 4.0-2.0.0.1, 4.1-1.0.2.0, 4.2-1.2.0.0, 4.3-1.0.1.0, 4.4-1.0.0.0, 4.5-1.0.1.0, 4.6-1.0.1.1, 4.7-3.2.9.0, 5.0-2.1.8.0, and 5.1-2.3.7.1.

  • ospackages List of OS packages to install prior to installing OFED. For Ubuntu, the default values are libnl-3-200, libnl-route-3-200, and libnuma1. For RHEL-based Linux distributions, the default values are libnl, libnl3, and numactl-libs.

  • prefix The top level install location. The OFED packages will be extracted to this location as subdirectories named for the respective Mellanox OFED version, or inbox for the 'inbox' OFED. The environment must be manually configured to recognize the desired OFED location, e.g., in the container entry point. The default value is /usr/local/ofed.

Examples

multi_ofed(inbox=True, mlnx_versions=['4.5-1.0.1.0', '4.6-1.0.1.1'],
           prefix='/usr/local/ofed')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method multi_ofed.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

class mvapich2_gdr(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.wget

The mvapich2_gdr building blocks installs the MVAPICH2-GDR component. Depending on the parameters, the package will be downloaded from the web (default) or copied from the local build context.

MVAPICH2-GDR is distributed as a binary package, so certain dependencies need to be met and only certain combinations of recipe components are supported; please refer to the MVAPICH2-GDR documentation for more information.

The GNU compiler or PGI compiler building blocks should be installed prior to this building block.

The Mellanox OFED building block should be installed prior to this building block.

The gdrcopy building block should be installed prior to this building block.

As a side effect, a toolchain is created containing the MPI compiler wrappers. The toolchain can be passed to other operations that want to build using the MPI compiler wrappers.

Note: Using MVAPICH2-GDR on non-RHEL-based Linux distributions has several issues, including compiler version mismatches and libnuma incompatibilities.

Parameters

  • arch The processor architecture of the MVAPICH2-GDR package. The default value is set automatically based on the processor architecture of the base image.

  • cuda_version The version of CUDA the MVAPICH2-GDR package was built against. The version string format is X.Y. The version should match the version of CUDA provided by the base image. This value is ignored if package is set. The default value is 10.2.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include MVAPICH2-GDR. The default is True.

  • gnu Boolean flag to specify whether a GNU build should be used. The default value is True.

  • ldconfig Boolean flag to specify whether the MVAPICH2-GDR library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the MVAPICH2-GDR library directory. The default value is False.

  • mlnx_ofed_version The version of Mellanox OFED the MVAPICH2-GDR package was built against. The version string format is X.Y. The version should match the version of Mellanox OFED installed by the mlnx_ofed building block. This value is ignored if package is set. The default value is 4.7.

  • ospackages List of OS packages to install prior to installation. For Ubuntu, the default values are cpio, libnuma1, openssh-client, rpm2cpio and wget, plus libgfortran3 if a GNU compiled package is selected. For RHEL-based Linux distributions, the default values are libpciaccess, numactl-libs, openssh-clients, and wget, plus libgfortran if a GNU compiled package is selected.

  • package Specify the package name to download. The package should correspond to the other recipe components (e.g., compiler version, CUDA version, Mellanox OFED version). If specified, this option overrides all other building block options (e.g., compiler family, compiler version, CUDA version, Mellanox OFED version, MVAPICH2-GDR version).

  • pgi Boolean flag to specify whether a PGI build should be used. The default value is False.

  • release The release of MVAPICH2-GDR to download. The value is ignored is package is set. The default value is 1.

  • version The version of MVAPICH2-GDR to download. The value is ignored if package is set. The default value is 2.3.4. Due to differences in the packaging scheme, versions prior to 2.3 are not supported.

Examples

mvapich2_gdr(version='2.3.1')
mvapich2_gdr(package='mvapich2-gdr-mcast.cuda10.0.mofed4.3.gnu4.8.5-2.3-1.el7.x86_64.rpm')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method mvapich2_gdr.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

m = mvapich2_gdr(...)
Stage0 += m
Stage1 += m.runtime()

class mvapich2(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.sed

The mvapich2 building block configures, builds, and installs the MVAPICH2 component. Depending on the parameters, the source will be downloaded from the web (default) or copied from a source directory in the local build context.

An InfiniBand building block (OFED or Mellanox OFED) should be installed prior to this building block.

As a side effect, a toolchain is created containing the MPI compiler wrappers. The tool can be passed to other operations that want to build using the MPI compiler wrappers.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • configure_opts List of options to pass to configure. The default values are --disable-mcast.

  • cuda Boolean flag to control whether a CUDA aware build is performed. If True, adds --enable-cuda --with-cuda to the list of configure options, otherwise adds --disable-cuda. If the toolchain specifies CUDA_HOME, then that path is used, otherwise /usr/local/cuda is used for the path. The default value is True.

  • directory Path to the unpackaged source directory relative to the local build context. The default value is empty. If this is defined, the source in the local build context will be used rather than downloading the source from the web.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include MVAPICH2. The default is True.

  • gpu_arch The GPU architecture to use. Older versions of MVAPICH2 (2.3b and previous) were hard-coded to use "sm_20". This option has no effect on more recent MVAPICH2 versions. The default value is to use the MVAPICH2 default.

  • ldconfig Boolean flag to specify whether the MVAPICH2 library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the MVAPICH2 library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are byacc, file, flex, make, openssh-client, and wget. For RHEL-based Linux distributions, the default values are byacc, file, flex, make, openssh-clients, and wget.

  • prefix The top level install location. The default value is /usr/local/mvapich2.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of MVAPICH2 source to download. This value is ignored if directory is set. The default value is 2.3.4.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

mvapich2(cuda=False, prefix='/opt/mvapich2/2.3a', version='2.3a')
mvapich2(directory='sources/mvapich2-2.3b')
n = nvhpc(eula=True)
mvapich2(toolchain=n.toolchain)
mvapich2(configure_opts=['--disable-fortran', '--disable-mcast'])

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method mvapich2.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

m = mvapich2(...)
Stage0 += m
Stage1 += m.runtime()

class nccl(**kwargs)

Bases : bb_base, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig

The nccl building block installs the NCCL component.

Parameters

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • build Boolean flag to specify whether NCCL should be built from source. The default value is False.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • cuda Flag to specify the CUDA version of the package to download. The default is 13.2. This option is ignored if build is True.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, LIBRARY_PATH, and PATH) should be modified to include NCCL. The default is True. This option is ignored if build is False.

  • make_variables Dictionary of environment variables and values to set when building NCCL. The default is an empty dictionary. This option is ignored if build is False.

  • ospackages List of OS packages to install prior to building. The default values are make and wget.

  • prefix The top level install location. The default value is /usr/local/nccl. This option is ignored if build is False.

  • repository The location of the git repository that should be used to build NCCL. If True, then use the default https://github.com/NVIDIA/nccl.git repository. The default is empty, i.e., use the release package specified by version.

  • version The version of NCCL to install. The default value is 2.30.4-1.

Examples

nccl(cuda='11.0', version='2.7.6-1')
nccl(build=True, version='2.7.6-1')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method nccl.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

n = nccl(...)
Stage0 += n
Stage1 += n.runtime()

class netcdf(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The netcdf building block downloads, configures, builds, and installs the NetCDF component.

The HDF5 building block should be installed prior to this building block.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • configure_opts List of options to pass to configure. The default value is an empty list.

  • cxx Boolean flag to specify whether the NetCDF C++ library should be installed. The default is True.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, LIBRARY_PATH and PATH) should be modified to include NetCDF. The default is True.

  • fortran Boolean flag to specify whether the NetCDF Fortran library should be installed. The default is True.

  • ldconfig Boolean flag to specify whether the NetCDF library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the NetCDF library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are ca-certificates, file, libcurl4-openssl-dev, libxml2-dev, m4, make, wget, and zlib1g-dev. For RHEL-based Linux distributions the default values are ca-certificates, file, libcurl-devel, libxml2-devel, m4, make, wget, and zlib-devel.

  • prefix The top level install location. The default location is /usr/local/netcdf.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of NetCDF to download. The default value is 4.7.4.

  • version_cxx The version of NetCDF C++ to download. The default value is 4.3.1.

  • version_fortran The version of NetCDF Fortran to download. The default value is 4.5.3.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

netcdf(prefix='/opt/netcdf/4.6.1', version='4.6.1')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method netcdf.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

n = netcdf(...)
Stage0 += n
Stage1 += n.runtime()

class nsight_compute(**kwargs)

Bases : bb_base, hpccm.templates.envvars

The nsight_compute building block downloads and installs the [NVIDIA Nsight Compute profiler]](https://developer.nvidia.com/nsight-compute).

Parameters

  • eula Required, by setting this value to True, you agree to the Nsight Compute End User License Agreement that is displayed when running the installer interactively. The default value is False.

  • ospackages List of OS packages to install prior to building. When using a runfile, the default values are perl for Ubuntu and perl and perl-Env for RHEL-based Linux distributions. Otherwise, the default values are apt-transport-https, ca-certificates, gnupg, and wget for Ubuntu and an empty list for RHEL-based Linux distributions.

  • prefix The top level install prefix. The default value is /usr/local/NVIDIA-Nsight-Compute. This parameter is ignored unless runfile is set.

  • runfile Path or URL to NSight Compute's .run file relative to the local build context. The default value is empty.

  • version the version of Nsight Compute to install. Note when runfile is set this parameter is ignored. The default value is 2026.2.1.

Examples

nsight_compute(version='2020.4.0')
nsight_compute(eula=True, runfile='nsight-compute-linux-2020.2.0.18-28964561.run')

class nsight_systems(**kwargs)

Bases : bb_base

The nsight_systems building block downloads and installs the [NVIDIA Nsight Systems profiler]](https://developer.nvidia.com/nsight-systems).

Parameters

  • cli Boolean flag to specify whether the command line only (CLI) package should be installed. The default is True.

  • version The version of Nsight Systems to install. The default value is 2026.4.1.

Examples

nsight_systems(version='2020.5.1')

class nvhpc(**kwargs)

Bases : bb_base, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.rm

The nvhpc building block downloads and installs the NVIDIA HPC SDK. By default, the NVIDIA HPC SDK is installed from a package repository. Alternatively the tar package can be downloaded by specifying the tarball parameter, or a local tar package may used instead by specifying the package parameter.

You must agree to the NVIDIA HPC SDK End-User License Agreement to use this building block.

As a side effect, a toolchain is created containing the NVIDIA compilers. The tool can be passed to other operations that want to build using the NVIDIA compilers.

Parameters

  • cuda The default CUDA version to configure. The default is an empty value, i.e., use the latest version supported by the NVIDIA HPC SDK. This value is ignored if installing from the package repository.

  • cuda_multi Boolean flag to specify whether the NVIDIA HPC SDK support for multiple CUDA versions should be installed. The default value is True.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, MANPATH, and PATH) should be modified to include the NVIDIA HPC SDK. The default is True.

  • eula By setting this value to True, you agree to the NVIDIA HPC SDK End-User License Agreement. The default value is False.

  • extended_environment Boolean flag to specify whether an extended set of environment variables should be defined. If True, the following environment variables CC, CPP, CXX, F77, F90, and FC. If False, then only CPATH, LD_LIBRARY_PATH, MANPATH, and PATH will be extended to include the NVIDIA HPC SDK. The default value is False.

  • mpi Boolean flag to specify whether MPI should be included in the environment. The default value is True.

  • ospackages List of OS packages to install prior to installing the NVIDIA HPC SDK. The default value is ca-certificates, gnupg, and wget for Ubuntu, and ca-certificates for RHEL-based Linux distributions. If not installing from the package repository, then for Ubuntu, the default values are bc, debianutils, gcc, g++, gfortran, libatomic1, libnuma1, openssh-client, and wget, and for RHEL-based Linux distributions, the default values are bc, gcc, gcc-c++, gcc-gfortran, libatomic, numactl-libs, openssh-clients, wget, and which.

  • package Path to the NVIDIA HPC SDK tar package file relative to the local build context. The default value is empty.

  • prefix The top level install prefix. The default value is /opt/nvidia/hpc_sdk. This value is ignored when installing from the package repository.

  • redist The list of redistributable files to copy into the runtime stage. The paths are relative to the REDIST directory and wildcards are supported. The default is an empty list.

  • tarball Boolean flag to specify whether the NVIDIA HPC SDK should be installed by downloading the tar package file. If False, install from the package repository. The default is False.

  • toolchain The toolchain object to be used to configure the HPC SDK with a specific GNU toolchain. The default is empty, i.e., use the default GNU toolchain.

  • url The location of the package that should be installed. The default value is https://developer.download.nvidia.com/hpc-sdk/nvhpc_X_Y_Z_cuda_multi.tar.gz, where X,Y, andZ` are the year, version, and architecture whose values are automatically determined.

  • version The version of the HPC SDK to use. Note when package is set the version is determined automatically from the package file name. The default value is 25.11.

Examples

nvhpc(eula=True)
nvhpc(eula=True, tarball=True)
nvhpc(eula=True,
      url='https://developer.download.nvidia.com/hpc-sdk/nvhpc_2020_207_Linux_x86_64_cuda_11.0.tar.gz')
nvhpc(eula=True,
      package='nvhpc_2020_207_Linux_x86_64_cuda_multi.tar.gz',
      redist=['compilers/lib/*'])
n = nvhpc(eula=True, ...)
openmpi(..., toolchain=n.toolchain, ...)

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method nvhpc.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

n = nvhpc(redist=[...], ...)
Stage0 += n
Stage1 += n.runtime()

class nvshmem(**kwargs)

Bases : bb_base, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig, hpccm.templates.rm, hpccm.templates.tar

The nvshmem building block builds and installs the NVSHMEM component. CMake version 3.19 or later is required and must be installed separately.

Parameters

  • build_examples Boolean flag to specify whether the NVSHMEM examples should be built. The default is False.

  • build_packages Boolean flag to specify whether the RPM and deb packages should be built. The default is False.

  • cmake_opts List of additional options to pass to cmake. The default value is an empty list.

  • cuda Flag to specify the path to the CUDA installation. The default is /usr/local/cuda.

  • environment Boolean flag to specify whether the environment (CPATH, LIBRARY_PATH, and PATH) should be modified to include NVSHMEM. The default is True.

  • gdrcopy Flag to specify the path to the GDRCOPY installation. The default is empty.

  • ldconfig Boolean flag to specify whether the NVSHMEM library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the NVSHMEM library directory. The default value is False.

  • mpi Flag to enable MPI support. If True, enables MPI and relies on CMake's FindMPI to locate the installation. If a string, uses the value as the MPI installation path (MPI_HOME). If False, MPI support is explicitly disabled. The default is True, matching the upstream NVSHMEM CMake default.

  • ospackages List of OS packages to install prior to building. The default values are make and wget.

  • prefix The top level install location. The default value is /usr/local/nvshmem.

  • shmem Flag to specify the path to the SHMEM installation. The default is empty, i.e., do not build NVSHMEM with SHMEM support.

  • version The version of NVSHMEM source to download. The default value is 3.7.2-0.

Examples

nvshmem(mpi='/usr/local/nvshmem', version='3.7.2-0')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method nvshmem.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

n = nvshmem(...)
Stage0 += n
Stage1 += n.runtime()

class ofed(**kwargs)

Bases : bb_base

The ofed building block installs the OpenFabrics Enterprise Distribution packages that are part of the Linux distribution.

For Ubuntu 16.04, the following packages are installed

dapl2-utils, ibutils, ibverbs-utils, infiniband-diags, libdapl2, libdapl-dev, libibcm1, libibcm-dev, libibmad5, libibmad-dev, libibverbs1, libibverbs-dev, libmlx4-1, libmlx4-dev, libmlx5-1, libmlx5-dev, librdmacm1, librdmacm-dev, and rdmacm-utils. For Ubuntu 16.04 and aarch64 processors, the dapl2-utils, libdapl2, libdapl-dev, libibcm1 and libibcm-dev packages are not installed because they are not available.

For Ubuntu 18.04 and later, the following packages are installed

dapl2-utils, ibutils, ibverbs-providers, ibverbs-utils, infiniband-diags, libdapl2, libdapl-dev, libibmad5, libibmad-dev, libibverbs1, libibverbs-dev, librdmacm1, librdmacm-dev, and rdmacm-utils.

Parameters

  • prefix The top level install location. Install of installing the packages via the package manager, they will be extracted to this location. This option is useful if multiple versions of OFED need to be installed. The environment must be manually configured to recognize the OFED location, e.g., in the container entry point. The default value is empty, i.e., install via the package manager to the standard system locations.

Examples

ofed()

For RHEL-based 7.x distributions, the following packages are installed: dapl, dapl-devel, ibutils, libibcm, libibmad, libibmad-devel, libmlx5, libibumad, libibverbs, libibverbs-utils, librdmacm, rdma-core, and rdma-core-devel.

For RHEL-based 8.x distributions and later, the following packages are installed: libibmad, libibmad-devel, libmlx5, libibumad, libibverbs, libibverbs-utils, librdmacm, rdma-core, and rdma-core-devel.

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method ofed.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

o = ofed(...)
Stage0 += o
Stage1 += o.runtime()

class openblas(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The openblas building block builds and installs the OpenBLAS component.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include OpenBLAS. The default is True.

  • ldconfig Boolean flag to specify whether the OpenBLAS library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the OpenBLAS library directory. The default value is False.

  • make_opts List of options to pass to make. For aarch64 processors, the default values are TARGET=ARMV8 and USE_OPENMP=1. For x86_64 processors, the default value is USE_OPENMP=1.

  • ospackages List of OS packages to install prior to building. The default values are make, perl, tar, and wget.

  • prefix The top level installation location. The default value is /usr/local/openblas.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • version The version of OpenBLAS source to download. The default value is 0.3.21.

Examples

openblas(prefix='/opt/openblas/0.3.1', version='0.3.1')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method openblas.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

o = openblas(...)
Stage0 += o
Stage1 += o.runtime()

class openmpi(**kwargs)

Bases : bb_base, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig

The openmpi building block configures, builds, and installs the OpenMPI component.

As a side effect, a toolchain is created containing the MPI compiler wrappers. The tool can be passed to other operations that want to build using the MPI compiler wrappers.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • configure_opts List of options to pass to configure. The default values are --disable-getpwuid and --enable-orterun-prefix-by-default.

  • cuda Boolean flag to control whether a CUDA aware build is performed. If True, adds --with-cuda to the list of configure options, otherwise adds --without-cuda. If the toolchain specifies CUDA_HOME, then that path is used. The default value is True.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH and PATH) should be modified to include OpenMPI. The default is True.

  • infiniband Boolean flag to control whether InfiniBand capabilities are included. If True, adds --with-verbs to the list of configure options, otherwise adds --without-verbs. The default value is True.

  • ldconfig Boolean flag to specify whether the OpenMPI library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the OpenMPI library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are bzip2, file, hwloc, libnuma-dev, make, openssh-client, perl, tar, and wget. For RHEL-based Linux distributions, the default values are bzip2, file, hwloc, make, numactl-devl, openssh-clients, perl, tar, and wget. If the repository parameter is set, then autoconf, automake, ca-certificates, git, and libtool are also included.

  • pmi Flag to control whether PMI is used by the build. If True, adds --with-pmi to the list of configure options. If a string, uses the value of the string as the PMI path, e.g., --with-pmi=/usr/local/slurm-pmi2. If False, does nothing. The default is False.

  • pmix Flag to control whether PMIX is used by the build. If True, adds --with-pmix to the list of configure options. If a string, uses the value of the string as the PMIX path, e.g., --with-pmix=/usr/local/pmix. If False, does nothing. The default is False.

  • prefix The top level install location. The default value is /usr/local/openmpi.

  • repository The location of the git repository that should be used to build OpenMPI. If True, then use the default https://github.com/open-mpi/ompi.git repository. The default is empty, i.e., use the release package specified by version.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • ucx Flag to control whether UCX is used by the build. If True, adds --with-ucx to the list of configure options. If a string, uses the value of the string as the UCX path, e.g., --with-ucx=/path/to/ucx. If False, adds --without-ucx to the list of configure options. The default is False.

  • url The location of the tarball that should be used to build OpenMPI. The default is empty, i.e., use the release package specified by version.

  • version The version of OpenMPI source to download. This value is ignored if directory is set. The default value is 4.0.5.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

openmpi(cuda=False, infiniband=False, prefix='/opt/openmpi/2.1.2',
    version='2.1.2')
openmpi(repository='https://github.com/open-mpi/ompi.git')
n = nvhpc(eula=True)
openmpi(toolchain=n.toolchain)
openmpi(configure_opts=['--disable-getpwuid', '--with-slurm'],
        ospackages=['file', 'hwloc', 'libslurm-dev'])
openmpi(pmi='/usr/local/slurm-pmi2', pmix='internal')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method openmpi.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

o = openmpi(...)
Stage0 += o
Stage1 += o.runtime()

class packages(**kwargs)

Bases : bb_base

The packages building block specifies the set of operating system packages to install. Based on the Linux distribution, the building block invokes either apt-get (Ubuntu) or yum (RHEL-based).

This building block is preferred over directly using the apt_get or yum building blocks.

Parameters

  • apt A list of Debian packages to install. The default is an empty list.

  • aptitude Boolean flag to specify whether aptitude should be used instead of apt-get. The default is False.

  • apt_keys A list of GPG keys to add. The default is an empty list.

  • apt_ppas A list of personal package archives to add. The default is an empty list.

  • apt_repositories A list of apt repositories to add. The default is an empty list.

  • download Boolean flag to specify whether to download the deb / rpm packages instead of installing them. The default is False.

  • download_directory The deb package download location. This parameter is ignored if download is False. The default value is /var/tmp/packages_download.

  • epel Boolean flag to specify whether to enable the Extra Packages for Enterprise Linux (EPEL) repository. The default is False. This parameter is ignored if the Linux distribution is not RHEL-based.

  • extract Location where the downloaded packages should be extracted. Note, this extracts and does not install the packages, i.e., the package manager is bypassed. After the downloaded packages are extracted they are deleted. This parameter is ignored if download is False. If empty, then the downloaded packages are not extracted. The default value is an empty string.

  • force_add_repo Boolean flag to specify whether adding a repository should be considered successful no matter the actual result. This parameter is only valid for yum repositories. The default value is False.

  • ospackages A list of packages to install. The list is used for both Ubuntu and RHEL-based Linux distributions, therefore only packages with the consistent names across Linux distributions should be specified. This parameter is ignored if apt or yum is specified. The default value is an empty list.

  • powertools Boolean flag to specify whether to enable the PowerTools repository. The default is False. This parameter is ignored if the Linux distribution is not RHEL-based.

  • release_stream Boolean flag to specify whether to enable the CentOS release stream repository. The default is False. This parameter is only recognized if the Linux distribution is RHEL-based and the version is 8.x.

  • scl Boolean flag to specify whether to enable the Software Collections (SCL) repository. The default is False. This parameter is only recognized if the Linux distribution is RHEL-based and the version is 7.x.

  • yum A list of RPM packages to install. The default value is an empty list.

  • yum4 Boolean flag to specify whether yum4 should be used instead of yum. The default is False. This parameter is only recognized if the CentOS version is 7.x.

  • yum_keys A list of GPG keys to import. The default is an empty list.

  • yum_repositories A list of yum repositories to add. The default is an empty list.

Examples

packages(ospackages=['make', 'wget'])
packages(apt=['zlib1g-dev'], yum=['zlib-devel'])
packages(apt=['python3'], yum=['python34'], epel=True)

class pgi(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.rm, hpccm.templates.tar, hpccm.templates.wget

The pgi building block installs the PGI compiler from a manually downloaded package.

Note: The NVIDIA HPC SDK has replaced the PGI compilers. The nvhpc building block should be used instead of this building block.

You must agree to the PGI End-User License Agreement to use this building block.

As a side effect, a toolchain is created containing the PGI compilers. The tool can be passed to other operations that want to build using the PGI compilers.

Parameters

  • environment Boolean flag to specify whether the environment (LD_LIBRARY_PATH, PATH, and potentially other variables) should be modified to include the PGI compiler. The default is True.

  • eula By setting this value to True, you agree to the PGI End-User License Agreement. The default value is False.

  • extended_environment Boolean flag to specify whether an extended set of environment variables should be defined. If True, the following environment variables will be defined: CC, CPP, CXX, F77, F90, FC, and MODULEPATH. In addition, if the PGI MPI component is selected then PGI_OPTL_INCLUDE_DIRS and PGI_OPTL_LIB_DIRS will also be defined and PATH and LD_LIBRARY_PATH will include the PGI MPI component. If False, then only PATH and LD_LIBRARY_PATH will be extended to include the PGI compiler. The default value is False.

  • mpi Boolean flag to specify whether the MPI component should be installed. If True, MPI will be installed. The default value is False.

  • ospackages List of OS packages to install prior to installing the PGI compiler. For Ubuntu, the default values are gcc, g++, libnuma1 and perl, and also wget (if downloading the PGI compiler rather than using a tarball in the local build context). For RHEL-based Linux distributions, the default values are gcc, gcc-c++, numactl-libs and perl, and also wget (if downloading the PGI compiler rather than using a tarball in the local build context).

  • prefix The top level install prefix. The default value is /opt/pgi.

  • system_cuda Boolean flag to specify whether the PGI compiler should use the system CUDA. If False, the version(s) of CUDA bundled with the PGI compiler will be installed. The default value is False.

  • tarball Path to the PGI compiler tarball relative to the local build context. The default value is empty. This parameter is required.

Examples

pgi(eula=True, tarball='pgilinux-2019-1910-x86_64.tar.gz')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method pgi.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

p = pgi(...)
Stage0 += p
Stage1 += p.runtime()

class pip(**kwargs)

Bases : bb_base, hpccm.templates.rm

The pip building block installs Python packages from PyPi.

Parameters

  • alternatives Boolean flag to specify whether to configure alternatives for python and pip. RHEL-based 8.x distributions do not setup python by default. The default is False.

  • args List of arguments to pass to pip. The default is --no-cache-dir.

  • ospackages List of OS packages to install prior to installing PyPi packages. For Ubuntu, the default values are python-pip, python-setuptools, and python-wheel for Python 2.x and python3-pip, python3-setuptools, and python3-wheel for Python 3.x. For RHEL-based distributions, the default values are python2-pip for Python 2.x and python3-pip for Python 3.x.

  • packages List of PyPi packages to install. The default is an empty list.

  • pip The name of the pip tool to use. The default is pip.

  • requirements Path to pip requirements file. The default is empty.

  • upgrade Boolean flag to control whether pip itself should be upgraded prior to installing any PyPi packages. The default is False.

  • install_args List of arguments to pass to pip install. The default is an empty list. Only applies to the packages parameter.

Examples

pip(packages=['hpccm'])
pip(packages=['hpccm'], pip='pip3')
pip(requirements='requirements.txt')

class pmix(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The pmix building block configures, builds, and installs the PMIX component.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • configure_opts List of options to pass to configure. The default is an empty list.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, and PATH) should be modified to include PMIX. The default is True.

  • ldconfig Boolean flag to specify whether the PMIX library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the PMIX library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are file, hwloc, libevent-dev, make, tar, and wget. For RHEL-based Linux distributions, the default values are file, hwloc, libevent-devel, make, tar, and wget.

  • prefix The top level install location. The default value is /usr/local/pmix.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.

  • version The version of PMIX source to download. The default value is 4.1.2.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

pmix(prefix='/opt/pmix/3.1.4', version='3.1.4')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method pmix.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

p = pmix(...)
Stage0 += p
Stage1 += p.runtime()

class pnetcdf(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The pnetcdf building block downloads, configures, builds, and installs the PnetCDF component.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • check Boolean flag to specify whether the make check step should be performed. The default is False.

  • configure_opts List of options to pass to configure. The default values are --enable-shared.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, LIBRARY_PATH, and PATH) should be modified to include PnetCDF. The default is True.

  • ldconfig Boolean flag to specify whether the PnetCDF library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the PnetCDF library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. The default values are file, m4, make, perl, tar, and wget.

  • prefix The top level install location. The default value is /usr/local/pnetcdf.

  • toolchain The toolchain object. A MPI compiler toolchain must be used. The default is to use the standard MPI compiler wrappers, e.g., CC=mpicc, CXX=mpicxx, etc.

  • version The version of PnetCDF source to download. The default value is 1.12.1.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

pnetcdf(prefix='/opt/pnetcdf/1.10.0', version='1.10.0')
ompi = openmpi(...)
pnetcdf(toolchain=ompi.toolchain, ...)

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method pnetcdf.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

p = pnetcdf(...)
Stage0 += p
Stage1 += p.runtime()

class python(**kwargs)

Bases : bb_base

The python building block installs Python from the upstream Linux distribution.

Parameters

  • alternatives Boolean flag to specify whether to configure alternatives for python and python-config (if devel is enabled). RHEL-based 8.x distributions do not setup python by default. The default is False.

  • devel Boolean flag to specify whether to also install the Python development headers and libraries. The default is False.

  • python2 Boolean flag to specify whether to install Python version 2. The default is True.

  • python3 Boolean flag to specify whether to install Python version 3. The default is True.

Examples

python()
python(python3=False)

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method python.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

p = python(...)
Stage0 += p
Stage1 += p.runtime()

class rdma_core(**kwargs)

Bases : bb_base, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig

The rdma_core building block configures, builds, and installs the RDMA Core component.

The CMake building block should be installed prior to this building block.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, LIBRARY_PATH, and PATH) should be modified to include RDMA Core. The default is True.

  • ldconfig Boolean flag to specify whether the RDMA Core library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the RDMA Core library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are libudev-dev, libnl-3-dev, libnl-route-3-dev, make, pkg-config, python3-docutils, pandoc, and wget. For RHEL-based Linux distributions, the default values are libnl3-devel, libudev-devel, make, pkgconfig, pandoc, python-docutils, and wget. If the repository parameter is set, then ca-certificates and git are also included.

  • prefix The top level install location. The default value is /usr/local/rdma-core.

  • repository The location of the git repository that should be used to build RDMA Core. If True, then use the default https://github.com/linux-rdma/rdma-core.git repository. The default is empty, i.e., use the release package specified by version.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.

  • url The location of the tarball that should be used to build RDMA Core. The default is empty, i.e., use the release package specified by version.

  • version The version of RDMA Core source to download. The default value is 31.2.

Examples

rdma_core(prefix='/opt/rdma-core/31.2', version='31.2')
rdma_core(repository='https://github.com/linux-rdma/rdma-core.git')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method rdma_core.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

r = rdma_core(...)
Stage0 += r
Stage1 += r.runtime()

class scif(**kwargs)

Bases : hpccm.base_object

The scif building blocks installs components using the Scientific Filesystem (SCI-F).

Other building blocks and / or primitives should be added to the scif building block using the += syntax.

If not generating a Singularity definition file, SCI-F should be installed using the pip building block prior to this building block.

If not generating a Singularity definition file, this module creates SCI-F recipe files in the current directory (see also the file parameter).

Parameters

  • _arguments Specify additional Dockerfile RUN arguments (Docker specific).

  • _env Boolean flag to specify whether the general container environment should be also be loaded when executing a SCI-F %appinstall block. The default is False (Singularity specific).

  • file The SCI-F recipe file name. The default value is the name parameter with the .scif suffix.

  • name The name to use to label the SCI-F application. This parameter is required.

  • _native Boolean flag to specify whether to use the native Singularity support for SCI-F when generating Singularity definition files. The default is True (Singularity specific).

Examples

pip(packages=['scif'])
s = scif(name='example')
s += openmpi(prefix='/scif/apps/example')
s += shell(commands=[...])

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method scif.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

The entire /scif directory is copied into the runtime stage on the first call. Subsequent calls do nothing.

Examples

s = scif(...)
Stage0 += s
Stage1 += s.runtime()

class sensei(**kwargs)

Bases : bb_base, hpccm.templates.git

The sensei building block configures, builds, and installs the SENSEI component.

The CMake building block should be installed prior to this building block.

In most cases, one or both of the Catalyst or Libsim building blocks should be installed.

If GPU rendering will be used then a cudagl base image is recommended.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • branch The branch of SENSEI to use. The default value is v2.1.1.

  • catalyst Flag to specify the location of the ParaView/Catalyst installation, e.g., /usr/local/catalyst. If set, then the Catalyst building block should be installed prior to this building block. The default value is empty.

  • cmake_opts List of options to pass to cmake. The default value is -DENABLE_SENSEI=ON.

  • libsim Flag to specify the location of the VisIt/Libsim installation, e.g., /usr/local/visit. If set, then the Libsim building block should be installed prior to this building block. The vtk option should also be set. The default value is empty.

  • miniapps Boolean flag to specify whether the SENSEI mini-apps should be built and installed. The default is False.

  • ospackages List of OS packages to install prior to configuring and building. The default values are ca-certificates, git, and make.

  • prefix The top level install location. The default value is /usr/local/sensei.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • vtk Flag to specify the location of the VTK installation. If libsim is defined, this option must be set to the Libsim VTK location, e.g., /usr/local/visit/third-party/vtk/6.1.0/linux-x86_64_gcc-5.4/lib/cmake/vtk-6.1. Note that the compiler version is embedded in the Libsim VTK path. The compiler version may differ depending on which base image is used; version 5.4 corresponds to Ubuntu 16.04. The default value is empty.

Examples

sensei(branch='v2.1.1', catalyst='/usr/local/catalyst',
       prefix='/opt/sensei')
sensei(libsim='/usr/local/visit',
       vtk='/usr/local/visit/third-party/vtk/6.1.0/linux-x86_64_gcc-5.4/lib/cmake/vtk-6.1')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method sensei.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

s = sensei(...)
Stage0 += s
Stage1 += s.runtime()

class slurm_pmi2(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The slurm_pmi2 building block configures, builds, and installs the PMI2 component from SLURM.

Note: this building block does not install SLURM itself.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • configure_opts List of options to pass to configure. The default is an empty list.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (CPATH and LD_LIBRARY_PATH) should be modified to include PMI2. The default is False.

  • ldconfig Boolean flag to specify whether the PMI2 library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the PMI2 library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. The default values are bzip2, file, make, perl, tar, and wget.

  • prefix The top level install location. The default value is /usr/local/slurm-pmi2.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.

  • version The version of SLURM source to download. The default value is 21.08.8.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

slurm_pmi2(prefix='/opt/pmi', version='20.11.9')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method slurm_pmi2.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

p = slurm_pmi2(...)
Stage0 += p
Stage1 += p.runtime()

class ucx(**kwargs)

Bases : bb_base, hpccm.templates.downloader, hpccm.templates.envvars, hpccm.templates.ldconfig

The ucx building block configures, builds, and installs the UCX component.

An InfiniBand building block (OFED or Mellanox OFED) should be installed prior to this building block. One or all of the gdrcopy, KNEM, and XPMEM building blocks should also be installed prior to this building block.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • branch The git branch to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the default branch for the repository.

  • commit The git commit to clone. Only recognized if the repository parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository.

  • configure_opts List of options to pass to configure. The default values are --enable-optimizations, --disable-logging, --disable-debug, --disable-assertions, --disable-params-check, and --disable-doxygen-doc.

  • cuda Flag to control whether a CUDA aware build is performed. If True, adds --with-cuda=/usr/local/cuda to the list of configure options. If a string, uses the value of the string as the CUDA path. If the toolchain specifies CUDA_HOME, then that path is used. If False, adds --without-cuda to the list of configure options. The default value is an empty string.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH, LIBRARY_PATH, and PATH) should be modified to include UCX. The default is True.

  • gdrcopy Flag to control whether gdrcopy is used by the build. If True, adds --with-gdrcopy to the list of configure options. If a string, uses the value of the string as the gdrcopy path, e.g., --with-gdrcopy=/path/to/gdrcopy. If False, adds --without-gdrcopy to the list of configure options. The default is an empty string, i.e., include neither --with-gdrcopy not --without-gdrcopy and let configure try to automatically detect whether gdrcopy is present or not.

  • knem Flag to control whether KNEM is used by the build. If True, adds --with-knem to the list of configure options. If a string, uses the value of the string as the KNEM path, e.g., --with-knem=/path/to/knem. If False, adds --without-knem to the list of configure options. The default is an empty string, i.e., include neither --with-knem not --without-knem and let configure try to automatically detect whether KNEM is present or not.

  • ldconfig Boolean flag to specify whether the UCX library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the UCX library directory. The default value is False.

  • ofed Flag to control whether OFED is used by the build. If True, adds --with-verbs and --with-rdmacm to the list of configure options. If a string, uses the value of the string as the OFED path, e.g., --with-verbs=/path/to/ofed. If False, adds --without-verbs and --without-rdmacm to the list of configure options. The default is an empty string, i.e., include neither --with-verbs not --without-verbs and let configure try to automatically detect whether OFED is present or not.

  • ospackages List of OS packages to install prior to configuring and building. For Ubuntu, the default values are binutils-dev, file, libnuma-dev, make, and wget. For RHEL-based Linux distributions, the default values are binutils-devel, file, make, numactl-devel, and wget. If the repository parameter is set, then autoconf, automake, ca-certificates, git, and libtool are also included.

  • prefix The top level install location. The default value is /usr/local/ucx.

  • repository The location of the git repository that should be used to build UCX. If True, then use the default https://github.com/openucx/ucx.git repository. The default is empty, i.e., use the release package specified by version.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.

  • url The location of the tarball that should be used to build UCX. The default is empty, i.e., use the release package specified by version.

  • version The version of UCX source to download. The default value is 1.9.0.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

  • xpmem Flag to control whether XPMEM is used by the build. If True, adds --with-xpmem to the list of configure options. If a string, uses the value of the string as the XPMEM path, e.g., --with-xpmem=/path/to/xpmem. If False, adds --without-xpmem to the list of configure options. The default is an empty string, i.e., include neither --with-xpmem not --without-xpmem and let configure try to automatically detect whether XPMEM is present or not.

Examples

ucx(cuda=False, prefix='/opt/ucx/1.4.0', version='1.4.0')
ucx(cuda='/usr/local/cuda', gdrcopy='/usr/local/gdrcopy',
    knem='/usr/local/knem', xpmem='/usr/local/xpmem')
ucx(repository='https://github.com/openucx/ucx.git')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method ucx.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

u = ucx(...)
Stage0 += u
Stage1 += u.runtime()

class xpmem(**kwargs)

Bases : bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig

The xpmem building block builds and installs the user space library from the XPMEM component.

Parameters

  • annotate Boolean flag to specify whether to include annotations (labels). The default is False.

  • branch The branch of XPMEM to use. The default value is master.

  • configure_opts List of options to pass to configure. The default values are --disable-kernel-module.

  • disable_FEATURE Flags to control disabling features when configuring. For instance, disable_foo=True maps to --disable-foo. Underscores in the parameter name are converted to dashes.

  • enable_FEATURE[=ARG] Flags to control enabling features when configuring. For instance, enable_foo=True maps to --enable-foo and enable_foo='yes' maps to --enable-foo=yes. Underscores in the parameter name are converted to dashes.

  • environment Boolean flag to specify whether the environment (CPATH, LD_LIBRARY_PATH and LIBRARY_PATH) should be modified to include XPMEM. The default is True.

  • ldconfig Boolean flag to specify whether the XPMEM library directory should be added dynamic linker cache. If False, then LD_LIBRARY_PATH is modified to include the XPMEM library directory. The default value is False.

  • ospackages List of OS packages to install prior to configuring and building. The default value are autoconf, automake, ca-certificates, file,git,libtool, andmake`.

  • prefix The top level install location. The default value is /usr/local/xpmem.

  • toolchain The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.

  • with_PACKAGE[=ARG] Flags to control optional packages when configuring. For instance, with_foo=True maps to --with-foo and with_foo='/usr/local/foo' maps to --with-foo=/usr/local/foo. Underscores in the parameter name are converted to dashes.

  • without_PACKAGE Flags to control optional packages when configuring. For instance without_foo=True maps to --without-foo. Underscores in the parameter name are converted to dashes.

Examples

xpmem(prefix='/opt/xpmem', branch='master')

Methods

  • runtime Generate the set of instructions to install the runtime specific components from a build in a previous stage.

method xpmem.runtime(_from='0')

Generate the set of instructions to install the runtime specific components from a build in a previous stage.

Examples

x = xpmem(...)
Stage0 += x
Stage1 += x.runtime()

class yum(**kwargs)

Bases : bb_base

The yum building block specifies the set of operating system packages to install. This building block should only be used on images that use the Red Hat package manager (e.g., CentOS).

In most cases, the packages building block should be used instead of yum.

Parameters

  • download Boolean flag to specify whether to download the rpm packages instead of installing them. The default is False.

  • download_directory The deb package download location. This parameter is ignored if download is False. The default value is /var/tmp/yum_download.

  • epel - Boolean flag to specify whether to enable the Extra

    Packages for Enterprise Linux (EPEL) repository. The default is False.

  • extract Location where the downloaded packages should be extracted. Note, this extracts and does not install the packages, i.e., the package manager is bypassed. After the downloaded packages are extracted they are deleted. This parameter is ignored if download is False. If empty, then the downloaded packages are not extracted. The default value is an empty string.

  • force_add_repo Boolean flag to specify whether adding a repository should be considered successful no matter the actual result. The default value is False.

  • keys A list of GPG keys to import. The default is an empty list.

  • ospackages A list of packages to install. The default is an empty list.

  • powertools Boolean flag to specify whether to enable the PowerTools repository. The default is False. This parameter is only recognized if the distribution version is 8.x.

  • release_stream Boolean flag to specify whether to enable the CentOS release stream repository. The default is False. This parameter is only recognized if the distribution version is 8.x.

  • repositories A list of yum repositories to add. The default is an empty list.

  • scl - Boolean flag to specify whether to enable the Software

    Collections (SCL) repository. The default is False. This parameter is only recognized if the distribution version is 7.x.

  • yum4 Boolean flag to specify whether yum4 should be used instead of yum. The default is False. This parameter is only recognized if the distribution version is 7.x.

Examples

yum(ospackages=['make', 'wget'])