Class 1#

Introductions#

  • Your Instructor

  • Students

  • Syllabus

  • What you’ll need for this class

    You’ll need a computer to work on. Easiest is if you have a laptop you can bring to class. Otherwise, let me know so we can figure something out.

    High-Performance Computing is dominated by Linux. MacOS is essentially built on top of a UNIX environment, hence is pretty much interchangeable with Linux as far as this class goes. Windows is significantly different. If you’re running Windows, I strongly recommend using WSL2 (Windows Subsystem for Linux), which allows you to run Linux under Windows, and will give you that same environment as everyone else.

    An alternative might to be to use Github Codespaces.

Supercomputers#

At UNH:#

  • UNH’s maintains a “newer” Cray supercomputer, called “Marvin” (a.k.a. “Plasma”). It has been installed in 2020.

  • Research Computing Center at UNH: https://www.unh.edu/research/research-computing-center/areas-expertise

  • Many groups have their own workstations / clusters.

Sign up for github and the class#

  • Sign up for the class Discord at this link.

  • Sign up for github (unless you already have a github account, you can just use that).

  • Email me, so I can add you to the “github organization” (UNH-HPC-2026) for this class.

GitHub Wiki#

In recent years, this class has used a GitHub Wiki to store the class materials, which is a quick and easy way to put them up in a somewhat nicely formatted and organized way, and which makes it easy for anyone (including you, the students) to edit them.

This year, I’m trying out using sphinx for the materials. Sphinx is a popular documentation generator, essentially the de-facto standard for many open-source projects, in particular those using Python. It does mean that editing isn’t quite as simple as clicking the “Edit” button on a given Wiki page, but it’s a useful tool to be familiar with, and it’s still fairly easy to edit the documentation.

We will use GitHub a lot as we go, including me putting up sample code, and you using it to get / submit your coding assignments.

Across GitHub, there are a number of places that allow the user to write simple text with a bit of added mark-up and have it formatted nicely, e.g., as headlines, bullet lists, or to include code fragments. Example are bug reports (“Issues”) or “Pull Requests”, ie., requests to merge one’s coding work into a project. Github Wikis also use this same format. Sphinx traditionally uses a different text format that serves the same purpose called “ReStructured Text”, but I’ve considered the Sphinx site you’re looking at to use (almost) the same format that github uses, which is actually called markdown. markdown is one flavor of a lightweight mark-up language, similar but not the same as used on wikipedia, as this one is more tailored towards coding. An overview of the supported mark-up is available from GitHub.

Your turn#

You can look at the “source code” for a given page here by clicking on the “Invertocat” (the Github icon), then selecting “suggest an edit”, which will take you to the corresponding file in the github repository where this site lives.

However, to keep things yet simpler, let’s use an actual Github wiki to practice: UNH-HPC-2026/iam851

Create a new page about yourself. To do this, click the “New Page” button, then use your name as the title and write something. After saving the page, navigate to the Students page, edit it and add a link to the page you just created. [As you’ll find out, there’s always many different ways to achieve the same thing when it comes to computers. Alternatively, you can go to the Students page first, create the link, and when you click on that link, github will ask whether you want to create that new page for yourself.]

Eventually, your task is to make a page about yourself (or something else – this is on the public internet right now, so be aware of whatever you want to share), try out some of the formatting styles, and add a picture or other external resource. As you’ll use mark-down throughout the class, you’ll frequently want to copy&paste code snippets or commands / error messages, so this is an opportunity to learn how to do so with proper formatting, too.

Homework#

  • (next Tue) Finish the “Your Turn” / “In-class Exercise” assignments above. (This will always be part of a given class’ homework, even if not explicitly stated.)

  • (by next class) Make sure your account signups are all set.

  • (next Tue) Go through this small first github classroom assignment that introduces git and github.

  • (by next class) Pick something you would like to learn about git or version control in general and do some research about it. Be prepared to write a couple of sentences about this topic next class.

Additional Resources#