High Performance Computing

High performance computing (HPC) refers to aggregated computing power. This grouping of computers can be referred to as a cluster, and the individual computers in a cluster are nodes.

Anatomy of a Node

A node has most of the same parts as a desktop or laptop computer. It has memory/RAM, storage, and a processor/CPU (or processors). However, a node is usually more powerful than a standard desktop or laptop. The following table compares my desktop, a Mac mini purchased in early 2021, to an Atlas compute node.

Mac mini versus standard Atlas node
SpecificationMac miniAtlas Compute Node
Processor Cores848
Graphics Processing Cores8 
Memory (gigabytes)16384
Storage (gigabytes)5002000 (local, plus access to a shared filesystem)

Benefits of High Performance Computing

As our tools generate more and more data, the time and resources needed to analyze the data grow larger. Sometimes, completing an analysis on a desktop or laptop is possible but takes too long. In other cases, the size of the data might be larger than the resources available on the machine.

In the simplest case, running some analysis on a single Atlas node offers several benefits over running the same analysis on the average desktop.

  • Remote execution: The analysis isn’t running on your machine.
    • Not subject to portability concerns
    • Not subject to infrastructure concerns such as insufficient cooling around your desktop or laptop
  • Power: An Atlas node is most likely more powerful than your desktop.
    • More processor cores can mean more analyses run in parallel or more efficient analyses run sequentially
    • More memory and storage can handle larger data (I have accidentally shut down my desktop this way).
    • Counterpoint: Powerful desktop server in the research group.
  • Manageability: Someone else supports the machine.
    • Who wants to support a desktop server?
    • Scientists want to focus on research, not tech support.

When the data can be split into discrete chunks (individual samples in an experiment), each chunk can be analyzed on a separate node to parallelize the analysis. When the data can’t be split into chunks, certain programs can use the resources of multiple nodes as though running on a single large node.