How to use the hpccm.templates function in hpccm

To help you get started, we’ve selected a few hpccm examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github NVIDIA / hpc-container-maker / hpccm / building_blocks / cmake.py View on Github external
import posixpath
import re

import hpccm.config
import hpccm.templates.rm
import hpccm.templates.tar
import hpccm.templates.wget

from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.packages import packages
from hpccm.common import cpu_arch, linux_distro
from hpccm.primitives.comment import comment
from hpccm.primitives.shell import shell
from hpccm.primitives.environment import environment

class cmake(bb_base, hpccm.templates.rm, hpccm.templates.tar,
            hpccm.templates.wget):
    """The `cmake` building block downloads and installs the
    [CMake](https://cmake.org) 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](https://gitlab.kitware.com/cmake/cmake/raw/master/Copyright.txt).
    The default value is `False`.

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

    prefix: The top level install location.  The default value is
github NVIDIA / hpc-container-maker / hpccm / building_blocks / catalyst.py View on Github external
import hpccm.templates.envvars
import hpccm.templates.ldconfig
import hpccm.templates.rm
import hpccm.templates.tar
import hpccm.templates.wget

from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.packages import packages
from hpccm.common import linux_distro
from hpccm.primitives.comment import comment
from hpccm.primitives.copy import copy
from hpccm.primitives.environment import environment
from hpccm.primitives.shell import shell
from hpccm.toolchain import toolchain

class catalyst(bb_base, hpccm.templates.CMakeBuild, hpccm.templates.envvars,
               hpccm.templates.ldconfig, hpccm.templates.rm,
               hpccm.templates.tar, hpccm.templates.wget):
    """The `catalyst` building block configures, builds, and installs the
    [ParaView Catalyst](https://www.paraview.org/in-situ/) component.

    The [CMake](#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](https://hub.docker.com/r/nvidia/cudagl) base image is
    recommended.

    # Parameters
github NVIDIA / hpc-container-maker / hpccm / building_blocks / gnu.py View on Github external
import hpccm.templates.git
import hpccm.templates.ldconfig
import hpccm.templates.rm
import hpccm.templates.tar
import hpccm.templates.wget

from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.packages import packages
from hpccm.common import linux_distro
from hpccm.primitives.comment import comment
from hpccm.primitives.copy import copy
from hpccm.primitives.environment import environment
from hpccm.primitives.shell import shell
from hpccm.toolchain import toolchain

class gnu(bb_base, hpccm.templates.ConfigureMake, hpccm.templates.envvars,
          hpccm.templates.git, hpccm.templates.ldconfig, hpccm.templates.rm,
          hpccm.templates.tar, hpccm.templates.wget):
    """The `gnu` building block installs the GNU compilers from the
    upstream Linux distribution.

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

    # Parameters

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

    configure_opts: List of options to pass to `configure`.  The
    default value is `--disable-multilib`. This option is only
github NVIDIA / hpc-container-maker / hpccm / building_blocks / knem.py View on Github external
"""KNEM building block"""

from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function

import posixpath

import hpccm.templates.envvars

from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.generic_build import generic_build
from hpccm.building_blocks.packages import packages
from hpccm.primitives.comment import comment

class knem(bb_base, hpccm.templates.envvars):
    """The `knem` building block install the headers from the
    [KNEM](http://knem.gforge.inria.fr) component.

    # Parameters

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

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

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

    prefix: The top level install location.  The default value is
    `/usr/local/knem`.
github NVIDIA / hpc-container-maker / hpccm / building_blocks / openblas.py View on Github external
from __future__ import print_function

import posixpath

import hpccm.config
import hpccm.templates.envvars
import hpccm.templates.ldconfig

from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.generic_build import generic_build
from hpccm.building_blocks.packages import packages
from hpccm.common import cpu_arch
from hpccm.primitives.comment import comment
from hpccm.toolchain import toolchain

class openblas(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig):
    """The `openblas` building block builds and installs the
    [OpenBLAS](https://www.openblas.net) component.

    # Parameters

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

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

    ldconfig: Boolean flag to specify whether the OpenBLAS library
    directory should be added dynamic linker cache.  If False, then
    `LD_LIBRARY_PATH` is modified to include the OpenBLAS library
    directory. The default value is False.
github NVIDIA / hpc-container-maker / hpccm / building_blocks / magma.py View on Github external
from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function

import posixpath

import hpccm.templates.envvars
import hpccm.templates.ldconfig

from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.generic_cmake import generic_cmake
from hpccm.building_blocks.packages import packages
from hpccm.primitives.comment import comment

class magma(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig):
    """The `magma` building block configures, builds, and installs the
    [MAGMA](https://icl.cs.utk.edu/magma) component.

    The [CMake](#cmake) building block should be installed prior to
    this building block.

    Either the [MKL](#mkl) or [OpenBLAS](#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.
github NVIDIA / hpc-container-maker / hpccm / building_blocks / generic_autotools.py View on Github external
import hpccm.templates.ConfigureMake
import hpccm.templates.annotate
import hpccm.templates.downloader
import hpccm.templates.envvars
import hpccm.templates.ldconfig
import hpccm.templates.rm

from hpccm.building_blocks.base import bb_base
from hpccm.primitives.comment import comment
from hpccm.primitives.copy import copy
from hpccm.primitives.environment import environment
from hpccm.primitives.label import label
from hpccm.primitives.shell import shell
from hpccm.toolchain import toolchain

class generic_autotools(bb_base, hpccm.templates.ConfigureMake,
                        hpccm.templates.annotate, hpccm.templates.downloader,
                        hpccm.templates.envvars, hpccm.templates.ldconfig,
                        hpccm.templates.rm):
    """The `generic_autotools` building block downloads, configures,
    builds, and installs a specified GNU Autotools enabled package.

    # Parameters

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

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

    branch: The git branch to clone.  Only recognized if the
    `repository` parameter is specified.  The default is empty, i.e.,
github NVIDIA / hpc-container-maker / hpccm / building_blocks / pgi.py View on Github external
import hpccm.config
import hpccm.templates.envvars
import hpccm.templates.rm
import hpccm.templates.tar
import hpccm.templates.wget

from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.packages import packages
from hpccm.common import cpu_arch, linux_distro
from hpccm.primitives.comment import comment
from hpccm.primitives.copy import copy
from hpccm.primitives.environment import environment
from hpccm.primitives.shell import shell
from hpccm.toolchain import toolchain

class pgi(bb_base, hpccm.templates.envvars, hpccm.templates.rm,
          hpccm.templates.tar, hpccm.templates.wget):
    """The `pgi` building block downloads and installs the PGI compiler.
    Currently, the only option is to install the latest community
    edition.

    You must agree to the [PGI End-User License Agreement](https://www.pgroup.com/doc/LICENSE.txt) 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)