A process-oriented architecture for complex system modelling
Carl G. Ritson and Peter H. Welch
Concurrency and Computation: Practice and Experience, 22:965-980,
March 2010
[doi].
Abstract
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-p codes automatically and efficiently
exploit all cores in a shared-memory multiprocessor system. They are
also straightforward to distribute over standard cluster architectures.
Download publication
254 kbytes
(PDF)
Bibtex Record
@article{3066,
author = {Carl G. Ritson and Peter H. Welch},
title = {A Process-Oriented Architecture for Complex System Modelling},
month = {March},
year = {2010},
pages = {965-980},
keywords = {occam-pi, concurrency, CSP, complex systems},
note = {},
doi = {10.1002/cpe.1433},
url = {http://www.cs.kent.ac.uk/pubs/2010/3066},
publication_type = {article},
submission_id = {12082_1289240567},
journal = {Concurrency and Computation: Practice and Experience},
volume = {22},
publisher = {Wiley InterScience},
}