Skip to content

External Research Computing and Data 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♯