Track: Bare Knuckle Performance

Location: Windsor, 5th flr.

Day of week: Tuesday

If you want to learn about state of the art performance approaches and solutions then this is the track for you. You can learn about how to achieve low latency, how to make the best use of your underlying hardware and how to scale out to solve problems on a global scale.

Track Host: Richard Warburton

Software Engineer, Teacher and Java Champion & cofounder of Opsian.com

Richard is a Software Engineer, Teacher and Java Champion. He is the cofounder of Opsian.com and has a long-standing passion for improving Java performance. He’s worked as a developer in different areas including Developer Tools, HFT and Network Protocols. He has written the book “Java 8 Lambdas” for O’Reilly and helps developers learn via http://iteratrlearning.com and http://www.pluralsight.com/author/richard-warburton. Richard is an experienced conference speaker having spoken at dozens of events and sat on conference committees for some of the biggest conferences in Europe and the USA. He holds a PhD in Computer Science from The University of Warwick.

Applying Concurrency Cookbook Recipes to SPEC JBB

Our overarching goal was to understand, quantify and highlight the consequences of certain choices of fences when compiling Java constructs down to hardware platforms such as ARM, IBM Power or Intel x86. We used Doug Lea's cookbook as a compilation guide, and SPEC JBB as our reference benchmark. More precisely, we followed the recipes appearing in the cookbook and applied them to SPEC JBB. This talk reports our findings, both from a soundness and efficiency point of view. We hope that the attendees of this talk will benefit from:

  1. an introduction to relaxed memory consistency as implemented in Java, which in turn motivates the need for memory barriers in concurrent code;
  2. a presentation of our performance analysis methodology;
  3. a detailed report on the performance implications of memory barriers, specifically:
  • on the performance measurement front: we use Java Micro-benchmarking Harness (JMH) to understand and showcase these performance implications better;
  • on the performance analysis front: we look at profiling snippets to be able to highlight hot code;
  • on the performance study front: we examine the implications of the use of memory barriers on core and SMT scaling.

Monica Beckwith, Java VM Performance Architect @Arm, previously led Oracle's G1GC Performance Team
Jade Alglave, Lecturer @ucl

Continuous Profiling in Production: What, Why and How

Everyone wants to understand what their application is really doing in production, but this information is normally invisible to developers. Profilers tell you what code your application is running but few developers profile and mostly on their development environments. Thankfully production profiling is now a practical reality that can help you solve and avoid performance problems. 

Profiling in development can be problematic because it’s rare that you have a realistic workload or performance test for your system. Even if you’ve got accurate perf tests maintaining these and validating that they represent production systems is hugely time consuming and hard. Not only that but often the hardware and operating system that you run in production are different from your development environment. 

This pragmatic talk will help you understand the ins and outs of profiling in a production system. You’ll learn about different techniques and approaches that help you understand what’s really happening with your system. This helps you to solve new performance problems, regressions and undertake capacity planning exercises.

Richard Warburton, Software Engineer, Teacher and Java Champion & cofounder of Opsian.com
Sadiq Jaffer, Director at Opsian

Interaction Protocols: It's All About Good Manners

Distributed and concurrent systems can be considered a social group that collaborate to achieve collective goals. In order to collaborate a system of rules must be applied that affords good hygiene, fault tolerance, and effective communication to coordinate, share knowledge, and provide feedback in a trusted manner. These rules form a number of protocols which enable the group to act as a system which is greater than the sum of the individual components. 

In this talk we will explore the history of protocols and their application when building distributed systems. Protocols provide the foundation on which the quality attributes are delivered. Qualities such as performance, resilience, and security.

Martin Thompson, High Performance & Low Latency Specialist

Novel Algos and Optimizations in JCTools Concurrent Queues

Bitwise tricks, memory layout, minimal memory ordering primitives and some innovation result in queues that leave their JDK alternatives in the dust.
In this talk we will follow several examples of optimizations, tradeoffs and implementation details from the JCTools library. In addition we will explore the driving forces behind some of JCTools novel algorithms and their applicability.

Nitsan Wakart, Performance Engineer - Consultant @DataStax & Chief Performance Consultant at TTNR Labs

Tracks

  • Career Hacking

    Strategies for advancing the skills that advance your career. Look for mentoring, speaking, empathy, and career paths.

  • Advances in FinTech

    Finance is king in London. What's happening and what should you be paying attention to with modern #FinTech

  • Security from First Principles

    How do you actually start with a security mindset? Learn techniques for making security a first-class concern.

  • Tech Ethics: The Intersection of Human Welfare & STEM

    What does it mean to be ethical in software? Hear how the discussion is evolving and what is being said in ethics today.

  • Bare Knuckle Performance

    Killing latency and getting the most out of your hardware.

  • Evolving Java & the JVM

    6 month cadence, cloud-native deployments, scale, Graal, Kotlin, and beyond. Learn how the role of Java and the JVM is evolving.