Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
1999, Future Generation Computer Systems
A high-level programming support is an essential component for the practical development of computational science applications using the cellular automata model. This paper, after introducing the CARPET language, shows its practical use for programming cellular automata simulations on parallel computers. CARPET is a high-level language designed for supporting rapid prototyping and full implementation of a large number of science and engineering applications on high-performance computers. The language provides a user with a programming layer that offers constructs for the direct definition of the cellular automata features such as lattice dimension, cell state, neighborhood, and transition function. The CARPET parallel run-time system maps CA programs on a parallel computer hiding the architecture issues to a user and it provides advanced visualization of program’s output. The paper describes how practical cellular automata algorithms for lattice gas, gas diffusion simulation, and traffic flow modeling can be designed using the CARPET programming language.
Parallel Computing, 1995
This paper describes CAMEL (Cellular Automata environMent for systEms modeLing), a scalable software environment based on the cellular automata theory implemented on a Transputer-based parallel computer. Cellular automata were originally defined as a theory to model the basic mechanisms of dynamic systems, permitting a new approach which is in many cases simpler and more efficient than the traditional approach based on partial differential equations. Today, cellular automata become more attractive because they are suitable to be effectively and naturally implemented on parallel computers achieving high performance. CAMEL allows a user to program computational science applications exploiting the computing power offered by highly parallel computers in a transparent way. CAMEL implements a cellular automaton as a SPMD program. A load balancing strategy is used to minimize time costs in case of not uniform intervals for transition steps. In the paper the programming environment and the parallel architecture of CAMEL are presented and some experiments are discussed.
Future Generation Computer Systems, 1999
Cellular automata (CA) are a powerful technique for modeling otherwise intractably complex systems. However, the amount of computation required can be large. This may mean that the use of CA is not feasible or that models must be simplified, resulting in loss of accuracy. To address this, we have implemented a system called the Cell Driver to facilitate the development of CA in parallel. The Cell Driver is designed to support the rapid development of parallel cellular automata applications, making parallel computing easily accessible for CA developers. We present the results of applications in fire modeling, earthquake modeling, and crystal growth.
Cellular Automata - Simplicity Behind Complexity, 2011
Lecture Notes in Computer Science, 2007
We present the design and implementation of CAOS, a domainspecific high-level programming language for the parallel simulation of extended cellular automata. CAOS allows scientists to specify complex simulations with limited programming skills and effort. Yet the CAOS compiler generates efficiently executable code that automatically harnesses the potential of contemporary multi-core processors, shared memory multiprocessors, workstation clusters and supercomputers.
1996
Abstract This paper describes CARPET, a parallel programming language based on the cellular automata model. A CARPET implementation has been used for programming cellular algorithms in the CAMEL parallel environment. CAMEL is an environment designed to support the development of high performance applications in science and engineering. It offers the computing power of a highly parallel computer, hiding the architecture issues from a user.
2012
Cellular Automata (CA) models are important for many applications in physics, chemistry, biology and engineering. Thus, programming such CA models to run as parallel applications on modern computer architectures is of great interest. The approach advocated and studied in this paper is to consider CA models as intermediate formalisms that can be mapped into other (better or well-researched) computational paradigms, such as BSP, Multi-BSP, MapReduce, and Resource-Oblivious algorithms. With this approach, the application-to-architecture mapping results that have been obtained can be leveraged to ultimately create CA frameworks that will lead to improvements in (end-user, nonprofessional) programmer productivity in specifying, developing, maintaining, migrating and evolving CA applications, as the technologies of computer architecture s undergo rapid advances in the next decade.
1996
Abstract In this paper we describe CARPET, a parallel programming language based on the cellular automata model. CARPET is the language used for programming cellular algorithms in the CAMEL environment. CAMEL is an environment designed to support the development of high performance applications in science and engineering. It offers the computing power of a highly parallel computer, hiding the architecture issues from a user.
1996
Abstract The paper discusses Camel, an interactive parallel programming environment based on cellular automata. With Camel users can develop high-performance applications in science and engineering. Examples in geology, traffic planning, image processing, and genetic algorithms show its usefulness
1997
ABSTRACT In the latest years a novel method has been added in science to theory and laboratory experiments for studying and solving scientific problems. That method can be defined as computational simulation. Computational simulation is based on the use of computers for modeling and simulation of complex systems in science and engineering.
Springer eBooks, 1989
The cellular automata technique has proven to be useful for direct simulation of fluid flow experiments in both two and three dimensions. We will present a method to impose boundary conditions on complex geometries, consistently with the microscopic behaviour of a cellular automaton. Furthermore we will show how the three dimensional model can be implemented on a MIMD machine with local memory.
Proceedings of the 10th EAI International Conference on Simulation Tools and Techniques
Cellular Automata (CA) models are represented as a collection of independent dynamical cells having some specific spatial relationship to each other. These tessellation automata can have simple to complex behaviors due to both individual cell behaviors as well as their interactions. Code debugging, supported by advanced software development tools, is needed for developing CAs owing their complex dynamics to cells that have non-trivial event handling and timing. As such, it is useful to debug models during simulation through step-by-step examination of any number of cells using rich control and visualization means. In this paper, we show the CA-DEVS framework where cell and Cellular Automata models are derived from atomic and coupled Parallel DEVS models. This framework uniquely supports visualizations using run-time generation of input, output, and state linear and superdense time trajectories as well as run-time spatial animation with playback. Multi-modal visualization capabilities allow examining behavior of any number of cells independent of any other cell. We describe some key parts of the architectural design of the CA-DEVS and highlight some ongoing and future research.
2013
Cellular Automata (CA) simulations can be used to model multiple systems, in fields like biology, physics and mathematics. In this work, a possible framework to execute a popular CA in hybrid CPU and GPUs (Graphics Processing Units) environments is presented. The inherently parallel nature of CA and the parallelism offered by GPUs makes their combination attractive. Benchmarks are conducted in several hardware scenarios. The use of MPI /OMP is explored for CPUs, together with the use of MPI in GPU clusters. Speed-ups up to 20 x are found when comparing GPU implementations to the serial CPU version of the code.
Future generation computer systems, 1999
From the beginning of civilization, human beings tried to define abstract models of real things and phenomena. Art and science, from their primitive forms, have ever had in them the modeling aim. In fact, the main motivation, that is at the root of scientific activities, is to find simple models that can explain and reproduce what happens in nature. In recent times, computers are gaining more and more importance in science and engineering for system modeling and simulation. Computational simulation is based on the use of computers for designing models and simulators of complex systems. According to this approach, a computer equipped with problem-solving software tools can represent a virtual laboratory where it is possible to build a model for a given problem and run it under different conditions. Parallel architectures are a class of computers that might effectively support the computational simulation approach. They provide high performance in performing efficient execution of large scale complex scientific applications by exploiting the computing power of a large number of processors running in parallel. Algorithms and system software represent two of the main components of the enabling technology for computational science. The advent of parallel computers has offered scalable high-performance machines to computational scientists for solving problems in shorter time. In order to get their applications running on parallel machines, however, practitioners in this field are required to develop algorithms that are different from the ones they used previously on sequential computers, and then express their new algorithms using new parallel paradigms. A conse-quence of the slow evolution of new programming techniques and development environments is that computational science software designers are faced with immature development models and tools and are often obliged to program at a low level with specific target machines in mind. Since parallel computers are going to be used to solve scientific problems, an effort must be done to define problems' representations (paradigms) for this class of computers. So abstract mathematical models, that offer an implicit parallel representation of problems and match better those architectures, need to be designed and used to effectively solve computationally intensive problems on scalable parallel machines.
JETIR , 2018
Cellular automata (CA) are used for modelling many physical systems because of its distinct dynamic behaviour. Cellular automata provide an alternative for modelling and solving large-scale complex system in place of partial differential equations which involve complex and computationally exclusive simulations. The purpose of this paper is to explore the use of CA in 3D modelling and parallel simulation where CA model for 3D unsaturated flow simulation is also defined. 3D image processing using CPU alone is very slow and highly time consuming. There is a macroscopic CA approach where local laws with a clear physical meaning govern interactions among automata. This paper includes survey of cellular automata used in 3D simulations.
2010
Cellular automata provide an abstract model of parallel computation that can be effectively used for modeling and simulation of complex phenomena and systems. In this paper, we start from a skeleton designed to facilitate faster D-dimensional cellular automata application development. The key for the use of the skeleton is to achieve an efficient implementation, irrespective of the application specific details. In the parallel implementation on a cluster was important to consider issues such as task and data decomposition. With multicore clusters, new problems have emerged. The increasing numbers of cores per node, caches and shared memory inside the nodes, has led to the formation of a new hierarchy of access to processors. In this paper, we described some optimizations to restructuring the prototype code and exposing an abstracted view of the multicore cluster to the high performance CA application developer. The implementation of lattice division functions establishes a partnership relation among parallel processes. We propose that this relation can efficiently map on the multicore cluster communicational topology. We introduce a new mapping strategy that can obtain benefit in the performance by adapting its communication pattern to the hardware affinities among processes allocated in different cores. We apply our approach to a two-dimensional application achieving sensible execution time reduction.
This Master's thesis provides motivation to develop a cellular automata processing model, which as a backend for high level imperative programming languages, can be a future alternative to the random access memory stack based processing model. To investigate whether or not it is possible to implement such a model and what the problems and possible solutions to these might be, compiler and virtual machine prototypes have been developed for a simple imperative programming language. The results of the development indicate that a cellular automata processing model can be considered as an alternative to random access memory stack based processing models, but that much more research is needed. The performance tests of the implemented virtual machine, shows that with random read access it can achieve performances associated with parallel processing and with static read access it can achieve performances equivalent to or better than random access memory stack based processing model.
… , Algorithms and Networks, …, 2002
Four basic cellular automata (CA) algorithms are implemented on a Beowulf cluster with 8 processors using MPI and C. The CA algorithms are, namely,(1) Game of Life,(2) Greenburg-Hasting,(3) Cyclic Space, and (4) Hodgepodge Machine. The mathematical and computational aspects of 1D and 2D CA are also considered
1994
Parallel algorithms and programs for lattice gas automata and molecular dynamics for fluid flow simulation were developed and investigated using PVM, Express, Network Linda and p4 on a network of workstations and a CONVEX C3210.
Parallel computing is becoming increasingly important for solving technological and scientific problems. In fact, the most powerful computers in the world are now parallel machines. In this paper we utilize a low-cost parallel computing environment, based on the UNIX operating system and the PVM (Parallel Virtual Machine) and MPI (Message Passing Interface) communication protocols, to compute the dynamical evolution of one-dimensional cellular automata with large numbers of sites. Specifically, we develop and validate parallel binary PVM and MPI implementations, analyse their parallel performance measures, and use the relatively faster MPI implementation to obtain some results for cellular automata with large numbers of sites.
Lecture Notes in Computer Science, 1996
This paper describes CAMEL, a parallel environment for designing scientific applications based on the cellular automata mathematical model. CAMEL is an interactive environment designed to support the development of high performance applications in science and engineering. It offers the computing power of a highly parallel computer, hiding the architecture issues from a user. The system can be used both as a tool to model dynamic complex phenomena and as a computational model for parallel processing. By CAMEL a user might write programs to describe the actions of thousands of simple active agents, then observe the global complex evolution that arise from all the local interactions. The paper presents the programming environment and a significant application in the area of soil decontamination.
International Journal of Geographical Information Science, 2010
A general-purpose parallel raster processing programming library (pRPL) was developed and applied to speed up a commonly used cellular automaton model with known tractability limitations. The library is suitable for use by geographic information scientists with basic programming skills, but who lack knowledge and experience of parallel computing and programming. pRPL is a general-purpose programming library that provides generic support for raster processing, including local-scope, neighborhood-scope, regional-scope, and global-scope algorithms as long as they are parallelizable. The library also supports multilayer algorithms. Besides the standard data domain decomposition methods, pRPL provides a spatially adaptive quad-tree-based decomposition to produce more evenly distributed workloads among processors. Data parallelism and task parallelism are supported, with both static and dynamic load-balancing. By grouping processors, pRPL also supports data-task hybrid parallelism, i.e., data parallelism within a processor group and task parallelism among processor groups. pSLEUTH, a parallel version of a well-known cellular automata model for simulating urban land-use change (SLEUTH), was developed to demonstrate full utilization of the advanced features of pRPL. Experiments with real-world data sets were conducted and the performance of pSLEUTH measured. We conclude not only that pRPL greatly reduces the development complexity of implementing a parallel raster-processing algorithm, it also greatly reduces the computing time of computationally intensive raster-processing algorithms, as demonstrated with pSLEUTH.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.