Draft : Have you checked your IPC performance lately ?

IPC mechanisms in UNIX systems were developed for a range of different purposes, but their performance is increasingly unpredictable due to diversification in multicore hardware layouts and the popularity of OS virtualisation. Perhaps surprisingly, no standard benchmarking suite exists to compare the performance of different IPC mechanisms on a machine. To address this need, we developed ipc-bench, and discovered significant and sometimes counter-intuitive differences when running on many-core and virtualised hardware. In this paper, we characterise a subset of these results on hardware available to us. However, we also make a much larger data set available, and provide means to enable a wider community to gather further data on a larger scale. ipc-bench integrates with revision control to make it easy to record and publish performance results, aggregate them and track their provenance using a popular code sharing website. We hope that making this tool available will result in a corpus of useful open data to guide the development of hypervisors, kernels and programming frameworks.