8.1 Environment files

NCA-ADS · Software and Environment Management (6% of the exam) · Official objective: “Contributing to reproducibility in data science projects by maintaining environment files”

env.yaml and requirements.txt, and versioned project configuration.

Key points

  1. An environment file is a text file that lists the packages a project needs. Anyone can rebuild the same environment from it.

    What NVIDIA says (2)

    “To begin, you will need to create a few local files for your custom build: a Dockerfile and a configuration file ( env.yaml for conda or requirements.txt for pip).”

    — RAPIDS Deployment: Custom RAPIDS Docker guide

    “When using conda , edit your local env.yaml file to add the desired libraries.”

    — RAPIDS Deployment: Custom RAPIDS Docker guide

  2. AI Workbench is NVIDIA's tool for managing data science projects in containers. Keeping environment config next to code lets anyone rebuild it.

    What NVIDIA says (2)

    “Versioned configuration files let you define and adapt environments to machines and users.”

    — NVIDIA AI Workbench: Introduction

    “Both code and environment are Git managed with changes detected and surfaced in the Desktop App.”

    — NVIDIA AI Workbench: Introduction

Key terms

Sample question

You build a custom RAPIDS container. Which file lists the libraries to install when you use conda?

Show the answer

Answer: An env.yaml file (requirements.txt plays this role for pip)

An environment file is a text file that lists the packages a project needs. Anyone can rebuild the same environment from it.

What NVIDIA says (2)

“To begin, you will need to create a few local files for your custom build: a Dockerfile and a configuration file ( env.yaml for conda or requirements.txt for pip).”

— RAPIDS Deployment: Custom RAPIDS Docker guide

“When using conda , edit your local env.yaml file to add the desired libraries.”

— RAPIDS Deployment: Custom RAPIDS Docker guide

Practice 8.1 (2 questions) Full Software and Environment Management guide

← 7.5 Node importance and network visualization · 8.2 Conda, pip and Docker →