Content from Using Markdown


Last updated on 2025-09-25 | Edit this page

Estimated time: 12 minutes

Overview

Questions

  • How do you write a lesson using Markdown and sandpaper?

Objectives

  • Explain how to use markdown with The Carpentries Workbench
  • Demonstrate how to include pieces of code, figures, and nested challenge blocks

Introduction


This is a lesson created via The Carpentries Workbench. It is written in Pandoc-flavored Markdown for static files and R Markdown for dynamic files that can render code into output. Please refer to the Introduction to The Carpentries Workbench for full documentation.

What you need to know is that there are three sections required for a valid Carpentries lesson:

  1. questions are displayed at the beginning of the episode to prime the learner for the content.
  2. objectives are the learning objectives for an episode displayed with the questions.
  3. key points are displayed at the end of the episode to reinforce the objectives.

Inline instructor notes can help inform instructors of timing challenges associated with the lessons. They appear in the “Instructor View”

Challenge

Challenge 1: Can you do it?

What is the output of this command?

R

paste("This", "new", "lesson", "looks", "good")

OUTPUT

[1] "This new lesson looks good"
Challenge

Challenge 2: how do you nest solutions within challenge blocks?

You can add a line with at least three colons and a solution tag.

Figures


You can use standard markdown for static figures with the following syntax:

![optional caption that appears below the figure](figure url){alt='alt text for accessibility purposes'}

Blue Carpentries hex person logo with no text.
You belong in The Carpentries!
Callout

Callout sections can highlight information.

They are sometimes used to emphasise particularly important points but are also used in some lessons to present “asides”: content that is not central to the narrative of the lesson, e.g. by providing the answer to a commonly-asked question.

Math


One of our episodes contains \(\LaTeX\) equations when describing how to create dynamic reports with {knitr}, so we now use mathjax to describe this:

$\alpha = \dfrac{1}{(1 - \beta)^2}$ becomes: \(\alpha = \dfrac{1}{(1 - \beta)^2}\)

Cool, right?

Key Points
  • Use .md files for episodes when you want static content
  • Use .Rmd files for episodes when you need to generate output
  • Run sandpaper::check_lesson() to identify any issues with your lesson
  • Run sandpaper::build_lesson() to preview your lesson locally

Content from Introduction to HPC Systems


Last updated on 2025-09-25 | Edit this page

Estimated time: 0 minutes

Overview

Questions

  • Did you know you have to have this question section?

Objectives

  • Describe the purpose of an HPC system and what it does
  • Differentiate between characteristics and features of HPC and cloud-based systems
  • List the benefits for using an HPC system
  • Identify how an HPC system could benefit you
  • Summarise the typical arrangement of an HPC system’s components
  • Summarise the capabilities of the NOCS HPC facilities
  • Summarise the key capabilities of IRIDIS5/6/X for NOCS applications
  • Summarise key capabilities of national HPC resources and how to access them

Lesson content goes here

Key Points
  • You need a list of key points

Content from Accessing and Using HPC Resources


Last updated on 2025-09-25 | Edit this page

Estimated time: 0 minutes

Overview

Questions

  • Did you know you have to have this question section?

Objectives

  • Summarise the process for applying for access to IRIDIS / OpenOnDemand
  • Summarise how access to HPC systems is typically secured
  • Describe how to connect to an HPC system using an SSH client program
  • Describe how to transfer files to and from an HPC system over an SSH connection
  • Summarise best practices for managing generated research data
  • Explain how the shell environment changes when the module mechanism loads or unloads packages

Lesson content goes here

Key Points
  • You need a list of key points

Content from Introduction to Job Scheduling


Last updated on 2025-09-25 | Edit this page

Estimated time: 0 minutes

Overview

Questions

  • Did you know you have to have this question section?

Objectives

  • Describe briefly what a job scheduler does
  • Summarise how to query the available resources on an HPC system
  • Describe a minimal job submission script and parameters that need to be specified
  • Summarise how to submit a batch job and monitor it until completion
  • Contrast when to run programs on an HPC login node vs running them on a compute node
  • Summarise the process for requesting and using an interactive job

Lesson content goes here

Key Points
  • You need a list of key points

Content from Introduction to Programmatic Parallelism


Last updated on 2025-09-26 | Edit this page

Estimated time: 0 minutes

Overview

Questions

  • Did you know you have to have this question section?

Objectives

  • Describe the concept of parallelisation and its significance in improving performance
  • Compare and contrast the operations and benefits of shared and distributed memory systems
  • Differentiate between parallelising programs via processes and threads
  • Define a race condition and how to avoid them

Lesson content goes here

Key Points
  • You need a list of key points

Content from Introduction to HPC Technologies


Last updated on 2025-09-25 | Edit this page

Estimated time: 0 minutes

Overview

Questions

  • Did you know you have to have this question section?

Objectives

  • Differentiate at a high level between the features of OpenMP, MPI, CUDA and AI/ML approaches and what they are used for
  • Briefly summarise the main OpenMP compiler directives and what they do
  • Describe how to compile and run an OpenMP program
  • Briefly summarise the main MPI message-passing features and how they are used
  • Describe how to compile and run an MPI program
  • Describe the advantages and drawbacks for using a hybrid OpenMP/MPI approach
  • Briefly summarise how a CUDA program is written
  • Describe why code scalability is important when using HPC resources
  • Describe the differences between strong and weak scaling
  • Summarise the dangers of premature optimisation

Lesson content goes here

Key Points
  • You need a list of key points