Why is Memory Performance Important?
Modern CPUs are incredibly fast, but they spend a surprising amount of time waiting for data. If your program is limited by memory bandwidth or latency, adding more cores or a faster CPU won’t help — the memory subsystem becomes the bottleneck. Optimizing memory performance often gives bigger speedups than micro-optimizing instructions, especially in data-intensive applications. In short: faster memory access = faster software.
Who is This Workshop For?
This workshop is designed for:
- C and C++ developers who want to understand and fix memory bottlenecks.
- Performance engineers looking to push systems closer to hardware limits.
- Teams working on high-performance software in areas like algorithmic trading, machine learning, telecom, embedded, or scientific computing.
- Anyone who has profiled their application and found that “the CPU is waiting on memory.”
Workshop Details
- Prerequisites: C or C++ knowledge on an intermediate level.
- Duration: 2 days or 4 half-days
- Agenda: see bellow
- Hardware and software prerequisites: see bellow
- Training materials:
- Slides for the workshop participants.
- Practical labs after most units of the workshop.
- Source code for all examples mentioned in the workshop.
- Written language: English
- Spoken language of the workshop: English or German
Types of Sessions
- Public online sessions, see bellow for details on available dates and pricing.
- Private online sessions: on request
- Private onsite sessions: on request
Public Online Sessions
- Public online sessions are organized when enough participants register.
- Number of participants: at most 12.
- We offer public sessions in two times:
- Two 8-hour sessions starting from 9 AM – 5 PM CET (Germany, France), 8 AM – 4 PM GMT (United Kingdom), 1:30 PM – 9:30 PM IST (India) and 4 PM -12 AM CST (China).
- Four 4-hour sessions starting from 5 PM – 9 PM CET (Germany, France), 11 AM – 3 PM (New York) and 8 AM – 12 PM (California).
- Registration
- To express your wish participate at a workshop, send an e-mail at info [at] johnnysswlab [dot] com (Registration for Memory Performance Workshop, Hi! My name is YOUR_NAME. I would like to register for the the memory performance workshop …) with your full name and the preferred times.
- We will inform you about the dates of the workshop once enough people register. At most you will wait three months; we will organize the workshop regardless of number of participants.
- Price
- International wire transfer:
- Full price: € 749, $799
- Discounted price: € 599, $639, for people who register for the workshop up to 30 days before the workshop starts.
- Paypal (you can pay with Visa or Master card)
- Full price: € 809, $859
- Discounted price: € 649, $689, for people who register for the workshop up to 30 days before the workshop starts.
- International wire transfer:
Agenda
| Memory Performance Workshop |
|---|
| Introduction to Memory Subsystem |
| Decreasing Total Memory Accesses |
| Measuring Memory Subsystem Performance |
| Changing the Data Access Pattern to Increase Locality |
| Changing the Data Layout: Classes |
| Changing the Data Layout: Data Structures |
| Changing the Data Layout: Data Structures |
| Decreasing the Dataset Size |
| Changing the Memory Layout |
| Increasing instruction-level parallelism |
| Software prefetching for random data accesses |
| Decreasing TLB cache misses |
| Saving the memory subsystem bandwidth |
| Branch prediction and data caches |
| Multithreading and the Memory Subsystem |
| Low-latency applications |
| Remaining topics |
Hardware and Software Prerequisites
You only need a laptop with x86-64 or ARM64 CPU, running Windows, Linux/WSL, or macOS, with one of the following compilers installed: MSVC, GCC, or Clang.
