Reproducible Research
- Modern scientific research is complex and requires software environments.
- Computational reproducibility helps to enable reproducible science, but is not sufficient by itself.
- Reproducible computational software environments that use hardware acceleration require additional information.
- New technologies make all of these processes easier.
- Reproducible computational software environments are a first step toward fully reusable scientific workflows but are not sufficient by themselves.
Introduction to Pixi
- Pixi uses a project based workflow and a declarative project manifest file to define project operations.
- Pixi automatically creates or updates a hash level lock file anytime the project manifest or dependencies are mutated.
- Pixi allows for multi-platform and multi-environment projects to be defined in a single project manifest and be fully described in a single lock file.
Backwards compatibility with conda
- If you need to use conda, you can export Pixi workspace environment to formats conda can use.
- Exporting conda explicit spec files from Pixi locked environments provides the ability to create the same hash level locked environment with conda that Pixi solved.
Conda packages
- Conda packages are specially named
.zip
files that contain files and symbolic links structured in a directory tree.
CUDA conda packages
- The
cuda-version
metapackage can be used to specify constrains on the versions of the__cuda
virtual package andcudatoolkit
. - Pixi can specify a minimum required CUDA version with the
[system-requirements]
table. - Pixi can solve environments for platforms that are not the system platform.
- NVIDIA’s open source team and the conda-forge community support the CUDA conda packages on conda-forge.
- The
cuda
metapackage is the primary place to go for user documetnation on the CUDA conda packages.
Deploying Pixi environments with Linux containers
- Pixi environments can be easily installed into Linux containers.
- As Pixi environments contain the entire software environment, the Linux container build script can simply install the Pixi environment.
- Using GitHub Actions workflows allows for the build process to happen automatically through CI/CD.
Using Pixi environments on HTC Systems
- You can use containerized Pixi environments with HTC systems to be able to run CUDA accelerated code that you defined.