Theme: Computer Architecture

Computer architecture and hardware-software interaction

Level: Intermediate

Typical duration: 2 days

Lectures: 11h

Labs: 5h

Course code: CA2M

Today, most applications use a single digit percentage of the computing power available. This course is an introduction to how to improve this number.

Training topics

Computer Architecture concepts - from basic to advanced
How software exploits modern hardware
High throughput computing (basics)

We offer a comprehensive overview of current topics in computer architecture - from the basic Von Neumann schema to its modern-day expansions. We explain how to understand hardware-software interaction to take advantage of all available compute hardware. We discuss specific architectural features (such as execution ports, branching algorithms, etc), instruction sets, compilers, memory operation and architecture, as well as fundamentals of floating point and acceleration. A final link to domain-specific computing demonstrates how the concepts discussed relate to practical challenges.

The labs serve as an introduction and include benchmarking and performance gain estimates on selected examples.



After the course, the students will:
- Understand the architecture of modern platforms and processors, and to use this knowledge in a business, scientific or engineering context
- Write and compile efficient code, fully controlling the computer
- Use the Seven Dimensions of Performance to write scalable code
- Understand the operation and key features of compilers

Training concepts

From the basic Von Neumann model to modern processors
Scaling through the Seven Dimensions of Performance - from vectors to datacenters
Controlling hardware options of computers
GPU and accelerator techniques primer