GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Martin Thompson, High-Performance & Low-Latency Specialist at Real Logic

Martin Thompson

Biography: Martin Thompson

Martin is a high-performance and low-latency specialist, with over two decades working with large scale transactional and big-data systems, in the automotive, gaming, financial, mobile, and content management domains. He believes in Mechanical Sympathy, which is applying an understanding of the hardware to the creation of software, being 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.  

Twitter: @mjpt777
Video presentations: 4YOW! 2011: Martin Thompson - On Concurrent Programming and Concurrency Folklore

Presentation: Java vs. C/C++ Panel

Time: Wednesday 12:10 - 13:00 / Location: French

This is a question that almost everyone doing a major project asks: should I use C++, or Erlang, or Java, or C#? Maybe it is more abstract than that, such as, should I use native code, like C++, or a managed runtime, like Java? Mostly, this is a matter of taste. Or is it? When it comes to ultimate performance, most applications are native, C++/C, with even having some hand crafted assembler mixed in. But can Java, or any managed runtime in general, do nearly as good? Or maybe it could do better than native code. What could applications do to leverage the most out of these languages? With C++11, has the game changed? With Java 7 or 8, has the game changed? Or has the game really changed with the acceptance of Erlang? These and more, fellow developers, will be questions asked on this panel. It is native code vs. managed runtime in the game of performance!
Panel: Gil Tene, Martin Thompson, Tom Rodgers, Artur Laksberg
Moderator: Todd Montgomery

Presentation: Challenging the myths and folklore in developing high-performance systems

Time: Wednesday 14:00 - 14:50 / Location: French

Building high-performance systems is tough. Today this is especially tough since a lot of the common wisdom for what makes a system high-performance is misleading at best, and often just plain wrong. This talk aims to expose the myths and  folklore commonly found on the web related to building high-performance systems.

Martin will cover his updated top 10 performance myths that even folk building high-performance trading or big data systems fall prey to. Taking an approach of "measure everything" has been an enlightening education into what works and what does not to achieve high-throughput at low-latencies.  This talk highlights the findings of working on systems requiring the extremes of performance and how they truly test any high-performance systems design.  Topics covered will include Java and C programming, 3rd party libraries, concurrency, and getting the best out of our operating systems, networks, and storage.

Workshop: Lock-free and High-Performance algorithms

Time: Friday 09:00 - 16:00 / Location: Training 4

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.