Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
3349 lines (2473 sloc) 101 KB

arm_allinea_studio

arm_allinea_studio(self, **kwargs)

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.

Parameters

  • armpl_generic_aarch64_only: Boolean flag to specify whether only the aarch64-generic version of the Arm Performance Libraries should be installed. If False, then all variants of the Arm Performance Libraries, e.g., Cortex-A72, Generic-SVE, ThunderX2CN99, and Generic-AArch64 are installed, but note that this will very significantly increase the size of the container image. The default is True.

  • environment: Boolean flag to specify whether the environment (LD_LIBRARY_PATH, PATH, and potentially other variables) 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.

  • ospackages: List of OS packages to install prior to installing Arm Allinea Studio. For Ubuntu, the default values are libc6-dev, python, tar, wget. For RHEL-based Linux distributions, the default values are glibc-devel, tar, 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 19.3.

Examples

arm_allinea_studio(eula=True, version='19.3')

runtime

arm_allinea_studio.runtime(self, _from=u'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()

apt_get

apt_get(self, **kwargs)

The apt_get building block specifies the set of operating system packages to install. This building block should only be used on images that use the Debian package manager (e.g., Ubuntu).

In most cases, the packages building block should be used instead of apt_get.

Parameters

  • download: Boolean flag to specify whether to download the deb 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/apt_get_download.

  • 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.

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

  • ospackages: A list of packages to install. The default is an empty list.

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

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

Examples

apt_get(ospackages=['make', 'wget'])

boost

boost(self, **kwargs)

The boost building block downloads and installs the Boost component.

Parameters

  • 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). 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.70.0.

Examples

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

runtime

