Computer Laboratory

ipc-bench: A UNIX inter-process communication benchmark

Running ipc-bench

You can very easily run ipc-bench on your own machines, and we encourage you to do so and submit the results for inclusion in our open database (see below)!

ipc-bench has only four depencencies:

  1. a 64-bit machine and OS,
  2. a compatible OS (currently: Linux 2.6.30+, OpenBSD, Mac OS X; others may work),
  3. Python 2.5+,
  4. the NUMA headers (libnuma1 and libnuma-dev packages on Debian/Ubuntu).

Once you have made sure that the dependencies are in place, simply clone our git repository and run ipc-bench:

$ git clone
$ cd ipc-bench
$ python

Public results dataset

Since we have found IPC performance to be a complex, multi-variate problem, and because we believe that having an open corpus of performance data will be useful to guide the development of hypervisors, kernels and programming frameworks, we provide a database of aggregated ipc-bench datasets. We generated some of these datasets ourselves over the course of our research, while others were contributed by the community.

» Results database

Please support this community-driven public database by running ipc-bench on your own machines and contributing the results!

This research is done by the NetOS group at the University of Cambridge Computer Laboratory. If you have any questions or would like to learn more, please contact us directly:


Postal address:
NetOS group
University of Cambridge Computer Laboratory
Willam Gates Building
15 JJ Thomson Avenue
Cambridge CB3 0FD, UK
Tel.: +44 1223 763683