Skip to content

[lumi-container-wrapper] [package list]

lumi-container-wrapper/0.2.6-cray-python-default (lumi-container-wrapper-0.2.6-cray-python-default.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider lumi-container-wrapper/0.2.6-cray-python-default.

EasyConfig:

easyblock = 'Binary'

name =          'lumi-container-wrapper'
version =       '0.2.6'
versionsuffix = '-cray-python-default'

homepage = 'https://github.com/CSCfi/hpc-container-wrapper'

whatis = [
    'Description: Tool for wrapping a software environment in an Apptainer/Singularity containerm, also know as tykky.'
    'Info: This version uses whatever cray-python module already loaded, or will load the default cray-python module'
]

description = """
The lumni-container-wrapper module provides a tool to create Conda and
Python package installations using an existing container. The basic idea is to
nstall software through a container, convert this into a filesystem image and
mount this filesystem image when running the container.

The main goal is to reduce the number of files on disk, and reduce the IO load
when installations are started. If you are not running on a parallel filesystem
with a lot of users and load, these points might not be that relevant. Tykky
is developed and tested only on Lustre (the filesystem used on LUMI) so benefits
might be different on other parallel filesystems.

The tool originally started as a way to package conda installations using container,
as they cause a significant load on the filesystem. The idea being that using the
tool should be very simple and as similar as possible to an un-containerized
installation (drop in replacement for the majority of cases). This means that we
try to hide the container as much as possible from the end-user.

This version of the module will use whatever version of cray-python is already
loaded, or load the default version. Note that the default version of cray-python
will change over time as other versions of the Cray Programming Environment become
the default version. Versions of cray-python also are uninstalled when the 
corresponding version of the Cray Programming Environment is removed from the system,
so wrappers made with pip-containerize will stop working at that point and will 
need to be regenerated with another version of cray-python. You can recover the
requirements.txt file in that case from the share subdirectory of the directory
in which you build the wrapper.

The tool is developed by Henrik Nortamo at CSC and known on the Finnish national
systems as tykky.
"""

usage = """
Initialize new conda environment:

  conda-containerize new --prefix /path/to_install conda_env.yaml

Update already existing environment:

  conda-containerize update --post-install post.sh /path/to_install

Initialize new python environment with pip requirements to install:

  pip-containerize new --prefix /path/to_install req.txt

To start your environment simply run the program from bin/ subdirectory of the installation directory.
"""

docurls = [
    'Web-based documentation on https://docs.lumi-supercomputer.eu/computing/containers/tykky/'
]

toolchain = SYSTEM

sources = [{
#    'download_filename': 'v%(version)s.tar.gz',
#    'source_urls':       ['https://github.com/CSCfi/hpc-container-wrapper/archive/refs/tags']
    'filename':          '%(namelower)s-%(version)s.tar.gz',
    'git_config': {
        'url':       'https://github.com/CSCfi',
        'repo_name': 'hpc-container-wrapper',
        'tag':       'v%(version)s'
    },
    'extract_cmd': 'tar --strip-components=1 -xf %s'
}]

dependencies = [
    ('cray-python', EXTERNAL_MODULE),
]

extract_sources = 'True'

buildininstalldir = 'True'

install_cmd = 'bash install.sh lumi'

sanity_check_paths = {
    'files': ['bin/conda-containerize', 'bin/pip-containerize'],
    'dirs':  ['bin', 'frontends'],
}

moduleclass = 'tools'

[lumi-container-wrapper] [package list]