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