Stefan Kaestle
Oracle Labs, Zurich, Switzerland
About me Smelt Shoal Research

Contact form

Smelt

Introduction

We observe that efficient synchronization becomes increasingly important within multicore machines as a result of current hardware trends. First, multicores offer more hardware-parallelism, which requires software to be more parallel as well. Concurrently executing threads then need an efficient way of synchronizing themselves.

Second, as resources in multicores are more distributed, there is an effort to explore how to program multicores as distributed system. In such cases, services are replicated and consequently, synchronization is needed for replicated services to communicate.

Pairwise send time on 8x2x2 AMD Opteron 6378 (in cycles)

While it is increasingly important to consider hardware characteristics to achieve good performance of synchronization primitives, at the same time hardware becomes too complex for many programmers to understand. As a result, they struggle to tune programs to work well on a wide set of multicore hardware.

In response, we develop Smelt, where we explore how to build multicast tree topologies automatically for synchronization within a multicore. Smelt has two key ideas: First, we develop a multicore machine model to evaluate the performance of message passing algorithms. The model can be generated fully automatically and captures characteristics of multicore hardware. Based on that, we use a Simulation approach to generate a machine-aware tree topology out of peer-to-peer message channels automatically based on the machine model generate for each machine.

Automatically generated tree topology for 2x4x2 Intel Bloomfield Processor

Resources

Machine-Aware Atomic Broadcast Trees for Multicores
Stefan Kaestle, Reto Achermann, Roni Haecki, Moritz Hoffmann, Sabela Ramos, and Timothy Roscoe
Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI'16), Savannah, GA, USA, November 2016.
paper  

Hardware database

We evaluate Smelt on a wide set of machines and present our results on machinedb.systems.ethz.ch.

Source-code

Smelt is available from github.

Joined work with

  • Reto Achermann
  • Roni Haecki
  • Moritz Hoffmann
  • Sabela Ramos
  • Timothy Roscoe