A process-oriented architecture for complex system modelling
A fine-grained massively parallel and process-oriented architecture for the modelling of complex systems is presented. We propose that the concurrency in the model simplifies its design and construction by directly reflecting the processes in the natural world. The architecture is based on CSP, extended with mechanisms for process mobility from the pi-calculus; implementations are presented using the occam-pi language. A case study, modelling platelets (possibly artificial) within a blood vessel, is described. The aim for this model is to engineer emergent behaviour: the clotting of platelets in response to a wound in the blood vessel wall and the staunching of blood loss. A three-dimensional model is constructed, along with mechanisms for visualization and interaction. Its expressiveness and efficiency relies strongly on the dynamic and mobile capabilities of occam-pi. General principles for the design of large and complex system models are drawn. The described case study runs to millions of processes engaged in ever-changing communication topologies. It is free from deadlock, livelock, race hazards and starvation by design, employing a small set of synchronization patterns for which we have proven safety theorems. Compiled occam-pi codes automatically and efficiently exploit all cores in a shared-memory multiprocessor system. They are also straightforward to distribute over standard cluster architectures. Copyright (C) 2007 CG Ritson & PH Welch.
complex systems concurrency csp occam-pi