DUNE computing training¶
Self-paced tutorials for new collaborators: from your first login to the DUNE machines, through running LArSoft, to submitting jobs and analysing data. DUNE Software and Computing maintains the core lessons, and the HEP Software Foundation (HSF) lessons fill in the general skills.
New to the shell, git or Python? Do these first:
Start here¶
Work through these three DUNE lessons in order. Each one builds on the last.
Computing Basics
Log in to the DUNE machines and find your way around: storage spaces, CVMFS, finding data with MetaCat and Rucio, and setting up software with UPS and Spack.
LArSoft Basics
Run art and LArSoft jobs, build code with mrb, and modify an existing LArSoft module.
Batch Computing
Submit and monitor jobs with justIN and on the grid, and debug the ones that fail.
Find a tutorial¶
31 more tutorials and references, from DUNE and from the wider HEP community. Use the filters to narrow them down.
No tutorials match these filters.
DUNE tools and reference¶
Documentation for the DUNE services you will meet once you start running jobs and handling data.
Hardware Database (HWDB)
Record detector components through the web UI, the REST API, the iPad app and the Python upload tool.
Conditions Database
Store and read run conditions for DUNE and ProtoDUNE data.
ProtoDUNE Conditions Data Service
How ProtoDUNE conditions data are served to jobs through Frontier.

Data Catalog (MetaCat)
DUNE's metadata conventions and worked MetaCat queries for finding files and datasets.
justIN documentation
Reference and cookbook for justIN, DUNE's workflow system for running jobs at scale.
Computing FAQ
Answers on FHiCL, git and MetaCat, plus the monthly DUNE computing newsletters.
abcDUNE glossary
Look up the acronyms and jargon you will hear in DUNE meetings.
DUNE Spack Project
Build and develop DUNE software with Spack and MPD, the replacement for UPS and mrb.
DUNE Phlex Project
Workflow reference and conventions for moving DUNE code from art to the Phlex framework.
Physics and analysis¶
Tutorials and example code for simulating DUNE detectors and analysing their output.
ND simulation tutorial
Simulate events in the ND-LAr near detector, then analyse the HDF5 output in a Jupyter notebook. Runs on the DUNE machines or in Binder.

DUNE plot style
The official DUNE style for matplotlib and ROOT plots, with examples of 1D, 2D, stacked and data/MC plots.
LArSoft examples
Example LArSoft modules and gallery ROOT scripts to copy and adapt after LArSoft Basics.

ndlar_flow
Reconstruction for the near detector and its 2x2 prototype, written as h5flow modules. Includes an analysis guide.

h5flow
The Python framework behind ndlar_flow for parallel processing of HDF5 files.

WAFFLES
Analyse photon detector waveforms from ProtoDUNE with this Python framework and its examples.

MaCh3 DUNE
DUNE's implementation of the MaCh3 Bayesian oscillation fitter, with Docker images to get started.

CAFAna (lblpwgtools)
Long-baseline oscillation analysis tools built on CAF files.
duneanaobj
The StandardRecord that defines what is in a DUNE CAF file.
Phlex examples for DUNE
Example code for DUNE's Phlex-based software stack.
Software skills from HSF¶
HEP Software Foundation lessons on the tools that DUNE software is built and shipped with.
Advanced git
Practise branching, rebasing and merging in an interactive game.
Containers with Apptainer
Run software inside Singularity/Apptainer containers, as you do on the DUNE machines.
Docker
Build and run your own container images.
CMake
Write and understand the CMake build files used across DUNE packages.
CI/CD on GitHub
Test and build your code automatically with GitHub Actions.
HEP C++ course
Modern C++ from the basics to expert topics, with exercises.
Analysis skills from HSF¶
General HEP analysis lessons that apply directly to DUNE data.
Matplotlib for HEP
Make publication-quality physics plots. Pairs with the DUNE plot style.
ROOT
The ROOT team's introductory course for students.
Scikit-HEP
Read ROOT files and analyse them in Python with uproot, awkward and hist.
Array-oriented programming
Think in arrays with NumPy and Awkward Array for fast columnar analysis.
Deep learning for HEP
Neural networks from first principles, aimed at particle physicists.
LHCb Analysis Essentials
A complete starter course covering shell, Python, ROOT and git in one place.
Getting help¶
Slack. Ask in #computing_training_basics on the DUNE Slack. The training team and other learners answer there.
Email. Write to dune-computing-training@fnal.gov.
Found a problem in a lesson? Open an issue on that lesson's repository, linked from its card, or just open an issue on this site's repository.
Inspired by the HSF Training Center. Want your tutorial listed? See Add a tutorial.
