CAMELot is an integrated environment for Cellular Automata models (CAs). Although it was developed in the context of bioremediation, CAMELot can be applied to any problem that can be formulated as a CA. CA models have been developed for a wide variety of problems ranging from population models and forest fires to fluid flow simulations.

The CAMELot environment supports CA code development, parallel execution and visualisation. Code development is done using CARPET, a CA programming language inherited from the CABOTO project. The CARPET language is an extension to the C programming language and is therefore easy to learn for anyone familiar with this language. However, programming in CARPET is simpler than programming a parallel model in C. A CARPET programmer can concentrate on the problems associated with their model, since the CA environment deals with many of the programming details (such as decomposition into processes) that would need to be explicit in a C program whatever the parallel paradigm used.

The software provides a CARPET development window including all the usual editing functions, where the CARPET code can be developed and compiled. Once the code is complete it can run directly from the CAMELot environment. CAMELot also contains an integrated visualisation capability. Multiple visualisation windows can be created while the model is running, enabling the user to monitor the simulation and modify the state of the program interactively. This function, called steering, is discussed in more detail later on.

The environment can be programmed to dump the model state to files at regular intervals. The file formats have been designed to be easily integrated into additional visualisation packages such as AVS and to be portable between different types of computer. An important feature is that output files can be used to initialise the state of the model in a subsequent run, thus enabling productive runs in batch systems as well as reviews of simulation scenarios.

ISI has extended the original CARPET language to add extra features such as computational steering. As mentioned earlier, steering is the ability to change the flow of the execution while the program is running. This is achieved in CAMELot by changing the value of global parameters of the CARPET program through the user interface. Computational steering allows for such behaviour to be programmed in the CARPET code, thus removing the need for the user to monitor the run and leading to efficient and accurate execution.

An automatic inactive region detection mechanism is available in CAMELot. This allows the system to detect areas where no activity takes place and suspend the application of the CA transition function thus yielding performance benefits. This mechanism is implemented so as to act as a load balancing mechanism at the same time.

The system provides a configurable periodic or one-off timing function, through which the user can time the main internal functions of the software, as well as the total time of the execution. The functions timed include the CA update function, separated from the essential boundary copy and the computational steering. The visualisation and data saving functions are also accounted for.

One of the biggest advantages of the CAMELot environment is that it can exploit parallel computing environments, from networks of workstations to large scale facilities. Parallelisation is completely hidden from the user, with the exception of the definition of the number of processing elements to be used. No changes are required to a CARPET program to run in parallel. The CAMELot environment automatically takes care of data decomposition, load balancing, parallel file access and parallel visualisation, which are major headaches for a programmer developing a parallel application. However, the CAMELot environment is not restricted to parallel computers, it is equally at home on standard desktop machines enabling a user to easily develop models and simulations in an affordable computing platform. The supported operating systems include Red Hat Linux 5.2, Compaq Tru64 UNIX, SunOS 5 and IRIX 6. The parallel communication library used is MPI.

Download Camelot

A demo of CAMELot in .avi format.Download

Top of the page