Skip to content
0:00 / 0:00

#jvm#cache#out-of-orderexecution

A Crash Course in Modern Hardware by Cliff Click

Devoxx

172K subscribers • 52 videos on Hallway • Conference channel

YouTube
  • Recommended by 4 people: 3 on Hacker News and 1 on Lobsters.
  • A classic. People kept recommending it from 2017 to 2025.
  • Presented by Cliff Click, CTO of Neurensic

Intermediate. Assumes working knowledge.

20K views9 years ago4 recommendations

Systems programmingHardwareCPUs and computer architecturePerformance and optimizationConcurrency and parallelism

Cliff Click explains how modern out-of-order CPUs, memory hierarchies, and caches interact, and how these hardware realities affect software performance.

I walk through a tiny performance example on a modern out-of-order CPU, and basically show that (1) single-threaded performance is tapped out, (2) all the action is with multi-threaded programs and (3) the memory subsystem. I discuss the Von Neumann architecture, CISC vs RISC, the rise of multicore, Instruction-Level Parallelism (ILP), pipelining, out-of-order dispatch, static vs dynamic ILP, performance impact of cache misses, memory performance, memory vs CPU caching, examples of memory/CPU cache interaction, and tips for improving performance. Cliff Click is the CTO of Neurensic, and before that the CTO and Co-Founder of h2o.ai, the makers of H2O an open source math and machine learning engine for Big Data. Cliff wrote his first compiler when he was 15 (Pascal to TRS Z-80!), although Cliff’s most famous compiler is the HotSpot Server Compiler (the Sea of Nodes IR). That compiler showed the world that JIT'd high quality code was possible, and was at least partially responsible for bringing Java into the mainstream. Cliff helped Azul Systems build an 864 core pure-Java mainframe that keeps GC pauses on 500Gb heaps to under 10ms, and worked on all aspects of that JVM. Cliff is invited to speak regularly at industry and academic conferences and has published many papers about Hot [PUX-9752]

Why it's here

4 people recommend this

What people say. Recommended as an accessible and highly informative refresher on how CPU caches work and their impact on software performance.

zellynon Hacker News • Recommends

On “Cold, Hard Cache – Insomniac Games’ Cache Simulator [slides]”

Coincidentally, I just watched this last night: it's a really accessible refresher if you're a bit outdated on how all these caches work and interact: link to this video

tjalfion Hacker News • Recommends

On “Intel to disable TSX by default on more CPUs with new microcode”

I'm also a fan of Cliff and other Rice alumni; here are a few of his videos that I like. 0 The Sea of Nodes and the HotSpot JIT 1 A JVM Does That? 2 A Crash Course in Modern Hardware 3 Bits of Advice for the VM Writer 0 link 1 link 2 link to this video 3 link

NovaXon Hacker News • Recommends

On “Microbenchmarks: HashMap, ConcurrentHashMap, and Guava Caches”

…s a good attempt but flawed. 1. You should use JMH to handle warmup, jit, timings, averaging of runs, etc. You might enjoy the following talks on the subject, though I am sure there are other gems out there. - Performance Anxiety: link - Benchmarking for Good: link - (The Art of) (Java) Benchmarking: link - A Crash Course in Modern Hardware: link to this video - How NOT to Write a Microbenchmark link - Anatomy of a flawed microbenchmark link 2. An uncontended lock is basically free, as you noticed. 3. Guava does implement the Map interface via asMap(). It also have a concurrencyLevel to adjust its performance. It is based on Java 5's CHM. 4. Caffeine is a Guava Cache rewrite based on Java 8's…

SeanTAllenon Lobsters • Recommends

A Crash Course in Modern Hardware by Cliff Click

programming-talkscurated list on GitHubMentions

Under “Hardware”

A Crash Course in Modern Hardware 00:59:20 by **Cliff Click** (2016)

u/alex_sakutain r/C_Programming • Mentions

On “How would using C benefits in these projects?”

>Mike Acton’s 2014 CPP con talk Is it this: Mike Acton’s 2014 CPP con talk? >Cliff Click’s “crash course in modern hardware” Is it this: Cliff Click’s “crash course in modern hardware”? Saved both resources, thanks :)

dr_zoidbergon Hacker News • Mentions

On “Why Python is Slow: Looking Under the Hood (2014)”

While the name of the talk implies it's a generally-speaking-talk, Click goes into a lot of detail of how the JVM works in his "A Crash Course in Modern Hardware" presentation0. I saw it a while ago, but I think he does mention those things. Of course that's the one I saw and remember, but you could probably find another presentation in which he goes into much better detail about the JVM and its inner workings. 0 link to this video

belteron Hacker News • Mentions

On “IBM mainframe beats other platforms for cost and performance”

…and marvel at what is today the state of the art in computing. We are talking about sustained, full on 5.2 GHz, all the time. Massive IO bandwith, ECC memory everywhere, massive caches, native crypto co-processors. All this, while your x86, most likely, spends most of its time waiting on memory... "A Crash Course in Modern Hardware by Cliff Click" link to this video IBM z15 (8561) Technical Guide link link What cloud vendors are doing is using, sometimes, custom hardware to create a mainframe at cloud scale. Its just due to the sheer incompetence of IBM management, that they were unable to leverage their mainframe technologies, and offer cloud offerings that would be competitive on a price per comp…

xk3on Hacker News • Mentions

On “The Engine of the Future”

I understood the main points pretty well and the reasoning behind most of them. I don't work in the gaming industry. I draw upon these resources for my context: - link - Mike Acton "Data-Oriented Design and C++" link - A Crash Course in Modern Hardware by Cliff Click link to this video - GCAP 2017: Decima Visibility in HZD link - GPU-Based Run-Time Procedural Placement in HZD link - link I say this only to make the point that optimization is not completely inaccessible to the average person. It is useful to understand what the hardware is doing--up to a certain point; good abstractions are also necessary.