Cellular Automata + MIMD Parallel Computers = CAMEL and CARPET

Cellular Automata (CA) were one of the first parallel computing abstract models. They match the parallelism paradigm with the acentrism one and therefore became a powerful tool for modeling phenomena which can be formalized in acentric terms. Conceived by John von Neumann in the 1950's to investigate self-reproduction, CA have been mainly used for studying parallel computing methods and the formal properties to model systems. However, with the rapid advances in computational resources during the 1980's, CA have become increasingly utilized for more general computer simulation and modeling. The CA model can be effectively used both as a realistic approach to define abstract parallel machines and as a programming methodology for computational science on parallel computers.

From the marriage of cellular automata and MIMD parallel computing was born CAMEL (Cellular Automata environMent for systEms modeLing) a software environment based on the cellular automata model which has been implemented on a transputer-based multicomputer.
CAMEL is a tool designed to support the development of high-performance applications in science and engineering. It offers the computing power of a parallel computer although hiding the architecture issues to a user. It provides an interface which allows a user to dynamically change the parameters of the application during its running, and a Graphical Interface which shows the output of the application. Moreover, the CAMEL architecture is suitable to be implemented on several distributed memory computers such as the Intel iPSC, the Ncube, the CRAY T3D, and the Connection Machine 5.
CAMEL has been successfully used for many problems such as the simulation of the lava flows of the last Etnean eruption and other fluid flow models, for image processing, freeway traffic simulation and combustion process modeling. The results achieved in terms of thoroughness of simulation and execution speedup show that CAMEL might be used for simulation and modeling of real systems in many areas in a simple way and achieving high performance.

The CARPET (CellulAR Programming EnvironmenT) language is the programming tool by which it is possible to define cellular automata models within the CAMEL environment. CARPET is a high-level sequential language related to C with some additional constructs to describe the rules of the transition function of a single cell of a cellular automaton. The main features of CARPET are the possibility to describe the state of a cell as a set of typed substates each one by a user-defined type and the simple definition of complex neighborhoods, that can be also time dependent, in a n-dimensional discrete cartesian space.
CARPET and CAMEL have been used in the CABOTO (Cellular Automata for the Bioremoval of Toxic Contaminats) Project. CABOTO has been funded by the P.C.I. ESPRIT programme with the aim to use parallel computation for modeling and simulation of bioremediation of contamined soils.
Currently, the CARPET language is used in the COLOMBO (Parallel COmputers improve cLean up of sOils by Modelling BiOremediation) project within the ESPRIT framework. The COLOMBO main objective is the use of CA models for the bioremediation of contaminated soils. In this project, ISI-CNR, EPCC and ENEA are currently developing a portable MPI-based implementation of CARPET and CAMEL (called CAMELot) on MIMD parallel computers such as the Meiko CS-2, the IBM SP2, the CRAY T3E and workstation clusters. The new implementation will make the CARPET programs portable to a large number of MIMD machines.

The book Calcolo Parallelo, Automi Cellulari e Modelli per Sistemi Complessi published by Franco Angeli, gives a nice introduction to cellular automata and parallel computation issues.

If you are interested to learn more on CARPET and CAMEL or to receive a report which describes the system send a request to talia@deis.unical.it.

 


© Domenico Talia, DEIS, UNICAL, Rende, Italy.