Google

Sunday, October 12, 2008

Introduction to Distributed Simulation

1. Introduction

Simulation is a system that represents or emulates the behavior of another system over time. A computer simulation is one where the system doing the emulating is a computer program [1].

Simulations can be used for software prototyping. They are less costly, safer and more environmental friendly than real world experiments like Nuclear weapons, automotive structural design – collision testing, experimental surgical procedures. Simulations can also be used for forecasting of weather as well as a decision tool for applications like air traffic to minimize delays. Simulation acts as a good education aid. It can be used to create virtual environments for training of soldiers on networked simulators. Doctors can perform surgery on simulated patients. Simulation can also be used for analyzing processes with time spans of days/ years or eons like corrosion testing [2].

This means that the field of simulation is in great demand. Simulations are growing complex day by day. As such, they require huge human effort and development time. Overall result is the high cost of simulations. To manage the complexity and increase re-usability of existing simulations and to support inter-operability among them, the simulation industry is seeing a shift from monolithic to distributed simulations and various standards are being developed [3].

This article discusses the problems with monolithic simulations and advantages offered by distributed simulations. It also brings out the subtle difference between distributed computing and distributed simulation.
2. Monolithic Simulations

A monolithic simulation uses a single model. All the relevant information is kept in this model [4].

2.1 Characteristics of Monolithic Simulations

Information produced or needed by simulations can be classified as primary or secondary. Primary information is the information simulations deal with at runtime, e.g. the simulation variables or objects that are modeled by the simulation (the core). Primary information is of dynamic nature. Secondary information is information outside the simulation core, which is necessary to support the successful simulation and animation. Animation layouts or visualization information are examples for secondary data. This data, although not static by nature, is commonly used in a static manner and held in form of input files or simulation model code.


The primary information used by monolithic simulations is static in nature. By static, we mean that input parameters are either hard-coded or read into the simulation model in the initialization phase and remain same during the model execution.

2.2 Problems with Monolithic Simulations

Putting all the information in a single model makes monolithic simulation complex. A complex monolithic simulation may be difficult to understand. One reason is that it does not match the real-world. As such, a monolithic simulation is difficult to test and debug. Not only is the development time high but also the run-time because of sequential nature of execution. Also, there are problems in maintaining such model and for adapting it for another purpose. So, flexibility and re-usability is very low.
2.3 Advantages of Monolithic Simulations

The advantages offered by monolithic simulations are illusionary only. Keeping all the information at one place may help sometimes. Also, there are no overheads of dividing the model and inter-communication and co-ordination among them.

2.4 Usage of Monolithic Simulations

Problems associated with monolithic simulations do not make them useless. When distributed computing was not there, monolithic simulations were the only way. Monolithic simulations are still used. They suit best for simple simulations. They can also be used for simulations whose scope is limited, well-defined and fixed.

2.5 Example of Monolithic Simulation

A traffic simulation can be modeled as monolithic. The simulation elements like street networks, vehicles and traffic lights will all be contained in a single model. The primary information like street parameters, traffic intensity, and scheduling of traffic lights is all static. This means information is read into the model during the initialization phase and remains same during the model execution.


3. Distributed Simulation

In distributed simulation, the task to be modeled is divided into sub-models. The information is divided among these sub-models. These sub-models then communicate and co-ordinate with each other to contribute to the goal of entire simulation [4].

More specifically, Distributed Simulation refers to the execution of discrete events simulation programs on a network of workstations, or a multiprocessor system, to obtain a higher performance via parallel execution.

3.1 Characteristics of Distributed Simulation

Unlike monolithic simulations, the primary information in distributed simulation is dynamic. This means it is not hard-coded or read during initialization. Such information does not remain same during the model execution. Dynamic information is either received from some other source or is interactively given by the user during the model execution.

3.2 Advantages of Distributed Simulations

Distributed simulation is the need of today. Distributed simulation models the real-world more accurately. As shown in figure 1, it makes sense to simulate separate entities and then re-use them for varied purposes. Distributed simulations are modular by default. As such complexity is managed more easily. Distributed models run in parallel; thereby minimizing the run-times. Models, being independent to some degree, can be developed in parallel. Modularity also makes such simulations easy to understand, test, and debug. Distributed simulations are flexible and propose re-usability.



Figure 1: Real World is Distributed

3.3 Key Points in Distributed Simulations

The key point in distributed simulation is the division into sub-models. It is a major design decision. A wrong decision may spoil the overall purpose of distributed simulation; be it complexity or re-usability. Several factors can be used for this division. One simple factor is replication of the real-world. Sometimes, complexity criteria can also be used. Another factor is functionality of the model being developed.

3.4 Overheads and Problems in Distributed Simulations

Besides, the overhead of dividing the task into sub-models, there are other overheads too. The major overheads are co-ordination mechanism among the distributed models. The inter-communication mechanism is required and it, too, has associated overheads. Due to the networked nature of distributed simulations, sometimes, makes it unacceptable for applications like visualization where it may produce undesirable jerky effects. International standards are developed to support simulation inter-operability. Other issues to consider are reliability, performance, and scalability.


3.5 Usage of Distributed Simulations

The complex and costly development of simulations demand re-usability and inter-operability of simulations. Distributed simulations propose re-usability. Such simulations are used to model the world more accurately. Sometimes, distributed simulations are required to handle a large complex problem which may not run even on the latest computing hardware. Another reason for using distributed simulation is geographical constraints as co-location of simulations, users and resources is usually expensive [5]. Requirement of separate visual units is another requirement for distributed simulation. Recently, simulation industry is seeing a paradigm shift from monolithic static simulations to distributed dynamic (interactive) simulations

3.6 Example of Distributed Simulation

The traffic simulation can also be modeled as distributed. The simulation elements viz. street network, traffic lights and vehicles are now modeled separately to match the real-world scenario. The model’s attributes and their values are dynamic. The information is exchanged among these models. Like, the information received from traffic light model starts or stops the vehicles.


4. Enabling Technology behind Distributed Simulation

The technology responsible for growth of distributed simulation is distributed computing. However, there exist subtle differences between the two.

4.1 Commonality between Distributed Simulation and Distributed Computing

In both distributed computing and distributed simulation, the task is divided into sub-tasks. These tasks then run on decentralized networked autonomous computer systems and communicate with each other to achieve the overall goal.

4.2 Differences between Distributed Simulation and Distributed Computing

The two differs in their dividing criteria. In distributed computing, the primary goal of distribution is load balancing. However, the primary purpose of distribution is integration of geographically distributed simulations; considering co-location may be expensive. Other criteria of division in distributed simulation are replication of distributed nature of real-world entities, re-usability, and requirement of separate visual units for simulations.


5. Conclusions

Complexities involved in today’s simulations cannot be handled in monolithic simulations. The simulation industry is changing its attention to distributed simulation for the obvious reasons of low run-times and re-usability. International standards are being developed for simulation inter-operability.


References

  1. Geoffrey Gordon, System Simulation, PHI, 2004
  2. Distributed Simulation – Motivation & Inspiration available at Georgia Tech website
  3. Frederick Kuhl, Richard Weatherly, Judith Dahmann, Creating Computer Simulation Systems - An Introduction to the High Level Architecture., PHI, 2002.
  4. Klein U., Schulze T., StraBburger B.,Traffic Simulation Based on High Level Architecture, Proceedings of 1998 Winter Simulation Conference, 1998
  5. Defense Modeling and Simulation Office (DMSO). Information available at www.dmso.mil.

No comments: