Title
COREMU: a scalable and portable parallel full-system emulator
Abstract
This paper presents the open-source COREMU, a scalable and portable parallel emulation framework that decouples the complexity of parallelizing full-system emulators from building a mature sequential one. The key observation is that CPU cores and devices in current (and likely future) multiprocessors are loosely-coupled and communicate through well-defined interfaces. Based on this observation, COREMU emulates multiple cores by creating multiple instances of existing sequential emulators, and uses a thin library layer to handle the inter-core and device communication and synchronization, to maintain a consistent view of system resources. COREMU also incorporates lightweight memory transactions, feedback-directed scheduling, lazy code invalidation and adaptive signal control to provide scalable performance. To make COREMU useful in practice, we also provide some preliminary tools and APIs that can help programmers to diagnose performance problems and (concurrency) bugs. A working prototype, which reuses the widely-used QEMU as the sequential emulator, is with only 2500 lines of code (LOCs) changes to QEMU. It currently supports x64 and ARM platforms, and can emulates up to 255 cores running commodity OSes with practical performance, while QEMU cannot scale above 32 cores. A set of performance evaluation against QEMU indicates that, COREMU has negligible uniprocessor emulation overhead, performs and scales significantly better than QEMU. We also show how COREMU could be used to diagnose performance problems and concurrency bugs of both OS kernel and parallel applications.
Year
DOI
Venue
2011
10.1145/1941553.1941583
PPOPP
Keywords
Field
DocType
performance problem,mature sequential,widely-used qemu,sequential emulators,concurrency bug,scalable performance,portable parallel full-system emulator,practical performance,performance evaluation,open-source coremu,sequential emulator,multicore,design,lines of code
Uniprocessor system,Synchronization,Programming language,Scheduling (computing),Concurrency,Computer science,Parallel computing,Emulation,Multi-core processor,Source lines of code,Embedded system,Scalability
Conference
Volume
Issue
ISSN
46
8
0362-1340
Citations 
PageRank 
References 
29
0.96
25
Authors
7
Name
Order
Citations
PageRank
zhaoguo wang11328.56
Ran Liu2301.65
Yufei Chen332233.06
Xi Wu441926.88
Haibo Chen51749123.40
Weihua Zhang617430.34
Binyu Zang798462.75