170 likes | 282 Views
or Call for Hammers on My (crappy) Idea. Scaling Many-core Applications with COTS Clustering. Haibo Chen Parallel Processing Institute Fudan University. Outline. Motivation VMM-based COS clustering for many-core applications Emulator clustering for many-core OS emulation.
E N D
orCall for Hammers on My (crappy) Idea Scaling Many-core Applications with COTS Clustering Haibo Chen Parallel Processing Institute Fudan University
Outline • Motivation • VMM-based COS clustering for many-core applications • Emulator clustering for many-core OS emulation
Multi-core is emerging • 4 cores are prevalent • 10s to 100s cores in five years • System software lags behind architecture
The problem • Many OS components are designed and evolved from UP • Page fault, buffer cache • Not easy to fix • Years of improvements in Linux community not only fix problems • But also discover more problem as hardware evolves
Solution • Long term: design new OS • Usually non-trivial • Backward compatibility issues • Long time to mature • Short/middle term solution • Can we provide scalable system software building from cots?
Research Efforts • The Corey Philosophy • No share by default • Share efficiently if needed • Two preliminary efforts applying Corey philosophy • A VMM-based, SSI commodity OS cluster to host many-core application • SSI emulator cluster to study OS scalability problem
Many-core apps(e.g. MapReduce, webserver) Uniform Interface Linux Linux Linux Linux Resource sharing Virtual Machine Monitor C C C C C C C C C C C C C C C C
Research Points (1/3) • Study resource management for diverse applications among COS • Which should be shared? • Buffer cache? Address space? • Main memory? I/O buffer rings • Which should be exclusive? • TCP/IP stack?
Research Points (2/3) • Adjust COSes to suite different sharing patterns • Modifying VMM to support inter-VM sharing of resources
Research Points (3/3) • How an high-performance software emulation layer can be designed to seamlessly support existing apps • System call interposition • System call translation • System call forwarding
Other Concerns • Heterogeneity in future multi-core? • Managing and hiding heterogeneity • Efficient uses of cache • Everyone talks about this
Many-core emulator • The need for many-core emulator • Study OS behaviors for future many cores • Bottlenecks • Debugging • Difficulty in many-core emulation • Scalability
Proposed Research • “Divide and conquer” • Categorize the sharing and exclusive use of resource in an emulator • A thin emulation layer connecting the emulation clusters
Many-core Operating Systems Uniform Interface C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU QEMU Resource Sharing and Communications Linux Kernel C C C C C C C C C C C C C C C C
Thanks • Q&A