Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.



Anonymous Haibo Chen Yufei Chen


COREMU is a scalable and portable parallel full system emulator built on Qemu. Currently, COREMU supports x86_64 and ARM (MPcore Cortex A9) target on x86_64 Linux host system. (Note that ARM support is not as stable as x86_64 now.)

COREMU is able to boot 255 emulated cores running Linux on our testing machine which has only 4 physical cores (Intel Core(TM)2 Quad CPU Q6600, with 2G memory).


2013.01.24: ReEmu code released

The prototype of deterministic replay on COREMU is released. Code is on reemu branch. There's some ruby script to help you record and replay guest Linux. Edit "coremu.rb" according to your settings before using these scripts.

2010.10.11: New git repository

We released two git repositories we used internally. One contains the coremu library source tree (COREMU src), the other is a clone of the QEMU source tree which we patched on (Patched QEMU src). We will no longer update the original repository.

2010.09.07: Release COREMU-0.1.1

In this version, we add the smart watch point and memory trace collection mechanisms in COREMU.The code also has been pushed to the git repository with a new branch "extra-features". Documents and examples are provided.

2010.07.17: Release COREMU-0.1


What you need:

  1. Patched Qemu source code
  2. Download COREMU source code

Compile and install. (Run 'configure --help' for more options.)

cd <coremu source dir>
./configure --target=x86_64 --prefix=<install dir> <path to qemu source code>
make install

You can now use COREMU to start a Linux system. We provide several scripts to do this. Note that COREMU needs to be run as root, because we change thread priority during the execution.

cd scripts
sudo ./ <path to coremu> <path to image> <number of emulated cores>

For example:

sudo ./ ../bin/bin/qemu-system-x86_64 debian.img 255

The sample images for both X64 and ARM Linux can be downloaded from:

The system may take a while to start booting, and it takes around 12 minitues to boot Linux with 255 emulated cores on a 4 cores machine, please be patient.

We also provide two system images which can be used directly:


IMPORTANT: COREMU rely on accurate nanosleep, so the host system's Linux kernel must have the option "High Resolution Timer" enabled.

You can check this by looking at the output of 'cat /proc/timer_list'. If the resolution is 1 nsecs, it should be OK.

COREMU currently does not support Mac OS X.

We put COREMU in a separate directory and build it as library, because we want to:

  • Make modification to Qemu as little as possible
  • Abstract what need to be done to build a parallel emulator by using a
    sequential one

The Qemu source code we used are checked out from the official Qemu git repository. Since the stable branch does not support Cortex A9 very well, we started the development on the master branch. More specifically, we started from the commit: 54d7cf136f040713095cbc064f62d753bff6f9d2

Other notes:

  1. It would be better to use recent version of Linux kernel (e.g. 2.6.33) in order to emulate more than 64 cores. (We encounter kernel crash using Linux 2.6.26 during the development.)
  2. We modified seabios in order to start 255 cores. But you can't use graphical interface using this bios.
  3. We suggest not using qemu's graphic interface, it's much slower than serial mode. (Please refer to the provided scripts.)


  1. Yufei Chen, Haibo Chen. Scalable Deterministic Replay in a Parallel Full-system Emulator. In Proceedings of the 18th ACM symposium on Principles and practice of parallel programming (PPoPP '13).
    Shenzhen,China, February, 2013. PDF

  2. Zhaoguo Wang, Ran Liu, Yufei Chen, Xi Wu, Haibo Chen Weihua Zhang and Binyu Zang. COREMU: a Scalable and Portable Parallel Full-system Emulator. ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2011). San Antonio, USA, February, 2011. PDF


For more information, please visit our project web site.

You can also take a look at our research group, maybe you will be interested in our other projects.

You can also subscribe to our mailing list: