Distributed Discrete Time Network Simulator
Helminen, Väinö (2010)
Helminen, Väinö
2010
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2010-06-02
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201006081152
https://urn.fi/URN:NBN:fi:tty-201006081152
Tiivistelmä
The Discrete Time Network Simulator (DTNS) is a System-on-Chip (SoC) simulator developed at Tampere University of Technology. It is used to analyze interconnection architectures and systems built around them. The abstraction level is between the conventional hardware simulators, such as Mentor Graphics ModelSim, and algorithm level simulators, such as Synopsys System Studio.
DNTS makes it possible to get cycle-accurate information about the communication while other high-level tools often lack timing completely. This is because DTNS is a time-driven simulator where the simulated time advances in fixed increments of half a clock cycle and the system bus is always simulated at that level of detail.
The simulator itself is programmed in C and the system design is described in C or C++ programming language with detail level from high level functional code to almost hardware description language level code. The accuracy of the simulation increases as the model is refined. However, this also makes the simulation times longer. The goal of this thesis work was to develop a distributed version of DTNS as a remedy.
The emphasis on the system bus made it a natural point of partitioning. The simulator was split to a central core process and separate processes for system component models which can then be executed in parallel. Processes communicate any writes to the system bus to the core process which then accumulates them and communicates changes to all other processes. At the same time all processes synchronize with the core process after every simulation step.
For communication between processes executed on different computers, it was originally given as a premise that Common Object Request Broker Architecture (CORBA) should be used. However, the amount of overhead was found to be too significant and another implementation that communicated directly over the TCP/IP protocol was created, too.
For performance testing a statistical model of a H.263 video encoder was used. The model was instrumented to mimic different complexity levels with artificial delays. Multiple simulations was then executed using both communication implementations while varying the delay gradually from very high level and fast model to very complex and slow. Also, the number of computers was varied from one to three.
The measured wall clock times of these simulations clearly show the high overhead of CORBA in comparison to TCP/IP. Both implementation were able to speed-up the simulation as the models became slower. The performance of the TCP/IP implementation seems rather impressive.
The distribution method of DTNS was also used to distribute a commercial simulator, ModelSim. The system consisted of two to eight TUTWLAN terminal and this was distributed up to eight simulators executed in parallel with signals passed between them using TCP/IP protocol. The simulation times show that this method is capable of significant speed-up even in real world simulations if the system model is in fine enough detail.
In conclusion the distribution of DTNS is not very useful in real life as the models are unlikely to be slow enough to see any speed-up. This new version of DTNS is, however, also capable of parallel execution on a single computer with, for example, a multi-core processor and without network overhead simulation times can be improved noticeably even for higher level models. /Kir10
DNTS makes it possible to get cycle-accurate information about the communication while other high-level tools often lack timing completely. This is because DTNS is a time-driven simulator where the simulated time advances in fixed increments of half a clock cycle and the system bus is always simulated at that level of detail.
The simulator itself is programmed in C and the system design is described in C or C++ programming language with detail level from high level functional code to almost hardware description language level code. The accuracy of the simulation increases as the model is refined. However, this also makes the simulation times longer. The goal of this thesis work was to develop a distributed version of DTNS as a remedy.
The emphasis on the system bus made it a natural point of partitioning. The simulator was split to a central core process and separate processes for system component models which can then be executed in parallel. Processes communicate any writes to the system bus to the core process which then accumulates them and communicates changes to all other processes. At the same time all processes synchronize with the core process after every simulation step.
For communication between processes executed on different computers, it was originally given as a premise that Common Object Request Broker Architecture (CORBA) should be used. However, the amount of overhead was found to be too significant and another implementation that communicated directly over the TCP/IP protocol was created, too.
For performance testing a statistical model of a H.263 video encoder was used. The model was instrumented to mimic different complexity levels with artificial delays. Multiple simulations was then executed using both communication implementations while varying the delay gradually from very high level and fast model to very complex and slow. Also, the number of computers was varied from one to three.
The measured wall clock times of these simulations clearly show the high overhead of CORBA in comparison to TCP/IP. Both implementation were able to speed-up the simulation as the models became slower. The performance of the TCP/IP implementation seems rather impressive.
The distribution method of DTNS was also used to distribute a commercial simulator, ModelSim. The system consisted of two to eight TUTWLAN terminal and this was distributed up to eight simulators executed in parallel with signals passed between them using TCP/IP protocol. The simulation times show that this method is capable of significant speed-up even in real world simulations if the system model is in fine enough detail.
In conclusion the distribution of DTNS is not very useful in real life as the models are unlikely to be slow enough to see any speed-up. This new version of DTNS is, however, also capable of parallel execution on a single computer with, for example, a multi-core processor and without network overhead simulation times can be improved noticeably even for higher level models. /Kir10