Running and Compiling Applications on a Linux Supercomputer

Learn How To Become a Professional HPC User

Compared to your desktop, running an application on a supercomputer is a bit more complicated. However, with some basic knowledge and the articles below, you will be able to harness the power of your cluster in no time and run your simulations or calculations on hundreds of nodes in parallel.

0. Introduction

The terms “HPC”, “High Performance Computer”, “Cluster” and “Supercomputer” are often used to describe a system of connected computers which are used for simulations, data analysis like in “Big Data” or calculations. In this context, one computer which is doing a part of the calculations is referred to as a “node” or less often as a “server” of the super computer.

In contrast to the desktop world, Linux is the dominating operation system on HPC systems. The reasons for this are manifold. The first supercomputers and mainframes in the 20th century used Unix when Windows or even DOS did not exist yet. Unix also supported multiple users on one system long before Windows did. Thus, administrators and users of super computers where used to Unix. With Linux becoming popular in the 90th and being a Unix clone, researchers and administrators had a well know system to freely use, modify and develop for. Thus, many applications used in research and development were written for Unix or Linux. Beside the historical reasons there are of course also financial considerations: For the price of hundreds of Windows licences you can get more hardware if you use Linux.

1. The Fundamentals

  1. Building Blogs of a Supercomputer
  2. Connecting to a Supercomputer
  3. Transfering Files to a Supercomputer

2. Simple Hardware Details You Should Know About

  1. A Song Of CPUs, Processors and Cores
  2. Memory – Two Simple Facts You Should Know
  3. Storage
  4. Networks
  5. Accelerators: Of GPGPUs and Knights

3. Running Applications on Linux Systems

  1. The Linux Command Line – “The Shell”
  2. Working with Files
  3. Starting Applications on Linux – Your Path Matters!
  4. Helpful Linux Command Line Tools on your Cluster

4. Software You Should Know About

  1. Modules – Selecting the Right Software for the Job
  2. Math Libraries – Oh the Math!
  3. OpenMP – Your Application Can Run on Multiple Cores in Parallel
  4. MPI – Running Your Applications on Multiple Nodes

5. Running Applications

  1. Running Applications on a Supercomputer
  2. Batch System Jobs – Guardians of the Supercomputer
    1. PBS
    2. SLURM
    3. IBM LoadLeveler
    4. GridEngine

6. Compiling Applications

  1. Compilers
  2. When you Should Consider Compiling your Applications Yourself
  3. Compiling an Application on Linux

Leave a Reply

Your email address will not be published. Required fields are marked *