amgx(self, **kwargs)
The amgx
building block downloads, configures, builds, and
installs the AMGX component.
The CMake building block should be installed prior to this building block.
Installing an MPI building block before this one is optional and will build the AMGX library with MPI support. Some Eigensolvers make use of the MAGMA and/or MKL libraries and are only available if the paths to these libraries is specified as shown below in the cmake_opts.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
branch: The git branch to clone. AMGX releases are tagged, that is, specifying
branch='v2.1.0'
downloads a particular AMGX version. The default ismaster
. -
cmake_opts: List of options to pass to
cmake
. The default value is an empty list. See the "Building" section of the AMGX documentation of the specified library version for more details. Some options areCMAKE_NO_MPI:Boolean
(default=False
) - build without MPI support even if theFindMPI
script finds an MPI library.AMGX_NO_RPATH:Boolean
(default=False
) - by default CMake adds-rpath
flags to binaries, this option disables that.MKL_ROOT_DIR:String
,MAGMA_ROOT_DIR:String
- MAGMA/MKL are used to accelerate some of the Eigensolvers. These solvers will return "error 'not supported'" if AMGX was not build with MKL/MAGMA support. -
commit: The git commit to clone. The default is empty and uses the latest commit on the selected branch of the repository.
-
directory: Build from an unpackaged source directory relative to the local build context instead of fetching AMGX sources from a git repository. This option is incompatible with
repository
/branch
/commit
. The default isNone
. -
ospackages: List of OS packages to install prior to downloading, configuring, and building. The default value is
[git]
. -
prefix: The top level install location. The default is
/usr/local/amgx
. -
repository: The git repository to clone. The default is
https://github.com/NVIDIA/AMGX
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
Examples
amgx(branch='v2.1.0')
amgx.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 = amgx(...)
Stage0 += a
Stage1 += a.runtime()
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
-
aptitude: Boolean flag to specify whether
aptitude
should be used instead ofapt-get
. The default is False. -
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'])
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. However, the environment is not automatically
configured for the Arm Allinea Studio compilers. The desired
environment module must be manually loaded, e.g., module load Generic-AArch64/RHEL/7/arm-linux-compiler/20.3
.
Parameters
-
environment: Boolean flag to specify whether the environment (
MODULEPATH
) should be modified to include Arm Allinea Studio. The default is True. -
eula: By setting this value to
True
, you agree to the Arm End User License Agreement. The default value isFalse
. -
microarchitectures: List of microarchitectures to install. From 22.0 version, only
generic
is available. Available values aregeneric
,generic-sve
for version 21.1, andneoverse-n1
,thunderx2t99
are valid for versions <= 20.3. Irrespective of this setting, the generic implementation will always be installed. -
ospackages: List of OS packages to install prior to installing Arm Allinea Studio. For Ubuntu, the default values are
libc6-dev
,lmod
,python
,tar
,tcl
, andwget
. For RHEL-based Linux distributions, the default values areglibc-devel
,Lmod
,tar
, andwget
. -
prefix: The top level install prefix. The default value is
/opt/arm
. -
tarball: Path to the Arm Allinea Studio tarball relative to the local build context. The default value is empty. If this is defined, the tarball in the local build context will be used rather than downloading the tarball from the web.
-
version: The version of Arm Allinea Studio to install. The default value is
22.0
. Due to differences in the packaging scheme, versions prior to 20.2 are not supported.
Examples
arm_allinea_studio(eula=True,
microarchitectures=['generic', 'thunderx2t99'],
version='20.3')
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()
boost(self, **kwargs)
The boost
building block downloads and installs the
Boost component.
Parameters
-
b2_opts: List of options to pass to
b2
. The default is an empty list. -
bootstrap_opts: List of options to pass to
bootstrap.sh
. The default is an empty list. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
) should be modified to include Boost. The default is True. -
ldconfig: Boolean flag to specify whether the Boost library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the Boost library directory. The default value is False. -
ospackages: List of OS packages to install prior to building. For Ubuntu, the default values are
bzip2
,libbz2-dev
,tar
,wget
, andzlib1g-dev
. For RHEL-based Linux distributions the default values arebzip2
,bzip2-devel
,tar
,wget
,which
, andzlib-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
orpython-devel
to the list of OS packages). This flag is ignored ifbootstrap_opts
is set. The default is False. -
sourceforge: Boolean flag to specify whether Boost should be downloaded from SourceForge rather than the current Boost repository. For versions of Boost older than 1.63.0, the SourceForge repository should be used. The default is False.
-
version: The version of Boost source to download. The default value is
1.76.0
.
Examples
boost(prefix='/opt/boost/1.67.0', version='1.67.0')
boost(sourceforge=True, version='1.57.0')
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(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
, andBase-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 isBase-Enable-Python-Essentials-Extras-Rendering-Base
. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
andPATH
) 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
, andwget
. If a rendering edition is selected thenlibxau-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 aregit
,gzip
,make
,tar
,wget
, andwhich
. If a rendering edition is selected thenlibX11-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')
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(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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the test cases should be run. The default is False.
-
configure_opts: List of options to pass to
configure
. The default value is--with-hdf5=/usr/local/hdf5
and--with-zlib
. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
prefix: The top level install location. The default value is
/usr/local/cgns
. -
ospackages: List of OS packages to install prior to configuring and building. For Ubuntu, the default values are
file
,make
,wget
, andzlib1g-dev
. For RHEL-based Linux distributions the default values arebzip2
,file
,make
,wget
andzlib-devel
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
version: The version of CGNS source to download. The default value is
4.1.2
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
cgns(prefix='/opt/cgns/3.3.1', version='3.3.1')
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(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
, andwget
. -
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 ismulticore-arm8
. For ppc64le processors, the default ismulticore-linux-ppc64le
. -
version: The version of Charm++ to download. The default value is
6.10.2
.
Examples
charm(prefix='/opt', version='6.8.2')
charm(target_architecture='mpi-linux-x86_64')
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(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 isFalse
. -
ospackages: List of OS packages to install prior to installing. The default values are
make
andwget
. -
prefix: The top level install location. The default value is
/usr/local
. -
source: Boolean flag to specify whether to build CMake from source. If True, includes the
libssl-dev
package in the list of OS packages for Ubuntu, andopenssl-devel
for RHEL-based distributions. For x86_64 and aarch64 processors, the default is False, i.e., use the available pre-compiled package. For all other processors, the default is True. -
version: The version of CMake to download. The default value is
3.25.1
.
Examples
cmake(eula=True)
cmake(eula=True, version='3.10.3')
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 isFalse
. -
ospackages: List of OS packages to install prior to installing Conda. The default values are
ca-certificates
andwget
. -
packages: List of Conda packages to install. The default is an empty list.
-
prefix: The top level install location. The default value is
/usr/local/anaconda
. -
python2: Boolean flag to specify that the Python 2 version of Anaconda should be installed. The default is False.
-
python_subversion: The Python version to install. This value is ignored if the Conda version is less than 4.8. The default is
py310
if using Python 3, andpy27
if using Python 2. -
version: The version of Anaconda to download. The default value is
23.1.0-1
if using Python 3, and4.8.3
if using Python 2.
Examples
conda(packages=['numpy'])
conda(channels=['conda-forge', 'nvidia'], prefix='/opt/conda')
conda(environment='environment.yml')
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(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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
configure_opts: List of options to pass to
configure
. For x86_64 processors, the default values are--enable-shared
,--enable-openmp
,--enable-threads
, and--enable-sse2
. For other processors, the default values are--enable-shared
,--enable-openmp
, and--enable-threads
. -
directory: Path to the unpackaged source directory relative to the local build context. The default value is empty. If this is defined, the source in the local build context will be used rather than downloading the source from the web.
-
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
) should be modified to include FFTW. The default is True. -
ldconfig: Boolean flag to specify whether the FFTW library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the FFTW library directory. The default value is False. -
mpi: Boolean flag to specify whether to build with MPI support enabled. The default is False.
-
ospackages: List of OS packages to install prior to configuring and building. The default values are
file
,make
, andwget
. -
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 is3.3.10
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
fftw(prefix='/opt/fftw/3.3.7', version='3.3.7')
fftw(directory='sources/fftw-3.3.7')
n = nvhpc(eula=True)
fftw(toolchain=n.toolchain)
fftw(check=True, configure_opts=['--enable-shared', '--enable-threads',
'--enable-sse2', '--enable-avx'])
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(self, **kwargs)
The gdrcopy
building block builds and installs the user space
library from the gdrcopy
component.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
environment: Boolean flag to specify whether the environment (
CPATH
,LIBRARY_PATH
, andLD_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
andwget
. -
prefix: The top level install location. The default value is
/usr/local/gdrcopy
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
version: The version of gdrcopy source to download. The default value is
2.2
.
Examples
gdrcopy(prefix='/opt/gdrcopy/2.1', version='2.1')
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(self, **kwargs)
The generic_autotools
building block downloads, configures,
builds, and installs a specified GNU Autotools enabled package.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
annotations: Dictionary of additional annotations to include. The default is an empty dictionary.
-
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
build_directory: The location to build the package. The default value is the source code location.
-
build_environment: Dictionary of environment variables and values to set when building the package. The default is an empty dictionary.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
configure_opts: List of options to pass to
configure
. The default value is an empty list. -
devel_environment: Dictionary of environment variables and values, e.g.,
LD_LIBRARY_PATH
andPATH
, to set in the development stage after the package is built and installed. The default is an empty dictionary. -
directory: The source code location. The default value is the basename of the downloaded package. If the value is not an absolute path, then the temporary working directory is prepended.
-
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment should be modified (see
devel_environment
andruntime_environment
). The default is True. -
export_build_environment: Boolean flag to specify whether the build environment should be exported, or merely set on the configure command line. The default is False.
-
install: Boolean flag to specify whether the
make install
step should be performed. The default is True. -
ldconfig: Boolean flag to specify whether the library directory should be added dynamic linker cache. The default value is False.
-
libdir: The path relative to the install prefix to use when configuring the dynamic linker cache. The default value is
lib
. -
make: Boolean flag to specify whether the
make
step should be performed. The default is True. -
package: Path to the local source package relative to the local build context. One of this parameter or the
repository
orurl
parameters must be specified. -
postinstall: List of shell commands to run after running 'make install'. The working directory is the install prefix. The default is an empty list.
-
preconfigure: List of shell commands to run prior to running
configure
. The working directory is the source code location. The default is an empty list. -
prefix: The top level install location. The default value is
/usr/local
. It is highly recommended not use use this default and instead set the prefix to a package specific directory. -
recursive: Initialize and checkout git submodules.
repository
parameter must be specified. The default is False. -
repository: The git repository of the package to build. One of this parameter or the
package
orurl
parameters must be specified. -
_run_arguments: Specify additional Dockerfile RUN arguments (Docker specific).
-
runtime: The list of files / directories to copy into the runtime stage. The default is an empty list, i.e., copy the entire prefix.
-
runtime_environment: Dictionary of environment variables and values, e.g.,
LD_LIBRARY_PATH
andPATH
, to set in the runtime stage. The default is an empty dictionary. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
url: The URL of the package to build. One of this parameter or the
package
orrepository
parameters must be specified. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
generic_autotools(directory='tcl8.6.9/unix',
prefix='/usr/local/tcl',
url='https://prdownloads.sourceforge.net/tcl/tcl8.6.9-src.tar.gz')
generic_autotools(preconfigure=['./autogen.sh'],
prefix='/usr/local/zeromq',
repository='https://github.com/zeromq/libzmq.git')
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(self, **kwargs)
The generic_build
building block downloads and builds
a specified package.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
annotations: Dictionary of additional annotations to include. The default is an empty dictionary.
-
build: List of shell commands to run in order to build the package. The working directory is the source directory. The default is an empty list.
-
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
devel_environment: Dictionary of environment variables and values, e.g.,
LD_LIBRARY_PATH
andPATH
, to set in the development stage after the package is built and installed. The default is an empty dictionary. -
directory: The source code location. The default value is the basename of the downloaded package. If the value is not an absolute path, then the temporary working directory is prepended.
-
environment: Boolean flag to specify whether the environment should be modified (see
devel_environment
andruntime_environment
). The default is True. -
install: List of shell commands to run in order to install the package. The working directory is the source directory. If
prefix
is defined, it will be automatically created if the list is non-empty. The default is an empty list. -
ldconfig: Boolean flag to specify whether the library directory should be added dynamic linker cache. The default value is False.
-
libdir: The path relative to the install prefix to use when configuring the dynamic linker cache. The default value is
lib
. -
package: Path to the local source package relative to the local build context. One of this parameter or the
repository
orurl
parameters must be specified. -
prefix: The top level install location. The default value is empty. If defined then the location is copied as part of the runtime method.
-
recursive: Initialize and checkout git submodules.
repository
parameter must be specified. The default is False. -
repository: The git repository of the package to build. One of this parameter or the
package
orurl
parameters must be specified. -
_run_arguments: Specify additional Dockerfile RUN arguments (Docker specific).
-
runtime: The list of files / directories to copy into the runtime stage. The default is an empty list, i.e., copy the entire prefix.
-
runtime_environment: Dictionary of environment variables and values, e.g.,
LD_LIBRARY_PATH
andPATH
, to set in the runtime stage. The default is an empty dictionary. -
unpack: Unpack the sources after downloading. Default is
True
. -
url: The URL of the package to build. One of this parameter or the
package
orrepository
or parameters must be specified.
Examples
generic_build(build=['make ARCH=sm_70'],
install=['cp stream /usr/local/bin/cuda-stream'],
repository='https://github.com/bcumming/cuda-stream')
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(self, **kwargs)
The generic_cmake
building block downloads, configures,
builds, and installs a specified CMake enabled package.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
annotations: Dictionary of additional annotations to include. The default is an empty dictionary.
-
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
build_directory: The location to build the package. The default value is a
build
subdirectory in the source code location. -
build_environment: Dictionary of environment variables and values to set when building the package. The default is an empty dictionary.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
cmake_opts: List of options to pass to
cmake
. The default value is an empty list. -
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
devel_environment: Dictionary of environment variables and values, e.g.,
LD_LIBRARY_PATH
andPATH
, to set in the development stage after the package is built and installed. The default is an empty dictionary. -
directory: The source code location. The default value is the basename of the downloaded package. If the value is not an absolute path, then the temporary working directory is prepended.
-
environment: Boolean flag to specify whether the environment should be modified (see
devel_environment
andruntime_environment
). The default is True. -
install: Boolean flag to specify whether the
make install
step should be performed. The default is True. -
ldconfig: Boolean flag to specify whether the library directory should be added dynamic linker cache. The default value is False.
-
libdir: The path relative to the install prefix to use when configuring the dynamic linker cache. The default value is
lib
. -
make: Boolean flag to specify whether the
make
step should be performed. The default is True. -
package: Path to the local source package relative to the local build context. One of this parameter or the
repository
orurl
parameters must be specified. -
postinstall: List of shell commands to run after running 'make install'. The working directory is the install prefix. The default is an empty list.
-
preconfigure: List of shell commands to run prior to running
cmake
. The working directory is the source code location. The default is an empty list. -
prefix: The top level install location. The default value is
/usr/local
. It is highly recommended not to use this default and instead set the prefix to a package specific directory. -
recursive: Initialize and checkout git submodules.
repository
parameter must be specified. The default is False. -
repository: The git repository of the package to build. One of this parameter or the
package
orurl
parameters must be specified. -
_run_arguments: Specify additional Dockerfile RUN arguments (Docker specific).
-
runtime: The list of files / directories to copy into the runtime stage. The default is an empty list, i.e., copy the entire prefix.
-
runtime_environment: Dictionary of environment variables and values, e.g.,
LD_LIBRARY_PATH
andPATH
, to set in the runtime stage. The default is an empty dictionary. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
url: The URL of the package to build. One of this parameter or the
repository
orpackage
parameters must be specified.
Examples
generic_cmake(cmake_opts=['-D CMAKE_BUILD_TYPE=Release',
'-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda',
'-D GMX_BUILD_OWN_FFTW=ON',
'-D GMX_GPU=ON',
'-D GMX_MPI=OFF',
'-D GMX_OPENMP=ON',
'-D GMX_PREFER_STATIC_LIBS=ON',
'-D MPIEXEC_PREFLAGS=--allow-run-as-root'],
directory='gromacs-2018.2',
prefix='/usr/local/gromacs',
url='https://github.com/gromacs/gromacs/archive/v2018.2.tar.gz')
generic_cmake(branch='v0.8.0',
cmake_opts=['-D CMAKE_BUILD_TYPE=RELEASE',
'-D QUDA_DIRAC_CLOVER=ON',
'-D QUDA_DIRAC_DOMAIN_WALL=ON',
'-D QUDA_DIRAC_STAGGERED=ON',
'-D QUDA_DIRAC_TWISTED_CLOVER=ON',
'-D QUDA_DIRAC_TWISTED_MASS=ON',
'-D QUDA_DIRAC_WILSON=ON',
'-D QUDA_FORCE_GAUGE=ON',
'-D QUDA_FORCE_HISQ=ON',
'-D QUDA_GPU_ARCH=sm_70',
'-D QUDA_INTERFACE_MILC=ON',
'-D QUDA_INTERFACE_QDP=ON',
'-D QUDA_LINK_HISQ=ON',
'-D QUDA_MPI=ON'],
prefix='/usr/local/quda',
repository='https://github.com/lattice/quda.git')
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(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
andPATH
) 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 compilerconfigure
options and also builds the accelerator compiler and dependencies (nvptx-tools
andnvptx-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
, andxz-utils
. For RHEL-based Linux distributions, the default values arebzip2
,file
,gcc
,gcc-c++
,git
,make
,perl
,tar
,wget
, andxz
. 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 setsextra_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, ...)
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(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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
configure_opts: List of options to pass to
configure
. The default values are--enable-cxx
and--enable-fortran
. -
directory: Path to the unpackaged source directory relative to the local build context. The default value is empty. If this is defined, the source in the local build context will be used rather than downloading the source from the web.
-
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
,LIBRARY_PATH
,PATH
, and others) should be modified to include HDF5. The default is True. -
ldconfig: Boolean flag to specify whether the HDF5 library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the HDF5 library directory. The default value is False. -
ospackages: List of OS packages to install prior to configuring and building. For Ubuntu, the default values are
bzip2
,file
,make
,wget
, andzlib1g-dev
. For RHEL-based Linux distributions the default values arebzip2
,file
,make
,wget
andzlib-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 is1.12.0
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
hdf5(prefix='/opt/hdf5/1.10.1', version='1.10.1')
hdf5(directory='sources/hdf5-1.10.1')
n = nvhpc(eula=True)
hdf5(toolchain=n.toolchain)
hdf5(check=True, configure_opts=['--enable-cxx', '--enable-fortran',
'--enable-profiling=yes'])
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()
hpcx(self, **kwargs)
The hpcx
building block downloads and installs the Mellanox
HPC-X
component.
Parameters
-
buildlabel: The build label assigned by Mellanox to the tarball. For versions 2.17 and later, the default value is
cuda12
. For version 2.16 the default value iscuda12-gdrcopy2-nccl2.18
. For version 2.15 the default value iscuda12-gdrcopy2-nccl2.17
. For version 2.14 the default value iscuda11-gdrcopy2-nccl2.16
. For versions 2.12 and 2.13 the default value iscuda11-gdrcopy2-nccl2.12
. For versions 2.10 and 2.11 the default value iscuda11-gdrcopy2-nccl2.11
. This value is ignored for HPC-X version 2.9 and earlier. -
environment: Boolean flag to specify whether the environment should be modified to include HPC-X. This option is only recognized if
hpcxinit
is False. The default is True. -
hpcxinit: Mellanox HPC-X provides an environment script (
hpcx-init.sh
) to setup the HPC-X environment. If this value isTrue
, the bashrc is modified to automatically source this environment script. However, HPC-X is not automatically available to subsequent container image build steps; the environment is available when the container image is run. To set the HPC-X environment in subsequent build steps you can explicitly callsource /usr/local/hpcx/hpcx-init.sh && hpcx_load
in each build step. If this value is set toFalse
, 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 byhpcx-init.sh
. The default value isTrue
. -
inbox: Boolean flag to specify whether to use Mellanox HPC-X built for Inbox OFED. If the value is
True
, use Inbox OFED. If the value isFalse
, use Mellanox OFED. The default isFalse
. -
ldconfig: Boolean flag to specify whether the Mellanox HPC-X library directories should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the HPC-X library directories. This value is ignored ifhpcxinit
isTrue
. The default value is False. -
mlnx_ofed: The version of Mellanox OFED that should be matched. This value is ignored if Inbox OFED is selected. The default value is
5
for HPC-X version 2.10 and later, and5.2-2.2.0.0
for earlier HPC-X versions. -
multi_thread: Boolean flag to specify whether the multi-threaded version of Mellanox HPC-X should be used. The default is
False
. -
ofedlabel: The Mellanox OFED label assigned by Mellanox to the tarball. For version 2.16 and later, the default value is
gcc-mlnx_ofed
. For earlier versions, the default value isgcc-MLNX_OFED_LINUX-5
. This value is ignored ifinbox
isTrue
. -
oslabel: The Linux distribution label assigned by Mellanox to the tarball. For Ubuntu, the default value is
ubuntu16.04
for Ubuntu 16.04,ubuntu18.04
for Ubuntu 18.04,ubuntu20.04
for Ubuntu 20.04, andubuntu22.04
for Ubuntu 22.04. For HPC-X version 2.10 and later and RHEL-based Linux distributions, the default value isredhat7
for version 7 andredhat8
for version
- For HPC-X version 2.9 and earlier and RHEL-based Linux
distributions, the default value is
redhat7.6
for version 7 andredhat8.0
for version 8.
-
ospackages: List of OS packages to install prior to installing Mellanox HPC-X. For Ubuntu, the default values are
bzip2
,libnuma1
,openssh-client
,tar
, andwget
. For RHEL-based distributions the default values arebzip2
,numactl-libs
,openssh-clients
,tar
, andwget
. -
prefix: The top level installation location. The default value is
/usr/local/hpcx
. -
version: The version of Mellanox HPC-X to install. The default value is
2.19
.
Examples
hpcx(prefix='/usr/local/hpcx', version='2.16')
hpcx.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 = hpcx(...)
Stage0 += h
Stage1 += h.runtime()
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 isFalse
. -
mpivars: Intel MPI provides an environment script (
mpivars.sh
) to setup the Intel MPI environment. If this value isTrue
, 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 callsource /opt/intel/compilers_and_libraries/linux/mpi/intel64/bin/mpivars.sh intel64
in each build step. If this value is to setFalse
, 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 bympivars.sh
. The default value isTrue
. -
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
, andwget
. For RHEL-based Linux distributions, the default values areman-db
andopenssh-clients
. -
version: The version of Intel MPI to install. The default value is
2019.6-088
.
Examples
intel_mpi(eula=True, version='2018.3-051')
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(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 useintel-icc__x86_64
andintel-ifort__x86_64
. Please note that the values are not consistent between versions; for a list of components, extractpset/mediaconfig.xml
from the tarball and grep forAbbr
. -
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; seecomponents
. 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 isFalse
. -
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; seecomponents
. 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; seecomponents
. 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; seecomponents
. 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; seecomponents
. 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; seecomponents
. The default is True. -
ospackages: List of OS packages to install prior to installing Intel MPI. For Ubuntu, the default values are
build-essential
andcpio
. For RHEL-based Linux distributions, the default values aregcc
,gcc-c++
,make
, andwhich
. -
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 isTrue
, 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 callsource /opt/intel/compilers_and_libraries/linux/bin/compilervars.sh intel64
in each build step. If this value is to setFalse
, 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 bycompilervars.sh
. This option will be used with theruntime
method. The default value isTrue
. -
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 itsversion
parameter. In general, the major version of the runtime should correspond to the tarball version. The default value is2020.2-14
. -
tarball: Path to the Intel Parallel Studio XE tarball relative to the local build context. The default value is empty. This parameter is required.
-
tbb: Boolean flag to specify whether the Intel Threading Building Blocks environment should be configured when
psxevars
is False. This flag also controls whether to install the corresponding -
runtime in the
runtime
method. Note: this flag does not control whether the developer environment is installed; seecomponents
. 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, ...)
intel_psxe.runtime(self, _from=u'0')
Install the runtime from a full build in a previous stage
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 isFalse
. -
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 isTrue
, 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 callsource /opt/intel/psxe_runtime/linux/bin/psxevars.sh intel64
in each build step. If this value is to setFalse
, 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 bypsxevars.sh
. The default value isTrue
. -
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
, andwget
. For RHEL-based Linux distributions, the default values areman-db
,openssh-clients
, andwhich
. -
tbb: Boolean flag to specify whether the Intel Threading Building Blocks runtime should be installed. The default is True.
-
version: The version of the Intel Parallel Studio XE runtime to install. The default value is
2020.2-14
.
Examples
intel_psxe_runtime(eula=True, version='2018.5-281')
intel_psxe_runtime(daal=False, eula=True, ipp=False, psxevars=False)
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(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
, andCuArrays
packages are installed. Note that theCUDAdrv
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
andPATH
) 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
andwget
. -
packages: List of Julia packages to install. The default is an empty list.
-
prefix: The top level installation location. The default value is
/usr/local/julia
. -
version: The version of Julia to install. The default value is
1.5.1
.
Examples
julia(prefix='/usr/local/julia', version='1.3.1')
julia(depot='/tmp', history='/tmp/repl_history.jl')
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(self, **kwargs)
The knem
building block install the headers from the
KNEM component.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
environment: Boolean flag to specify whether the environment (
CPATH
) should be modified to include knem. The default is True. -
ospackages: List of OS packages to install prior to installing. The default values are
ca-certificates
andgit
. -
prefix: The top level install location. The default value is
/usr/local/knem
. -
version: The version of KNEM source to download. The default value is
1.1.4
.
Examples
knem(prefix='/opt/knem/1.1.3', version='1.1.3')
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(self, **kwargs)
The kokkos
building block downloads and installs the
Kokkos component.
The CMake building block should be installed prior to this building block.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
arch: List of target architectures to build. If set adds
-DKokkos_ARCH_<value>=ON
to the list of CMake options. The default value isVOLTA70
, i.e., sm_70. If a CUDA aware build is not selected, then a non-default value should be used. -
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
check: Boolean flag to specify whether the build should be checked. If True, adds
-DKokkos_ENABLE_TESTS=ON
to the list of CMake options. The default is False. -
cmake_opts: List of options to pass to
cmake
. The default is-DCMAKE_BUILD_TYPE=RELEASE
. -
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
cuda: Flag to control whether a CUDA aware build is performed. If True, adds
-DKokkos_ENABLE_CUDA=ON
and-DCMAKE_CXX_COMPILER=$(pwd)/../bin/nvcc_wrapper
to the list of CMake options. The default value is True. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
andPATH
) should be modified to include Kokkos. The default is True. -
hwloc: Flag to control whether a hwloc aware build is performed. If True, adds
-DKokkos_ENABLE_HWLOC=ON
to the list of CMake options. The default value is True. -
ospackages: List of OS packages to install prior to building. For Ubuntu, the default values are
gzip
,libhwloc-dev
,make
,tar
, andwget
. For RHEL-based Linux distributions the default values aregzip
,hwloc-devel
,make
,tar
, andwget
. -
prefix: The top level installation location. The default value is
/usr/local/kokkos
. -
repository: The location of the git repository that should be used to build OpenMPI. If True, then use the default
https://github.com/kokkos/kokkos.git
repository. The default is empty, i.e., use the release package specified byversion
. -
url: The location of the tarball that should be used to build Kokkos. The default is empty, i.e., use the release package specified by
version
. -
version: The version of Kokkos source to download. The default value is
3.2.00
.
Examples
kokkos(prefix='/opt/kokkos/3.1.01', version='3.1.01')
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(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
andPATH
) 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 variablePAR_COMPILER
is set tompicc
. 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
, andlibglu1-mesa-dev
. For RHEL-based Linux distributions, the default values aregzip
,make
,patch
,tar
,wget
,which
,zlib-devel
,libXt-devel
,libglvnd-devel
,mesa-libGL-devel
, andmesa-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')
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(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 (
CPATH
,LD_LIBRARY_PATH
andPATH
) should be modified to include the LLVM compilers when necessary. The default is True. -
extra_tools: Boolean flag to specify whether to also install
clang-format
andclang-tidy
. The default is False. -
openmp: Boolean flag to specify whether to also install OpenMP support. The default is True.
-
toolset: Boolean flag to specify whether to also install the full LLVM toolset. The default is False.
-
upstream: Boolean flag to specify whether to use the upstream LLVM packages. This option is ignored if the base image is not Ubuntu-based.
-
version: The version of the LLVM compilers to install. Note that the version refers to the Linux distribution packaging, not the actual compiler version. For RHEL-based 8.x Linux distributions, the version is ignored. The default is an empty value.
Examples
llvm()
llvm(version='7')
llvm(upstream=True, version='11')
l = llvm()
openmpi(..., toolchain=l.toolchain, ...)
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()
magma(self, **kwargs)
The magma
building block configures, builds, and installs the
MAGMA component.
The CMake building block should be installed prior to this building block.
Either the MKL or OpenBLAS building block should also be installed.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
cmake_opts: List of options to pass to
cmake
. The default value is an empty list. -
gpu_target: List of GPU architectures to compile. The default values are
Pascal
,Volta
, andTuring
. -
ospackages: List of OS packages to install prior to configuring and building. The default values are
tar
andwget
. -
prefix: The top level install location. The default value is
/usr/local/magma
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
version: The version of MAGMA source to download. The default value is
2.5.3
.
Examples
magma(prefix='/opt/magma', version='2.5.3')
magma.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 = magma(...)
Stage0 += m
Stage1 += m.runtime()
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 isFalse
. -
mklvars: MKL provides an environment script (
mklvars.sh
) to setup the MKL environment. If this value isTrue
, 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 callsource /opt/intel/mkl/bin/mklvars.sh intel64
in each build step. If this value is to setFalse
, 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 bymklvars.sh
. The default value isTrue
. -
ospackages: List of OS packages to install prior to installing MKL. For Ubuntu, the default values are
apt-transport-https
,ca-certificates
,gnupg
, andwget
. For RHEL-based Linux distributions, the default is an empty list. -
version: The version of MKL to install. The default value is
2020.0-088
.
Examples
mkl(eula=True, version='2018.3-051')
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(self, **kwargs)
The mlnx_ofed
building block downloads and installs the Mellanox
OpenFabrics Enterprise Distribution for
Linux.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
oslabel: The Linux distribution label assigned by Mellanox to the tarball. For Ubuntu, the default value is
ubuntu16.04
. For RHEL-based Linux distributions, the default value isrhel7.2
for x86_64 processors andrhel7.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
, andwget
. For RHEL-based 7.x distributions, the default values arefindutils
,libnl
,libnl3
,numactl-libs
, andwget
. For RHEL-based 8.x distributions, the default values arefindutils
,libnl3
,numactl-libs
, andwget
. -
packages: List of packages to install from Mellanox OFED. For version 5.0 and later on Ubuntu,
ibverbs-providers
,ibverbs-utils
libibmad-dev
,libibmad5
,libibumad3
,libibumad-dev
,libibverbs-dev
libibverbs1
,librdmacm-dev
, andlibrdmacm1
. For earlier versions on Ubuntu, the default values arelibibverbs1
,libibverbs-dev
,libibmad
,libibmad-devel
,libibumad
,libibumad-devel
,libmlx4-1
,libmlx4-dev
,libmlx5-1
,libmlx5-dev
,librdmacm1
,librdmacm-dev
, andibverbs-utils
. For version 5.0 and later on RHEL-based Linux distributions, the default values arelibibumad
,libibverbs
,libibverbs-utils
,librdmacm
,rdma-core
, andrdma-core-devel
. For earlier versions on RHEL-based Linux distributions, the default values arelibibverbs
,libibverbs-devel
,libibverbs-utils
,libibmad
,libibmad-devel
,libibumad
,libibumad-devel
,libmlx4
,libmlx4-devel
,libmlx5
,libmlx5-devel
,librdmacm
, andlibrdmacm-devel
. -
prefix: The top level install location. Instead of installing the packages via the package manager, they will be extracted to this location. This option is useful if multiple versions of Mellanox OFED need to be installed. The environment must be manually configured to recognize the Mellanox OFED location, e.g., in the container entry point. The default value is empty, i.e., install via the package manager to the standard system locations.
-
version: The version of Mellanox OFED to download. The default value is
5.6-2.0.9.0
.
Examples
mlnx_ofed(version='4.2-1.0.0.0')
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(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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the
make check
andmake testing
steps should be performed. The default is False. -
configure_opts: List of options to pass to
configure
. The default is an empty list. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
andPATH
) 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
, andwget
. For RHEL-based Linux distributions, the default values arefile
,gzip
,make
,openssh-clients
,perl
,tar
, andwget
. -
prefix: The top level install location. The default value is
/usr/local/mpich
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
version: The version of MPICH source to download. The default value is
3.3.2
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
mpich(prefix='/opt/mpich/3.3', version='3.3')
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(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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
inbox: Boolean flag to specify whether to install the 'inbox' OFED distributed by the Linux distribution. The default is True.
-
mlnx_oslabel: The Linux distribution label assigned by Mellanox to the tarball. Please see the corresponding
mlnx_ofed
parameter for more information. -
mlnx_packages: List of packages to install from Mellanox OFED. Please see the corresponding
mlnx_ofed
parameter for more information. -
mlnx_versions: A list of Mellanox OpenFabrics Enterprise Distribution for Linux versions to install. The default values are
3.4-2.0.0.0
,4.0-2.0.0.1
,4.1-1.0.2.0
,4.2-1.2.0.0
,4.3-1.0.1.0
,4.4-1.0.0.0
,4.5-1.0.1.0
,4.6-1.0.1.1
,4.7-3.2.9.0
,5.0-2.1.8.0
, and5.1-2.3.7.1
. -
ospackages: List of OS packages to install prior to installing OFED. For Ubuntu, the default values are
libnl-3-200
,libnl-route-3-200
, andlibnuma1
. For RHEL-based Linux distributions, the default values arelibnl
,libnl3
, andnumactl-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')
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(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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
configure_opts: List of options to pass to
configure
. The default values are--disable-mcast
. -
cuda: Boolean flag to control whether a CUDA aware build is performed. If True, adds
--enable-cuda --with-cuda
to the list ofconfigure
options, otherwise adds--disable-cuda
. If the toolchain specifiesCUDA_HOME
, then that path is used, otherwise/usr/local/cuda
is used for the path. The default value is True. -
directory: Path to the unpackaged source directory relative to the local build context. The default value is empty. If this is defined, the source in the local build context will be used rather than downloading the source from the web.
-
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
andPATH
) should be modified to include MVAPICH2. The default is True. -
gpu_arch: The GPU architecture to use. Older versions of MVAPICH2 (2.3b and previous) were hard-coded to use "sm_20". This option has no effect on more recent MVAPICH2 versions. The default value is to use the MVAPICH2 default.
-
ldconfig: Boolean flag to specify whether the MVAPICH2 library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the MVAPICH2 library directory. The default value is False. -
ospackages: List of OS packages to install prior to configuring and building. For Ubuntu, the default values are
byacc
,file
,flex
,make
,openssh-client
, andwget
. For RHEL-based Linux distributions, the default values arebyacc
,file
,flex
,make
,openssh-clients
, andwget
. -
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 is2.3.4
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
mvapich2(cuda=False, prefix='/opt/mvapich2/2.3a', version='2.3a')
mvapich2(directory='sources/mvapich2-2.3b')
n = nvhpc(eula=True)
mvapich2(toolchain=n.toolchain)
mvapich2(configure_opts=['--disable-fortran', '--disable-mcast'])
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(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 is10.2
. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
andPATH
) 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 ifpackage
is set. The default value is4.7
. -
ospackages: List of OS packages to install prior to installation. For Ubuntu, the default values are
cpio
,libnuma1
,openssh-client
,rpm2cpio
andwget
, pluslibgfortran3
if a GNU compiled package is selected. For RHEL-based Linux distributions, the default values arelibpciaccess
,numactl-libs
,openssh-clients
, andwget
, pluslibgfortran
if a GNU compiled package is selected. -
package: Specify the package name to download. The package should correspond to the other recipe components (e.g., compiler version, CUDA version, Mellanox OFED version). If specified, this option overrides all other building block options (e.g., compiler family, compiler version, CUDA version, Mellanox OFED version, MVAPICH2-GDR version).
-
pgi: Boolean flag to specify whether a PGI build should be used. The default value is False.
-
release: The release of MVAPICH2-GDR to download. The value is ignored is
package
is set. The default value is1
. -
version: The version of MVAPICH2-GDR to download. The value is ignored if
package
is set. The default value is2.3.4
. Due to differences in the packaging scheme, versions prior to 2.3 are not supported.
Examples
mvapich2_gdr(version='2.3.1')
mvapich2_gdr(package='mvapich2-gdr-mcast.cuda10.0.mofed4.3.gnu4.8.5-2.3-1.el7.x86_64.rpm')
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()
nccl(self, **kwargs)
The nccl
building block installs the
NCCL component.
Parameters
-
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
build: Boolean flag to specify whether NCCL should be built from source. The default value is False.
-
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
cuda: Flag to specify the CUDA version of the package to download. The default is
11.6
. This option is ignored if build is True. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
,LIBRARY_PATH
, andPATH
) should be modified to include NCCL. The default is True. This option is ignored if build is False. -
make_variables: Dictionary of environment variables and values to set when building NCCL. The default is an empty dictionary. This option is ignored if build is False.
-
ospackages: List of OS packages to install prior to building. The default values are
make
andwget
. -
prefix: The top level install location. The default value is
/usr/local/nccl
. This option is ignored if build is False. -
repository: The location of the git repository that should be used to build NCCL. If True, then use the default
https://github.com/NVIDIA/nccl.git
repository. The default is empty, i.e., use the release package specified byversion
. -
version: The version of NCCL to install. The default value is
2.12.10-1
.
Examples
nccl(cuda='11.0', version='2.7.6-1')
nccl(build=True, version='2.7.6-1')
nccl.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 = nccl(...)
Stage0 += n
Stage1 += n.runtime()
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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
configure_opts: List of options to pass to
configure
. The default value is an empty list. -
cxx: Boolean flag to specify whether the NetCDF C++ library should be installed. The default is True.
-
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
,LIBRARY_PATH
andPATH
) should be modified to include NetCDF. The default is True. -
fortran: Boolean flag to specify whether the NetCDF Fortran library should be installed. The default is True.
-
ldconfig: Boolean flag to specify whether the NetCDF library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the NetCDF library directory. The default value is False. -
ospackages: List of OS packages to install prior to configuring and building. For Ubuntu, the default values are
ca-certificates
,file
,libcurl4-openssl-dev
,m4
,make
,wget
, andzlib1g-dev
. For RHEL-based Linux distributions the default values areca-certificates
,file
,libcurl-devel
m4
,make
,wget
, andzlib-devel
. -
prefix: The top level install location. The default location is
/usr/local/netcdf
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
version: The version of NetCDF to download. The default value is
4.7.4
. -
version_cxx: The version of NetCDF C++ to download. The default value is
4.3.1
. -
version_fortran: The version of NetCDF Fortran to download. The default value is
4.5.3
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
netcdf(prefix='/opt/netcdf/4.6.1', version='4.6.1')
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()
nsight_compute(self, **kwargs)
The nsight_compute
building block downloads and installs the
[NVIDIA Nsight Compute
profiler]](https://developer.nvidia.com/nsight-compute).
Parameters
-
eula: Required, by setting this value to
True
, you agree to the Nsight Compute End User License Agreement that is displayed when running the installer interactively. The default value isFalse
. -
ospackages: List of OS packages to install prior to building. When using a runfile, the default values are
perl
for Ubuntu andperl
andperl-Env
for RHEL-based Linux distributions. Otherwise, the default values areapt-transport-https
,ca-certificates
,gnupg
, andwget
for Ubuntu and an empty list for RHEL-based Linux distributions. -
prefix: The top level install prefix. The default value is
/usr/local/NVIDIA-Nsight-Compute
. This parameter is ignored unlessrunfile
is set. -
runfile: Path or URL to NSight Compute's
.run
file relative to the local build context. The default value is empty. -
version: the version of Nsight Compute to install. Note when
runfile
is set this parameter is ignored. The default value is2022.4.0
.
Examples
nsight_compute(version='2020.4.0')
nsight_compute(eula=True, runfile='nsight-compute-linux-2020.2.0.18-28964561.run')
nsight_systems(self, **kwargs)
The nsight_systems
building block downloads and installs the
[NVIDIA Nsight Systems
profiler]](https://developer.nvidia.com/nsight-systems).
Parameters
-
cli: Boolean flag to specify whether the command line only (CLI) package should be installed. The default is True.
-
version: The version of Nsight Systems to install. The default value is
2022.5.1
.
Examples
nsight_systems(version='2020.5.1')
nvhpc(self, **kwargs)
The nvhpc
building block downloads and installs the NVIDIA HPC
SDK. By default, the
NVIDIA HPC SDK is installed from a package repository.
Alternatively the tar package can be downloaded by specifying the
tarball
parameter, or a local tar package may used instead by
specifying the package
parameter.
You must agree to the NVIDIA HPC SDK End-User License Agreement to use this building block.
As a side effect, a toolchain is created containing the NVIDIA compilers. The tool can be passed to other operations that want to build using the NVIDIA compilers.
Parameters
-
cuda: The default CUDA version to configure. The default is an empty value, i.e., use the latest version supported by the NVIDIA HPC SDK. This value is ignored if installing from the package repository.
-
cuda_multi: Boolean flag to specify whether the NVIDIA HPC SDK support for multiple CUDA versions should be installed. The default value is
True
. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
,MANPATH
, andPATH
) should be modified to include the NVIDIA HPC SDK. The default is True. -
eula: By setting this value to
True
, you agree to the NVIDIA HPC SDK End-User License Agreement. The default value isFalse
. -
extended_environment: Boolean flag to specify whether an extended set of environment variables should be defined. If True, the following environment variables
CC
,CPP
,CXX
,F77
,F90
, andFC
. If False, then onlyCPATH
,LD_LIBRARY_PATH
,MANPATH
, andPATH
will be extended to include the NVIDIA HPC SDK. The default value isFalse
. -
mpi: Boolean flag to specify whether MPI should be included in the environment. The default value is
True
. -
ospackages: List of OS packages to install prior to installing the NVIDIA HPC SDK. The default value is
ca-certificates
,gnupg
, andwget
for Ubuntu, andca-certificates
for RHEL-based Linux distributions. If not installing from the package repository, then for Ubuntu, the default values arebc
,debianutils
,gcc
,g++
,gfortran
,libatomic1
,libnuma1
,openssh-client
, andwget
, and for RHEL-based Linux distributions, the default values arebc
,gcc
,gcc-c++
,gcc-gfortran
,libatomic
,numactl-libs
,openssh-clients
,wget
, andwhich
. -
package: Path to the NVIDIA HPC SDK tar package file relative to the local build context. The default value is empty.
-
prefix: The top level install prefix. The default value is
/opt/nvidia/hpc_sdk
. This value is ignored when installing from the package repository. -
redist: The list of redistributable files to copy into the runtime stage. The paths are relative to the
REDIST
directory and wildcards are supported. The default is an empty list. -
tarball: Boolean flag to specify whether the NVIDIA HPC SDK should be installed by downloading the tar package file. If False, install from the package repository. The default is False.
-
toolchain: The toolchain object to be used to configure the HPC SDK with a specific GNU toolchain. The default is empty, i.e., use the default GNU toolchain.
-
url: The location of the package that should be installed. The default value is
https://developer.download.nvidia.com/hpc-sdk/nvhpc_X_Y_Z_cuda_multi.tar.gz
, whereX,
Y, and
Z` are the year, version, and architecture whose values are automatically determined. -
version: The version of the HPC SDK to use. Note when
package
is set the version is determined automatically from the package file name. The default value is24.7
.
Examples
nvhpc(eula=True)
nvhpc(eula=True, tarball=True)
nvhpc(eula=True,
url='https://developer.download.nvidia.com/hpc-sdk/nvhpc_2020_207_Linux_x86_64_cuda_11.0.tar.gz')
nvhpc(eula=True,
package='nvhpc_2020_207_Linux_x86_64_cuda_multi.tar.gz',
redist=['compilers/lib/*'])
n = nvhpc(eula=True, ...)
openmpi(..., toolchain=n.toolchain, ...)
nvhpc.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 = nvhpc(redist=[...], ...)
Stage0 += n
Stage1 += n.runtime()
nvshmem(self, **kwargs)
The nvshmem
building block builds and installs the
NVSHMEM component. CMake
version 3.19 or later is required and must be installed separately.
Parameters
-
build_examples: Boolean flag to specify whether the NVSHMEM examples should be built. The default is False.
-
build_packages: Boolean flag to specify whether the RPM and deb packages should be built. The default is False.
-
cmake_opts: List of additional options to pass to
cmake
. The default value is an empty list. -
cuda: Flag to specify the path to the CUDA installation. The default is
/usr/local/cuda
. -
environment: Boolean flag to specify whether the environment (
CPATH
,LIBRARY_PATH
, andPATH
) should be modified to include NVSHMEM. The default is True. -
gdrcopy: Flag to specify the path to the GDRCOPY installation. The default is empty.
-
ldconfig: Boolean flag to specify whether the NVSHMEM library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the NVSHMEM library directory. The default value is False. -
mpi: Flag to specify the path to the MPI installation. The default is empty, i.e., do not build NVSHMEM with MPI support.
-
ospackages: List of OS packages to install prior to building. The default values are
make
andwget
. -
prefix: The top level install location. The default value is
/usr/local/nvshmem
. -
shmem: Flag to specify the path to the SHMEM installation. The default is empty, i.e., do not build NVSHMEM with SHMEM support.
-
version: The version of NVSHMEM source to download. The default value is
2.9.0-2
.
Examples
nvshmem(mpi='/usr/local/nvshmem', version='2.9.0-2')
nvshmem.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 = nvshmem(...)
Stage0 += n
Stage1 += n.runtime()
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 and later, the following packages are installed:
dapl2-utils
, ibutils
, ibverbs-providers
, ibverbs-utils
,
infiniband-diags
, libdapl2
, libdapl-dev
, libibmad5
,
libibmad-dev
, libibverbs1
, libibverbs-dev
, librdmacm1
,
librdmacm-dev
, and rdmacm-utils
.
For RHEL-based 7.x distributions, the following packages are
installed: dapl
, dapl-devel
, ibutils
, libibcm
, libibmad
,
libibmad-devel
, libmlx5
, libibumad
, libibverbs
,
libibverbs-utils
, librdmacm
, rdma-core
, and
rdma-core-devel
.
For RHEL-based 8.x distributions and later, the following packages are
installed: libibmad
, libibmad-devel
, libmlx5
, libibumad
,
libibverbs
, libibverbs-utils
, librdmacm
, rdma-core
, and
rdma-core-devel
.
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()
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(self, **kwargs)
The openblas
building block builds and installs the
OpenBLAS component.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
andPATH
) 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 areTARGET=ARMV8
andUSE_OPENMP=1
. For ppc64le processors, the default values areTARGET=POWER8
andUSE_OPENMP=1
. For x86_64 processors, the default value isUSE_OPENMP=1
. -
ospackages: List of OS packages to install prior to building. The default values are
make
,perl
,tar
, andwget
. -
prefix: The top level installation location. The default value is
/usr/local/openblas
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default is empty.
-
version: The version of OpenBLAS source to download. The default value is
0.3.21
.
Examples
openblas(prefix='/opt/openblas/0.3.1', version='0.3.1')
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(self, **kwargs)
The openmpi
building block configures, builds, and installs the
OpenMPI component.
As a side effect, a toolchain is created containing the MPI compiler wrappers. The tool can be passed to other operations that want to build using the MPI compiler wrappers.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
configure_opts: List of options to pass to
configure
. The default values are--disable-getpwuid
and--enable-orterun-prefix-by-default
. -
cuda: Boolean flag to control whether a CUDA aware build is performed. If True, adds
--with-cuda
to the list ofconfigure
options, otherwise adds--without-cuda
. If the toolchain specifiesCUDA_HOME
, then that path is used. The default value is True. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
andPATH
) 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 ofconfigure
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
, andwget
. For RHEL-based Linux distributions, the default values arebzip2
,file
,hwloc
,make
,numactl-devl
,openssh-clients
,perl
,tar
, andwget
. If therepository
parameter is set, thenautoconf
,automake
,ca-certificates
,git
, andlibtool
are also included. -
pmi: Flag to control whether PMI is used by the build. If True, adds
--with-pmi
to the list ofconfigure
options. If a string, uses the value of the string as the PMI path, e.g.,--with-pmi=/usr/local/slurm-pmi2
. If False, does nothing. The default is False. -
pmix: Flag to control whether PMIX is used by the build. If True, adds
--with-pmix
to the list ofconfigure
options. If a string, uses the value of the string as the PMIX path, e.g.,--with-pmix=/usr/local/pmix
. If False, does nothing. The default is False. -
prefix: The top level install location. The default value is
/usr/local/openmpi
. -
repository: The location of the git repository that should be used to build OpenMPI. If True, then use the default
https://github.com/open-mpi/ompi.git
repository. The default is empty, i.e., use the release package specified byversion
. -
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 ofconfigure
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 ofconfigure
options. The default is False. -
url: The location of the tarball that should be used to build OpenMPI. The default is empty, i.e., use the release package specified by
version
. -
version: The version of OpenMPI source to download. This value is ignored if
directory
is set. The default value is4.0.5
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
openmpi(cuda=False, infiniband=False, prefix='/opt/openmpi/2.1.2',
version='2.1.2')
openmpi(repository='https://github.com/open-mpi/ompi.git')
n = nvhpc(eula=True)
openmpi(toolchain=n.toolchain)
openmpi(configure_opts=['--disable-getpwuid', '--with-slurm'],
ospackages=['file', 'hwloc', 'libslurm-dev'])
openmpi(pmi='/usr/local/slurm-pmi2', pmix='internal')
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(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.
-
aptitude: Boolean flag to specify whether
aptitude
should be used instead ofapt-get
. The default is False. -
apt_keys: A list of GPG keys to add. The default is an empty list.
-
apt_ppas: A list of personal package archives to add. The default is an empty list.
-
apt_repositories: A list of apt repositories to add. The default is an empty list.
-
download: Boolean flag to specify whether to download the deb / rpm packages instead of installing them. The default is False.
-
download_directory: The deb package download location. This parameter is ignored if
download
is False. The default value is/var/tmp/packages_download
. -
epel: Boolean flag to specify whether to enable the Extra Packages for Enterprise Linux (EPEL) repository. The default is False. This parameter is ignored if the Linux distribution is not RHEL-based.
-
extract: Location where the downloaded packages should be extracted. Note, this extracts and does not install the packages, i.e., the package manager is bypassed. After the downloaded packages are extracted they are deleted. This parameter is ignored if
download
is False. If empty, then the downloaded packages are not extracted. The default value is an empty string. -
force_add_repo: Boolean flag to specify whether adding a repository should be considered successful no matter the actual result. This parameter is only valid for yum repositories. The default value is False.
-
ospackages: A list of packages to install. The list is used for both Ubuntu and RHEL-based Linux distributions, therefore only packages with the consistent names across Linux distributions should be specified. This parameter is ignored if
apt
oryum
is specified. The default value is an empty list. -
powertools: Boolean flag to specify whether to enable the PowerTools repository. The default is False. This parameter is ignored if the Linux distribution is not RHEL-based.
-
release_stream: Boolean flag to specify whether to enable the CentOS release stream repository. The default is False. This parameter is only recognized if the Linux distribution is RHEL-based and the version is 8.x.
-
scl: Boolean flag to specify whether to enable the Software Collections (SCL) repository. The default is False. This parameter is only recognized if the Linux distribution is RHEL-based and the version is 7.x.
-
yum: A list of RPM packages to install. The default value is an empty list.
-
yum4: Boolean flag to specify whether
yum4
should be used instead ofyum
. The default is False. This parameter is only recognized if the CentOS version is 7.x. -
yum_keys: A list of GPG keys to import. The default is an empty list.
-
yum_repositories: A list of yum repositories to add. The default is an empty list.
Examples
packages(ospackages=['make', 'wget'])
packages(apt=['zlib1g-dev'], yum=['zlib-devel'])
packages(apt=['python3'], yum=['python34'], epel=True)
pgi(self, **kwargs)
The pgi
building block installs the PGI compiler from a
manually downloaded package.
Note: The NVIDIA HPC SDK has replaced the PGI compilers. The nvhpc building block should be used instead of this building block.
You must agree to the PGI End-User License Agreement to use this building block.
As a side effect, a toolchain is created containing the PGI compilers. The tool can be passed to other operations that want to build using the PGI compilers.
Parameters
-
environment: Boolean flag to specify whether the environment (
LD_LIBRARY_PATH
,PATH
, and potentially other variables) should be modified to include the PGI compiler. The default is True. -
eula: By setting this value to
True
, you agree to the PGI End-User License Agreement. The default value isFalse
. -
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
, andMODULEPATH
. In addition, if the PGI MPI component is selected thenPGI_OPTL_INCLUDE_DIRS
andPGI_OPTL_LIB_DIRS
will also be defined andPATH
andLD_LIBRARY_PATH
will include the PGI MPI component. If False, then onlyPATH
andLD_LIBRARY_PATH
will be extended to include the PGI compiler. The default value isFalse
. -
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
andperl
, and alsowget
(if downloading the PGI compiler rather than using a tarball in the local build context). For RHEL-based Linux distributions, the default values aregcc
,gcc-c++
,numactl-libs
andperl
, and alsowget
(if downloading the PGI compiler rather than using a tarball in the local build context). -
prefix: The top level install prefix. The default value is
/opt/pgi
. -
system_cuda: Boolean flag to specify whether the PGI compiler should use the system CUDA. If False, the version(s) of CUDA bundled with the PGI compiler will be installed. The default value is False.
-
tarball: Path to the PGI compiler tarball relative to the local build context. The default value is empty. This parameter is required.
Examples
pgi(eula=True, tarball='pgilinux-2019-1910-x86_64.tar.gz')
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(self, **kwargs)
The pip
building block installs Python packages from PyPi.
Parameters
-
alternatives: Boolean flag to specify whether to configure alternatives for
python
andpip
. RHEL-based 8.x distributions do not setuppython
by default. The default is False. -
args: List of arguments to pass to pip. The default is
--no-cache-dir
. -
ospackages: List of OS packages to install prior to installing PyPi packages. For Ubuntu, the default values are
python-pip
,python-setuptools
, andpython-wheel
for Python 2.x andpython3-pip
,python3-setuptools
, andpython3-wheel
for Python 3.x. For RHEL-based distributions, the default values arepython2-pip
for Python 2.x andpython3-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 ispip
. -
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')
pmix(self, **kwargs)
The pmix
building block configures, builds, and installs the
PMIX component.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
configure_opts: List of options to pass to
configure
. The default is an empty list. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
, andPATH
) should be modified to include PMIX. The default is True. -
ldconfig: Boolean flag to specify whether the PMIX library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the PMIX library directory. The default value is False. -
ospackages: List of OS packages to install prior to configuring and building. For Ubuntu, the default values are
file
,hwloc
,libevent-dev
,make
,tar
, andwget
. For RHEL-based Linux distributions, the default values arefile
,hwloc
,libevent-devel
,make
,tar
, andwget
. -
prefix: The top level install location. The default value is
/usr/local/pmix
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.
-
version: The version of PMIX source to download. The default value is
4.1.2
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
pmix(prefix='/opt/pmix/3.1.4', version='3.1.4')
pmix.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 = pmix(...)
Stage0 += p
Stage1 += p.runtime()
pnetcdf(self, **kwargs)
The pnetcdf
building block downloads, configures, builds, and
installs the
PnetCDF
component.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
check: Boolean flag to specify whether the
make check
step should be performed. The default is False. -
configure_opts: List of options to pass to
configure
. The default values are--enable-shared
. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
,LIBRARY_PATH
, andPATH
) should be modified to include PnetCDF. The default is True. -
ldconfig: Boolean flag to specify whether the PnetCDF library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the PnetCDF library directory. The default value is False. -
ospackages: List of OS packages to install prior to configuring and building. The default values are
file
,m4
,make
,perl
,tar
, andwget
. -
prefix: The top level install location. The default value is
/usr/local/pnetcdf
. -
toolchain: The toolchain object. A MPI compiler toolchain must be used. The default is to use the standard MPI compiler wrappers, e.g.,
CC=mpicc
,CXX=mpicxx
, etc. -
version: The version of PnetCDF source to download. The default value is
1.12.1
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
pnetcdf(prefix='/opt/pnetcdf/1.10.0', version='1.10.0')
ompi = openmpi(...)
pnetcdf(toolchain=ompi.toolchain, ...)
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(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
andpython-config
(ifdevel
is enabled). RHEL-based 8.x distributions do not setuppython
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
- The default is True.
- python3: Boolean flag to specify whether to install Python version
- The default is True.
Examples
python()
python(python3=False)
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()
rdma_core(self, **kwargs)
The rdma_core
building block configures, builds, and installs the
RDMA Core component.
The CMake building block should be installed prior to this building block.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
,LIBRARY_PATH
, andPATH
) should be modified to include RDMA Core. The default is True. -
ldconfig: Boolean flag to specify whether the RDMA Core library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the RDMA Core library directory. The default value is False. -
ospackages: List of OS packages to install prior to configuring and building. For Ubuntu, the default values are
libudev-dev
,libnl-3-dev
,libnl-route-3-dev
,make
,pkg-config
,python3-docutils
,pandoc
, andwget
. For RHEL-based Linux distributions, the default values arelibnl3-devel
,libudev-devel
,make
,pkgconfig
,pandoc
,python-docutils
, andwget
. If therepository
parameter is set, thenca-certificates
andgit
are also included. -
prefix: The top level install location. The default value is
/usr/local/rdma-core
. -
repository: The location of the git repository that should be used to build RDMA Core. If True, then use the default
https://github.com/linux-rdma/rdma-core.git
repository. The default is empty, i.e., use the release package specified byversion
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.
-
url: The location of the tarball that should be used to build RDMA Core. The default is empty, i.e., use the release package specified by
version
. -
version: The version of RDMA Core source to download. The default value is
31.2
.
Examples
rdma_core(prefix='/opt/rdma-core/31.2', version='31.2')
rdma_core(repository='https://github.com/linux-rdma/rdma-core.git')
rdma_core.runtime(self, _from=u'0')
Generate the set of instructions to install the runtime specific components from a build in a previous stage.
Examples
r = rdma_core(...)
Stage0 += r
Stage1 += r.runtime()
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).
-
_env: Boolean flag to specify whether the general container environment should be also be loaded when executing a SCI-F
%appinstall
block. The default is False (Singularity specific). -
file: The SCI-F recipe file name. The default value is the name parameter with the
.scif
suffix. -
name: The name to use to label the SCI-F application. This parameter is required.
-
_native: Boolean flag to specify whether to use the native Singularity support for SCI-F when generating Singularity definition files. The default is True (Singularity specific).
Examples
pip(packages=['scif'])
s = scif(name='example')
s += openmpi(prefix='/scif/apps/example')
s += shell(commands=[...])
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(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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
branch: The branch of SENSEI to use. The default value is
v2.1.1
. -
catalyst: Flag to specify the location of the ParaView/Catalyst installation, e.g.,
/usr/local/catalyst
. If set, then the Catalyst building block should be installed prior to this building block. The default value is empty. -
cmake_opts: List of options to pass to
cmake
. The default value is-DENABLE_SENSEI=ON
. -
libsim: Flag to specify the location of the VisIt/Libsim installation, e.g.,
/usr/local/visit
. If set, then the Libsim building block should be installed prior to this building block. Thevtk
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
, andmake
. -
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')
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()
slurm_pmi2(self, **kwargs)
The slurm_pmi2
building block configures, builds, and installs
the PMI2 component from SLURM.
Note: this building block does not install SLURM itself.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
configure_opts: List of options to pass to
configure
. The default is an empty list. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
CPATH
andLD_LIBRARY_PATH
) should be modified to include PMI2. The default is False. -
ldconfig: Boolean flag to specify whether the PMI2 library directory should be added dynamic linker cache. If False, then
LD_LIBRARY_PATH
is modified to include the PMI2 library directory. The default value is False. -
ospackages: List of OS packages to install prior to configuring and building. The default values are
bzip2
,file
,make
,perl
,tar
, andwget
. -
prefix: The top level install location. The default value is
/usr/local/slurm-pmi2
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.
-
version: The version of SLURM source to download. The default value is
21.08.8
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
slurm_pmi2(prefix='/opt/pmi', version='20.11.9')
slurm_pmi2.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 = slurm_pmi2(...)
Stage0 += p
Stage1 += p.runtime()
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
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
branch: The git branch to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the default branch for the repository. -
commit: The git commit to clone. Only recognized if the
repository
parameter is specified. The default is empty, i.e., use the latest commit on the default branch for the repository. -
configure_opts: List of options to pass to
configure
. The default values are--enable-optimizations
,--disable-logging
,--disable-debug
,--disable-assertions
,--disable-params-check
, and--disable-doxygen-doc
. -
cuda: Flag to control whether a CUDA aware build is performed. If True, adds
--with-cuda=/usr/local/cuda
to the list ofconfigure
options. If a string, uses the value of the string as the CUDA path. If the toolchain specifiesCUDA_HOME
, then that path is used. If False, adds--without-cuda
to the list ofconfigure
options. The default value is an empty string. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
,LIBRARY_PATH
, andPATH
) 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 ofconfigure
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 ofconfigure
options. The default is an empty string, i.e., include neither--with-gdrcopy
not--without-gdrcopy
and letconfigure
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 ofconfigure
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 ofconfigure
options. The default is an empty string, i.e., include neither--with-knem
not--without-knem
and letconfigure
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 ofconfigure
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 ofconfigure
options. The default is an empty string, i.e., include neither--with-verbs
not--without-verbs
and letconfigure
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
, andwget
. For RHEL-based Linux distributions, the default values arebinutils-devel
,file
,make
,numactl-devel
, andwget
. If therepository
parameter is set, thenautoconf
,automake
,ca-certificates
,git
, andlibtool
are also included. -
prefix: The top level install location. The default value is
/usr/local/ucx
. -
repository: The location of the git repository that should be used to build UCX. If True, then use the default
https://github.com/openucx/ucx.git
repository. The default is empty, i.e., use the release package specified byversion
. -
toolchain: The toolchain object. This should be used if non-default compilers or other toolchain options are needed. The default value is empty.
-
url: The location of the tarball that should be used to build UCX. The default is empty, i.e., use the release package specified by
version
. -
version: The version of UCX source to download. The default value is
1.9.0
. -
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes. -
xpmem: Flag to control whether XPMEM is used by the build. If True, adds
--with-xpmem
to the list ofconfigure
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 ofconfigure
options. The default is an empty string, i.e., include neither--with-xpmem
not--without-xpmem
and letconfigure
try to automatically detect whether XPMEM is present or not.
Examples
ucx(cuda=False, prefix='/opt/ucx/1.4.0', version='1.4.0')
ucx(cuda='/usr/local/cuda', gdrcopy='/usr/local/gdrcopy',
knem='/usr/local/knem', xpmem='/usr/local/xpmem')
ucx(repository='https://github.com/openucx/ucx.git')
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(self, **kwargs)
The xpmem
building block builds and installs the user space
library from the XPMEM
component.
Parameters
-
annotate: Boolean flag to specify whether to include annotations (labels). The default is False.
-
branch: The branch of XPMEM to use. The default value is
master
. -
configure_opts: List of options to pass to
configure
. The default values are--disable-kernel-module
. -
disable_FEATURE: Flags to control disabling features when configuring. For instance,
disable_foo=True
maps to--disable-foo
. Underscores in the parameter name are converted to dashes. -
enable_FEATURE[=ARG]: Flags to control enabling features when configuring. For instance,
enable_foo=True
maps to--enable-foo
andenable_foo='yes'
maps to--enable-foo=yes
. Underscores in the parameter name are converted to dashes. -
environment: Boolean flag to specify whether the environment (
CPATH
,LD_LIBRARY_PATH
andLIBRARY_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.
-
with_PACKAGE[=ARG]: Flags to control optional packages when configuring. For instance,
with_foo=True
maps to--with-foo
andwith_foo='/usr/local/foo'
maps to--with-foo=/usr/local/foo
. Underscores in the parameter name are converted to dashes. -
without_PACKAGE: Flags to control optional packages when configuring. For instance
without_foo=True
maps to--without-foo
. Underscores in the parameter name are converted to dashes.
Examples
xpmem(prefix='/opt/xpmem', branch='master')
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(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. -
force_add_repo: Boolean flag to specify whether adding a repository should be considered successful no matter the actual result. The default value is False.
-
keys: A list of GPG keys to import. The default is an empty list.
-
ospackages: A list of packages to install. The default is an empty list.
-
powertools: Boolean flag to specify whether to enable the PowerTools repository. The default is False. This parameter is only recognized if the distribution version is 8.x.
-
release_stream: Boolean flag to specify whether to enable the CentOS release stream repository. The default is False. This parameter is only recognized if the distribution version is 8.x.
-
repositories: A list of yum repositories to add. The default is an empty list.
-
scl: - Boolean flag to specify whether to enable the Software Collections (SCL) repository. The default is False. This parameter is only recognized if the distribution version is 7.x.
-
yum4: Boolean flag to specify whether
yum4
should be used instead ofyum
. The default is False. This parameter is only recognized if the distribution version is 7.x.
Examples
yum(ospackages=['make', 'wget'])