Martin Thompson, TweetHigh-Performance Computing Specialist / Track Host
Biography: Martin Thompson
Martin is a high-performance and low-latency specialist, with experience gained over two decades working with large scale transactional and big-data domains, including automotive, gaming, financial, mobile, and content management. He believes Mechanical Sympathy - applying an understanding of the hardware to the creation of software - is fundamental to delivering elegant, high-performance, solutions. Martin was the co-founder and CTO of LMAX, until he left to specialise in helping other people achieve great performance with their software. The Disruptor concurrent programming framework is just one example of what his mechanical sympathy has created.
Blog: Mechanical Sympathy
Video presentations: 4YOW! 2011: Martin Thompson - On Concurrent Programming and Concurrency Folklore
Jackie Stewart, the Formula 1 racing legend, believed that to be a great driver one must have a mechanical sympathy for how a car works to get the best out of it. He described this as the driver working in harmony with their car. To this day he is considered by many to be the smoothest, and possibly the greatest, driver ever. He stopped after 3 world titles to focus on car safety having seen so many of his friends die behind the wheel of a race car.
I this session we will attempt to bust the “myth” that computer hardware has become so complicated that no average developer could possibly understand the platform on which their software is executing. Martin believes it is possible for the modern developer to sufficiently understand our platforms to the same extent that a racing driver can understand the mechanics of their racing cars.
Make no mistake, modern hardware is like a modern racing car. This hardware is phenomenally fast and only held up by the unsympathetic software modern developers subject it to in their quest to turn code into heat and stack traces!
This session will cover CPUs, memory, networking and storage IO. The attendees will get the opportunity to understand how these work and what considerations they can apply to have their software performing like a race car rather than a bumper car. You get the chance to see if this myth can be busted.
What does it really mean for a system to scale? How do we know we have built a system that scales to meet the business requirements in a cost effective manner? With ever increasing transaction and data volumes we need to take such questions a lot more seriously. It is now becoming critical for many businesses to focus in on the IT costs per user; otherwise they are not profitable. “Just throw hardware at the problem”, is getting tired and just does not wash for many organisations.
In this session we quantify what it means to design systems in a scalable and cost effective manner. Don’t worry this will not be a software accountancy session, however fixed and marginal costs will be discussed. We need to stay grounded using measurement. The session will explore the design of performance tests, profiling, and a range of techniques addressing common scalability bottlenecks.
Over the last year since moving on from LMAX, Martin has been helping many clients scale and improve the performance of their systems. One of the areas often focused on is, “How can we do better than the Disruptor?” The techniques illustrated in this session will show how dramatic improvements are still possible in concurrent programming as new approaches are unveiled.
This session is aimed at those who want to design systems secure in the knowledge that when additional capacity is required, then the business sees the economies of scale and not increased marginal cost per transaction.
Understanding Mechanical Sympathy
- Performance considerations on modern hardware
- How modern x86-64 hardware informs concurrent and high performance programming techniques
- Memory models for software and hardware
- Why contention of any type is the enemy and how to avoid it
- How we manage contention when we absolutely must
Concurrent and High-performance Algorithm Design
- Lock-free concurrency primitives
- Signalling state change
- Ensuring order
- Preventing speculative execution during critical data exchanges
- Managing contended state
- Wait-free techniques
- API design to avoid the latency J-curve
- Efficient back-off strategies
- Discovering hidden contention and how to avoid it
The candidates should have Java 6 or 7, and Ant installed.