boost.runtime(self, _from=u'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()

catalyst

catalyst(self, **kwargs)

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')

runtime

catalyst.runtime(self, _from=u'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()

cgns

cgns(self, **kwargs)

The cgns building block downloads and installs the CGNS component.

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

Parameters

  • 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.

  • 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 3.4.0.

Examples

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

runtime

cgns.runtime(self, _from=u'0')

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

Example

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

charm

charm(self, **kwargs)

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. For ppc64le processors, the default is multicore-linux-ppc64le.

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

Examples

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

runtime

charm.runtime(self, _from=u'0')

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

Example

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

cmake

cmake(self, **kwargs)

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 value is wget.

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

  • source: Boolean flag to specify whether to build CMake from source. For x86_64 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.14.5.

Examples

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

conda

conda(self, **kwargs)

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.

  • version: The version of Anaconda to download. The default value is 4.7.12.

Examples

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

runtime

conda.runtime(self, _from=u'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()

fftw

fftw(self, **kwargs)

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

  • 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.

  • 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.8.

Examples

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

runtime

fftw.runtime(self, _from=u'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()

gdrcopy

gdrcopy(self, **kwargs)

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

Parameters

  • 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.

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

Examples

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

runtime

gdrcopy.runtime(self, _from=u'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()

generic_autotools

generic_autotools(self, **kwargs)

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

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_directory: The location to build the package. The default value is the source code location.

  • 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.

  • 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.

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

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

  • 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.

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

  • 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 tarball package to build. One of this parameter or the repository parameter must be specified.

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')

runtime

generic_autotools.runtime(self, _from=u'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()

generic_build

generic_build(self, **kwargs)

The generic_build building block downloads and builds a specified package.

Parameters

  • 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.

  • 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.

  • 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.

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

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

  • url: The URL of the tarball package to build. One of this parameter or the repository parameter 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')

runtime

generic_build.runtime(self, _from=u'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()

generic_cmake

generic_cmake(self, **kwargs)

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

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_directory: The location to build the package. The default value is a build subdirectory in the source code location.

  • 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.

  • 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.

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

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

  • 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.

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

  • 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 tarball package to build. One of this parameter or the repository parameter 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')

runtime

generic_cmake.runtime(self, _from=u'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()

gnu

gnu(self, **kwargs)

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, ...)

runtime

gnu.runtime(self, _from=u'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()

hdf5

hdf5(self, **kwargs)

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

  • 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.

  • environment: Boolean flag to specify whether the environment (LD_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.10.5.

Examples

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

runtime

hdf5.runtime(self, _from=u'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()

intel_mpi

intel_mpi(self, **kwargs)

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.4-070.

Examples

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

runtime

intel_mpi.runtime(self, _from=u'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()

intel_psxe

intel_psxe(self, **kwargs)

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. 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.

  • 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, ...)

runtime

intel_psxe.runtime(self, _from=u'0')

Install the runtime from a full build in a previous stage

intel_psxe_runtime

intel_psxe_runtime(self, **kwargs)

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.

  • version: The version of the Intel Parallel Studio XE runtime to install. Due to issues in the Intel apt / yum repositories, only the major version is used; within a major version, the most recent minor version will be installed. The default value is 2019.4-243.

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

Examples

intel_psxe_runtime(eula=True, version='2018.4-274')
intel_psxe_runtime(daal=False, eula=True, ipp=False, psxevars=False)

runtime

intel_psxe_runtime.runtime(self, _from=u'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()

julia

julia(self, **kwargs)

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.2.0.

Examples

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

runtime

julia.runtime(self, _from=u'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()

knem

knem(self, **kwargs)

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

Parameters

  • 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.3.

Examples

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

runtime

knem.runtime(self, _from=u'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()

kokkos

kokkos(self, **kwargs)

The kokkos building block downloads and installs the Kokkos component.

Parameters

  • arch: Flag to set the target architecture. If set adds --arch=value to the list of generate_makefile.bash options. The default value is Pascal60, i.e., sm_60. If a cuda aware build is not selected, then a non-default value should be used.

  • cuda: Flag to control whether a CUDA aware build is performed. If True, adds --with-cuda to the list of generate_makefile.bash options. If a string, uses the value of the string as the CUDA path. If False, does nothing. 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 --with-hwloc to the list of generate_makefile.bash options. If a string, uses the value of the string as the hwloc path. If False, does nothing. The default value is True.

  • opts: List of options to pass to generate_makefile.bash. The default is an empty list.

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

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

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

Examples

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

runtime

kokkos.runtime(self, _from=u'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()

libsim

libsim(self, **kwargs)

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')

runtime

libsim.runtime(self, _from=u'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()

llvm

llvm(self, **kwargs)

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 (LD_LIBRARY_PATH and PATH) should be modified to include the LLVM compilers. The default is True.

  • extra_repository: Boolean flag to specify whether to enable an extra package repository containing addition LLVM 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.

  • 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 Ubuntu, the version is appended to the default package name, e.g., clang-6.0. For RHEL-based Linux distributions, the version is inserted into the SCL Developer Toolset package name, e.g., llvm-toolset-7-clang. For RHEL-based Linux distributions, specifying the version automatically sets extra_repository to True. The default is an empty value.

Examples

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

runtime

llvm.runtime(self, _from=u'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()

mkl

mkl(self, **kwargs)

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 2019.4-070.

Examples

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

runtime

mkl.runtime(self, _from=u'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()

mlnx_ofed

mlnx_ofed(self, **kwargs)

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

Parameters

  • 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 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 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 4.6-1.0.1.1.

Examples

mlnx_ofed(version='4.2-1.0.0.0')

runtime

mlnx_ofed.runtime(self, _from=u'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()

mpich

mpich(self, **kwargs)

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

  • 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.

  • 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.1.

Examples

mpich(prefix='/opt/mpich/3.3', version='3.3')
p = pgi(eula=True)
mpich(toolchain=p.toolchain)

runtime

mpich.runtime(self, _from=u'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()

multi_ofed

multi_ofed(self, **kwargs)

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

  • 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.3-1.0.4.0, 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-2.0.7.0, 4.5-1.0.1.0, 4.6-1.0.1.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')

runtime

multi_ofed.runtime(self, _from=u'0')

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

mvapich2

mvapich2(self, **kwargs)

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

  • 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.

  • 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, make, openssh-client, and wget. For RHEL-based Linux distributions, the default values are byacc, file, 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.1.

Examples

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

runtime

mvapich2.runtime(self, _from=u'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()

mvapich2_gdr

mvapich2_gdr(self, **kwargs)

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 9.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.5.

  • 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.

  • version: The version of MVAPICH2-GDR to download. The value is ignored if package is set. The default value is 2.3.1. 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')

runtime

mvapich2_gdr.runtime(self, _from=u'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()

netcdf

netcdf(self, **kwargs)

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

  • 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.

  • environment: Boolean flag to specify whether the environment (LD_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.

  • hdf5_dir: Path to the location where HDF5 is installed in the container image. The default value is /usr/local/hdf5.

  • 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, m4, make, wget, and zlib1g-dev. For RHEL-based Linux distributions the default values are ca-certificates, file, libcurl-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.0.

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

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

Examples

netcdf(prefix='/opt/netcdf/4.6.1', version='4.6.1')
p = pgi(eula=True)
netcdf(toolchain=p.toolchain)

runtime

netcdf.runtime(self, _from=u'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()

ofed

ofed(self, **kwargs)

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 16.04 and ppc64le processors, the libibcm1 and libibcm-dev packages are not installed because they are not available.

For Ubuntu 18.04, 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.

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, the following packages are installed: libibmad, libibmad-devel, libmlx5, libibumad, libibverbs, libibverbs-utils, librdmacm, rdma-core, and rdma-core-devel.

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()

runtime

ofed.runtime(self, _from=u'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()

openblas

openblas(self, **kwargs)

The openblas building block builds and installs the OpenBLAS component.

Parameters

  • 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 ppc64le processors, the default values are TARGET=POWER8 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.6.

Examples

openblas(prefix='/opt/openblas/0.3.1', version='0.3.1')
p = pgi(eula=True)
openblas(toolchain=p.toolchain)

runtime

openblas.runtime(self, _from=u'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()

openmpi

openmpi(self, **kwargs)

The openmpi building block configures, builds, and installs the OpenMPI 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.

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

  • 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-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.

  • 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.

  • 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.

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

  • 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.

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

Examples

openmpi(cuda=False, infiniband=False, prefix='/opt/openmpi/2.1.2',
    version='2.1.2')
openmpi(directory='sources/openmpi-3.0.0')
p = pgi(eula=True)
openmpi(toolchain=p.toolchain)
openmpi(configure_opts=['--disable-getpwuid', '--with-slurm'],
        ospackages=['file', 'hwloc', 'libslurm-dev'])

runtime

openmpi.runtime(self, _from=u'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()

packages

packages(self, **kwargs)

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.

  • 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.

  • 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.

  • scl: Boolean flag to specify whether to enable the Software Collections (SCL) repository. The default is False. This parameter is ignored if the Linux distribution is not RHEL-based.

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

  • 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)

pgi

pgi(self, **kwargs)

The pgi building block downloads and installs the PGI compiler. Currently, the only option is to install the latest community edition.

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. 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 the PGI compiler to use. Note this value is currently only used when setting the environment and does not control the version of the compiler downloaded. The default value is 19.10.

Examples

pgi(eula=True)
pgi(eula=True, tarball='pgilinux-2017-1710-x86_64.tar.gz')
p = pgi(eula=True)
openmpi(..., toolchain=p.toolchain, ...)

runtime

pgi.runtime(self, _from=u'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()

pip

pip(self, **kwargs)

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.

  • 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.

Examples

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

pnetcdf

pnetcdf(self, **kwargs)

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

Parameters

  • 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.

  • environment: Boolean flag to specify whether the environment (LD_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 m4, make, 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.11.2.

Examples

pnetcdf(prefix='/opt/pnetcdf/1.10.0', version='1.10.0')
ompi = openmpi(...)
pnetcdf(toolchain=ompi.toolchain, ...)

runtime

pnetcdf.runtime(self, _from=u'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()

python

python(self, **kwargs)

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

  1. The default is True.
  • python3: Boolean flag to specify whether to install Python version
  1. The default is True.

Examples

python()
python(python3=False)

runtime

python.runtime(self, _from=u'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()

scif

scif(self, **kwargs)

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).

  • 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=[...])

runtime

scif.runtime(self, _from=u'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()

sensei

sensei(self, **kwargs)

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

  • 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')

runtime

sensei.runtime(self, _from=u'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()

ucx

ucx(self, **kwargs)

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

  • 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.

  • environment: Boolean flag to specify whether the environment (LD_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.

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

  • 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 UCX source to download. The default value is 1.5.2.

  • 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')

runtime

ucx.runtime(self, _from=u'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()

xpmem

xpmem(self, **kwargs)

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

Parameters

  • 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.

  • 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, and make`.

  • 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.

Examples

xpmem(prefix='/opt/xpmem', branch='master')

runtime

xpmem.runtime(self, _from=u'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()

yum

yum(self, **kwargs)

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.

  • 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 CentOS 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.

Examples

yum(ospackages=['make', 'wget'])
You can’t perform that action at this time.