hpc-python

HPC Python lesson materials

https://github.com/hpc-carpentry/hpc-python

Science Score: 18.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary

Keywords

english hpc-carpentry hpc-carpentry-lab hpc-python lesson pre-alpha
Last synced: 8 months ago · JSON representation ·

Repository

HPC Python lesson materials

Basic Info
Statistics
  • Stars: 61
  • Watchers: 14
  • Forks: 50
  • Open Issues: 12
  • Releases: 0
Topics
english hpc-carpentry hpc-carpentry-lab hpc-python lesson pre-alpha
Created over 8 years ago · Last pushed over 3 years ago
Metadata Files
Readme Contributing License Code of conduct Citation Codeowners

README.md

HPC Python

This is the HPC Carpentry Python lesson.

This lesson is focused on teaching the basics of high-performance computing (HPC). There are 4 primary components to this lesson. Each component is budgeted half a day's worth of teaching-time, resulting in a two day workshop.

  1. UNIX fundamentals
  2. Working on a cluster
  3. Programming language introduction/review
  4. Introduction to parallel programming

Sections 3 and 4 (programming) will feature two programming languages: Python and Chapel. There are strong arguments for both languages, and instructors will be able to choose which language they wish to teach in.

Topic breakdown and todo list

The lesson outline and rough breakdown of topics by lesson writer is in lesson-outline.md. The topics there will be initially generated by the lesson writer, and then reviewed by the rest of the group once complete.

Lesson writing instructions

This is a fast overview of the Software Carpentry lesson template. This won't cover lesson style or formatting (address that during review?).

For a full guide to the lesson template, see the Software Carpentry example lesson.

Lesson structure

Software Carpentry lessons are generally episodic, with one clear concept for each episode (example). We've got 4 major sections, each section should be broken up into several episodes (perhaps the higher-level bullet points from the lesson outline?).

An episode is just a markdown file that lives under the _episodes folder. Here is a link to a markdown cheatsheet with most markdown syntax. Additionally, the Software Carpentry lesson template uses several extra bits of formatting - see here for a full guide. The most significant change is the addition of a YAML header that adds metadata (key questions, lesson teaching times, etc.) and special syntax for code blocks, exercises, and the like.

Episode names should be prefixed with a number of their section plus the number of their episode within that section. This is important because the Software Carpentry lesson template will auto-post our lessons in the order that they would sort in. As long as your lesson sorts into the correct order, it will appear in the correct order on the website.

Publishing changes to GitHub + the GitHub pages website

The lesson website is viewable at hpc-carpentry.github.io/hpc-python.

The lesson website itself is auto-generated from the gh-pages branch of this repository. GitHub pages will rebuild the website as soon as you push to the GitHub gh-pages branch. Because of this gh-pages is considered the "master" branch.

Previewing changes locally

Obviously having to push to GitHub every time you want to view your changes to the website isn't very convenient. To preview the lesson locally, run make serve. You can then view the website at localhost:4000 in your browser. Pages will be automatically regenerated every time you write to them.

Note that the autogenerated website lives under the _site directory (and doesn't get pushed to GitHub).

This process requires Ruby, Make, and Jekyll. You can find setup instructions here.

Example lessons

A couple links to example SWC workshop lessons for reference:

Owner

  • Name: HPC Carpentry
  • Login: hpc-carpentry
  • Kind: organization

Lessons for novice users of large scale shared computing systems.

Citation (CITATION)

FIXME: describe how to cite this lesson.

GitHub Events

Total
  • Watch event: 2
  • Fork event: 2
Last Year
  • Watch event: 2
  • Fork event: 2

Dependencies

Gemfile rubygems
  • github-pages >= 0 development
  • kramdown-parser-gfm >= 0
  • mdl >= 0
.github/workflows/test_and_build.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • actions/setup-ruby v1 composite