Cliff Click is a legend in the world of compilers, distributed systems, a software engineer's engineer. He is known as a life-long developer, founder, and brilliant speaker. Now for the first time, he delivers a full-day workshop that can teach every developer something new, and most importantly, share the insights of a leading practitioner who built some of the things we use daily.
This training will be comprised of three 2-hour workshops, with breakfast, lunch, and coffee breaks included.
High Performance from Understanding the Low Levels
A deep dive into modern X86 hardware. We look at caches and caching behavior, data-races (and how they show up on an X86), Specter and Meltdown, the Java Memory Model, CPU performance details (e.g. wide and O-O-O issue, hit-under-miss caches, branch prediction) and memory bandwidth - and relate them to writing performant code. We then tear down a simple Big Data analytics processing loop, make some small changes and get a 5x speedup. The (Java) Virtual Machine
A look at Virtual Machines far and wide, with a deep dive into the Java Virtual Machine. We'll cover JIT'ing and GC'ing; bytecode cost models & class loading; deoptimization (and re-opt); safepoints; virtual calls & dynamic dispatch; threading and memory models; fast locks & faster locks; OS support (priorities, files, mmap, time) and much much more. Parallel and Distributed Computing and Debugging
Parallel computing is everywhere and distributed computing is not far behind. Both bring serious challenges, including data-races, consistency and timing, "Heisen-Bugs", testing, parallel-design thinking, performance, profiling and bottlenecks. Note this session is not about micro-services and deployment, but about coding and getting correctness in a parallel & distributed environment.