کد مقاله | کد نشریه | سال انتشار | مقاله انگلیسی | نسخه تمام متن |
---|---|---|---|---|
435262 | 1441713 | 2012 | 14 صفحه PDF | دانلود رایگان |
![عکس صفحه اول مقاله: Multicore scheduling for lightweight communicating processes Multicore scheduling for lightweight communicating processes](/preview/png/435262.png)
Process-oriented programming is a design methodology in which software applications are constructed from communicating concurrent processes. A typical process-oriented design involves the composition of a large number of small isolated component processes. These concurrent 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. The runtime’s scheduler, implemented using lock-free algorithms, automatically executes concurrent components in parallel on multicore systems. 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.
► A wait-free work-stealing scheduler for lightweight concurrent processes.
► Scheduler exploits multicore systems and interprocess communication.
► Heuristics to optimise at runtime using interprocess communication patterns.
► Scheduler and occam-ππ used to implement a case study in agent-based modelling.
► Case study performance evaluated using concurrency features of other languages.
Journal: Science of Computer Programming - Volume 77, Issue 6, 1 June 2012, Pages 727–740