## 2 State of the Art
### Overview of IoT Simulators
#### 2.1.1 \(S^{3}\) and OMNeT++
The results indicated that increasing the number of simulated entities significantly increased the memory usage and the wall clock execution time of the simulator. From this, the authors concluded that OMNeT++ was adequate for small scale experiments, but not for large scale Internet of Things scenarios. Finally, they examined the multi-level approach. First, a sequential \(S^{3}\) simulation run on Level 0 was considered. The simulation contained 1000 simulated entities and comprised one logical process. From there, one single simulated entity was transferred to Level 1 and managed by OMNeT++ for the period of one Level 1 time step. This experiment showed that the wall clock time increased linearly with the number of lower level simulators created. However, the costs added by spawning new OMNeT++ instances lay within the range that was expected by the authors and according to them, the overhead caused by the coordination between simulators, had proven as negligible. On the other hand, it also showed that a higher number of simulated entities in the higher level reduced the wall clock time overhead, which occurred from creating lower level simulations. This is due to the fact that the upper level has to wait for the lower level to finish. With more simulated entities in the upper level, the upper level can simulate them while waiting for the lower level simulation to finish. As a consequence, the lower level simulators proved themselves as bottleneck for the multi-level simulation that the upper level had to wait for. Secondly, the authors conducted experiments with more than one logical process within the Level 0 simulation. These tests showed that, within the Level 0 simulation, the logical processes that spawned lower level simulations became the bottleneck of the system. However, the so generated coordination overhead is dependent on the number of simulated entities in such a logical process. Lastly, the authors stated that their experiments showed that multiple spawns of lower level simulators could consume huge amounts of memory; therefore, they suggested that a distributed architecture is advantageous. In [10], [PERSON], [PERSON] and [PERSON] extended their approach to focus a Parallel and Distributed Simulation (PADS) to achieve performance gain. To this end, they chose a hybrid simulation approach coupled with PADS since they found out conventional monolithic simulators are not scalable enough. This approach should circumvent the problems arising with the number of entities in a large scale IoT simulation which had proven itself as a bottleneck. It is of importance that, in this approach, the use of a hybrid simulator does not change the total number of simulated nodes in contrast to the approach presented in this paper. As stated in [9], the design of inter-model interactions and the interoperability between the simulators within a multi-level approach have to be done carefully. In addition, the transfer of objects and data between the involved simulators can turn out to be a hard task. Furthermore, the authors stated that it is of course in the realm of possibility that the hybrid simulation introduces additional approximation error in analysis. Before presenting their implementation of a case study, they specified the following general problems arising in parallel and distributed computing [10]:  
* The need of methodologies and tools to define of conceptual models
* The availability of simulation paradigms that are easy to use
* Well-defined interfaces for the interoperability among simulations
* nNw approaches for the composability of simulators and the automatic mechanisms for the deployment and management of simulators on distributed infrastructure  
The aforementioned case study is a so-called _Smart Market_ scenario, again in the vicinity of a smart territory.