Affiliation:
1. Fudan University, Shanghai, China
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference32 articles.
1. http://davmac.org/davpage/linux/rtsignals.html. http://davmac.org/davpage/linux/rtsignals.html.
2. Kvm/qemu. http://wiki.qemu.org/KVM. Kvm/qemu. http://wiki.qemu.org/KVM.
3. The PARSEC benchmark suite
4. Bochs. http://bochs.sourceforge.net/. Bochs. http://bochs.sourceforge.net/.
Cited by
33 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A System-Level Dynamic Binary Translator Using Automatically-Learned Translation Rules;2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO);2024-03-02
2. Challenges, Novel Approaches and Next Generation Computing Architecture for Hyper-Distributed Platforms Towards Real Computing Continuum;Lecture Notes on Data Engineering and Communications Technologies;2024
3. AtoMig: Automatically Migrating Millions Lines of Code from TSO to WMM;Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2;2023-01-27
4. Risotto: A Dynamic Binary Translator for Weak Memory Model Architectures;Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1;2022-12-19
5. Lasagne: a static binary translator for weak memory model architectures;Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2022-06-09