Skip to content

List of Online Resources

This is a list of online resources, such as tutorials.

Jargon

  • HPC = High Performance Computing - systems focused on performance at the expense of ease of use and error-proofing

Basics

One must have a some understanding of the components of a computer in order to understand the meaning of resource requests in job scripts.

  • What is a computer?
  • What does what in your computer? Computer parts explained. -- While this video shows a personal computer, the servers used in High Performance Computing (HPC) clusters are very similar, with only minor differences.
    • Things to know - without a grasp of what these things are, the various options in Slurm will make little sense:
      • What is a CPU?
      • What is a core? Socket?
      • What is RAM/memory?
      • What is storage/disk?
      • What is the difference between local storage and network storage?
      • What is a network?
      • What is a GPU?

Tutorials

Linux Command Line Interface (CLI)

Bash

Matlab

Perl

Python

R

Range of Subjects

  • The Programming Historian - "novice-friendly, peer-reviewed tutorials that help humanists learn a wide range of digital tools, techniques, and workflows to facilitate research and teaching."

High Performance Computing

  • HPC Wiki founded by ProPE with funding from the German Science Foundation.

Software Performance

  • MIT Open CourseWare: 6.172 Performance Engineering of Software Systems (Fall 2018)
    • 6.172 is an 18-unit class that provides a hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, caching optimizations, parallel programming, and building scalable systems. The course programming language is C.

Computer Science Theory and Practice

Training

The Carpentries organizations provide training to researchers on applied computer programming and data analysis.

  • Software Carpentry - Teaching basic lab skills for research computing
  • Data Carpentry - Data Carpentry develops and teaches workshops on the fundamental data skills needed to conduct research. Our mission is to provide researchers high-quality, domain-specific training covering the full lifecycle of data-driven research.
  • HPC Carpentry - HPC Carpentry is a set of teaching materials designed to help new users take advantage of high-performance computing systems. No prior computational experience is required - these lessons are ideal for either an in-person workshop or independent study.

Q&A Sites

Unix and Linux

Programming

Books

These are not online books, but may be useful as supplementary material. Listing here is not endorsement.

Linux Command Line

Bash

Python