University of Bologna. Department of Computer Science and Engineering (DISI)
Welcome to the HPC-PADS project homepage.
The overall objective of this research project is to design, implement and evaluate a Parallel And Distributed Simulation (PADS) middleware capable to work seamlessly and efficiently among multiple execution architectures (e.g. multi-core smartphones, multi-core desktop CPUs, LAN/WAN clusters, HPCs and public Cloud infrastructures. In this specific subproject our goal is the porting of the simulation middleware to the Blue Gene architecture.
In the years, many simulation paradigms have been proposed, each one presenting some beneﬁts and drawbacks. Among them, the Discrete Event Simulation (DES) is powerful in terms of expressiveness and easy to understand for the simulation models developer. DES alone or combined with other paradigms (such as agent-based simulation) has gained very good popularity in many fields (e.g. engineering, economics), not only for research but also for design, production support and what-if analysis.
The common approach for implementing simulators is based on a single execution unit (e.g. a CPU and some random access memory), that is a sequential (i.e. monolithic) simulator. The main advantage of this approach is its simplicity, but it also introduces some severe limitations: the memory resources of a single execution unit can be insufﬁcient for the task of modeling complex systems. Furthermore, the amount of time needed to complete the simulation runs can be excessive.
A more modern approach, called Parallel Discrete Event Simulation (PDES), relies on multiple interconnected execution units (e.g. CPUs or hosts). In this way, building a so called Parallel And Distributed Simulation (PADS), it is possible to represent very large and complex models using aggregated resources from many execution units and, in some cases, to obtain a speed up with respect to sequential simulation.
Unfortunately, at the state of the art, there are still many problems that limit the efficiency and the diffusion of PADS. A couple of them are: 1) the performance of PADS are strongly affected by the execution environment, the simulation model and the simulation characteristics. Specific features such as the adaptive partitioning of the simulation model and the load-balancing at runtime (of computation and communication) are not available in the simulation middlewares; 2) moving from an execution architecture to another (e.g. from a multi-CPU multi-core host to a HPC) is not transparent to the simulation model developer.
Even if in the last years many PADS middlewares have been developed few of them have been ported to the HPC architectures. At the moment of writing, we are not aware of any simulation middleware that is able to work on a wide range of execution architectures and that provides efficient mechanisms for the adaptive partitioning of the simulation model at runtime.
Our primary goal for this part of the overall project is to build a simulation middleware that is capable of running efficiently on HPC architectures such as the IBM Blue Gene. When the porting will be completed, the set of advanced features that are already implemented in the middleware will be available for the HPC community and this could significantly increase the usage of discrete event simulation in HPC.