SCOPE: Scalable Clustered Objects with Portable Events
This is the work from my Masters thesis. SCOPE is a Linux user-level library intended to help a C++ developer create highly concurrent objects for SMP systems. Writing truly concurrent software is hard, scaling software to fully utilize hardware is one of the reasons why. One abstraction for increasing the scalability of systems software is clustered objects. Clustered objects is a proven method of increasing scalability.
This thesis explores a user-level abstraction based on clustered objects which increases hardware utilization without requiring any customization of the underlying system. We detail the design, implementation and testing of Scalable Clustered Objects with Portable Events or (SCOPE), a user-level system inspired by a kernel-level implementation of the clustered objects model from IBM Research’s K42 operating system. To aid in the translatability of the new system, we introduce the idea of a clustered object event, which is responsible for maintaining the runtime environment of the clustered objects. We show that SCOPE can increase locality on a simple micro benchmark, and provide most of the benefits that the kernel-level implementation provided.