Some background on high performance computing
At a high level, all computers consist of three main components: input, output, and the processing unit.The input devices are the mouse and keyboard, the output device is the screen, and the processing unit is everything else:
- Processing chip: this is the key component performing the calculations needed. The two main architectures are CPUs (Central Processing Unit, used for most tasks) and GPUs (Graphic Processing Unit, historically dedicated to gaming, now commonly used for AI models). The differences are not important for the sake of this course.
- Memory: this is the computer’s short-term memory. Data in use is stored here to be quickly accessed by the processor.
- Storage: this is typical disk storage, either on hard disk (HDD) or solid-state (SDD) drives; it’s the computer’s long-term memory.
While for most everyday tasks it is enough to have all three in the same place (e.g. a laptop or desktop computer), for intensive computations more processing resources are needed. We can then keep the input and output components on our desk, but move the processing unit elsewhere, where multiple computers are grouped in a room similar to a warehouse: this is what we call a data centre. In this way, the processing unit can be efficiently shared across multiple users, accessing it at their convenience. This is particularly common in science, and referred to by different names such as scientific computing or high performance computing (HPC).

The ‘cloud’ is no different, as it refers to a data centre operated by a company (a cloud operator) which allows users remote access to shared services. Despite the name, the cloud is very much supported by large scale physical infrastructures. As of 2025, some of the largest ones include Google Cloud, Amazon Web Services and Microsoft Azure.