Multicore Scheduling for Lightweight Communicating Processes

  • Authors:
  • Carl G. Ritson;Adam T. Sampson;Frederick R. Barnes

  • Affiliations:
  • Computing Laboratory, University of Kent, Canterbury, UK;Computing Laboratory, University of Kent, Canterbury, UK;Computing Laboratory, University of Kent, Canterbury, UK

  • Venue:
  • COORDINATION '09 Proceedings of the 11th International Conference on Coordination Models and Languages
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

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. Run-time 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 approaching that of optimised sequential and coarse-grain threaded designs.