Memory Performance Workshop

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

  • 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.

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.