Sciweavers

COORDINATION
2009
Springer

Multicore Scheduling for Lightweight Communicating Processes

14 years 5 months ago
Multicore Scheduling for Lightweight Communicating Processes
Process-oriented programming is a design methodology in which software applications are constructed from communicating concurrent processes. A process-oriented design is typically composed of a large number of small isolated concurrent components. These components allow for the scalable parallel execution of the resulting application on both shared-memory and distributed-memory architectures. In this paper we present a runtime designed to support process-oriented programming by providing lightweight processes and communication primitives. Our runtime scheduler, implemented using lock-free algorithms, automatically executes concurrent components in parallel on multicore systems. Runtime heuristics dynamically group processes into cache-affine work units based on communication patterns. Work units are then distributed via wait-free work-stealing. Initial performance analysis shows that, using the algorithms presented in this paper, process-oriented software can execute with an efficiency...
Carl G. Ritson, Adam T. Sampson, Fred R. M. Barnes
Added 25 Nov 2009
Updated 25 Nov 2009
Type Conference
Year 2009
Where COORDINATION
Authors Carl G. Ritson, Adam T. Sampson, Fred R. M. Barnes
Comments (0)