Self-Replicating Objects for Multicore Platforms

9 years 8 months ago
Self-Replicating Objects for Multicore Platforms
The paper introduces Self-Replicating Objects (SROs), a new nt programming abstraction. An SRO is implemented and used much like an ordinary .NET object and can expose arbitrary user-defined APIs, but it is aggressive about automatically exploiting multicore CPUs. It does so by spontaneously and transparently partitioning its state into a set of replicas that handle method calls in parallel and automatically merging replicas before processing calls that cannot execute in the replicated state. Developers need not be concerned about protecting access to shared data; each replica is a monitor and has its own state. The runtime ensures proper synchronization, scheduling, decides when to split/merge, and can transparently migrate replicas to other processes to decrease contention. Compared to threads/locks or toolkits such as .NET Parallel Extensions, SROs offer a simpler, more versatile programming model while delivering comparable, and in some cases even higher performance.
Krzysztof Ostrowski, Chuck Sakoda, Ken Birman
Added 19 Jul 2010
Updated 19 Jul 2010
Type Conference
Year 2010
Authors Krzysztof Ostrowski, Chuck Sakoda, Ken Birman
Comments (0)