© University of Kent - Contact | Feedback | Legal
The University of Kent, Canterbury, Kent, CT2 7NZ, T +44 (0)1227 764000
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 run-time 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.
Download publication 2951 kbytes (PDF)
@inproceedings{2928,
author = {Carl G. Ritson and Adam T. Sampson and Frederick R. M. Barnes},
title = {{M}ulticore {S}cheduling for {L}ightweight {C}ommunicating {P}rocesses},
month = {June},
year = {2009},
pages = {163--183},
keywords = {},
note = {},
doi = {},
url = {http://www.cs.kent.ac.uk/pubs/2009/2928},
publication_type = {inproceedings},
submission_id = {8269_1245420277},
ISBN = {978-3-642-02052-0},
booktitle = {Coordination Models and Languages, 11th International Conference, COORDINATION 2009, Lisboa, Portugal, June 9-12, 2009. Proceedings},
editor = {John Field and Vasco Thudichum Vasconcelos},
volume = {5521},
series = {Lecture Notes in Computer Science},
publisher = {Springer},
ISSN = {0302-9743},
refereed = {yes},
}