Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

C-SON Atlas

Run a configured set of parameterized notebooks to generate atlas calculations and export results. The workflow is driven by a single YAML file and a thin CLI wrapper.

Quick Start

./run.sh workflow.yml

On SLURM systems:

./run.sh --sbatch workflow.yml

run.sh Interface

run.sh is the primary entrypoint. It:

Usage:

./run.sh [--sbatch] <workflow.yml>

The --sbatch flag submits a short SLURM wrapper via a heredoc. Edit the SBATCH directives in run.sh to tune wallclock, nodes, or CPU allocation.

Configuration (workflow.yml)

The YAML file defines both cluster settings and the notebooks to execute.

dask_cluster_kwargs:
  account: m4632
  queue_name: premium
  n_nodes: 1
  n_tasks_per_node: 128
  wallclock: 02:00:00
  scheduler_file: null

notebooks:
  - title: "Domain Sizing"
    children:
      - notebooks/regional-domain-sizing.ipynb:
          parameters:
            grid_yaml: blueprints/.../_grid.yml
            test: true
          output_path: executed/domain-sizing/example.ipynb

Notes:

Dask Cluster Lifecycle

When SLURM is available, atlas_engine.application uses atlas_engine.utils.dask_cluster to manage a Dask cluster per section that has use_dask_cluster: true.

The connected scheduler_file is injected into each notebook’s parameters as dask_cluster_kwargs.scheduler_file, so notebooks in that section reuse the same cluster. If the scheduler file is stale, the cluster helper will attempt to relaunch when possible.

If SLURM is not available, the code falls back to a local Dask cluster.

What application.py Does

MyST TOC Updates

After execution, myst.yml is updated to the layout:

project:
  toc:
    - file: README.md
    - title: Domain Sizing
      children:
        - file: executed/domain-sizing/example.ipynb

Development Notes