html5-img
1 / 55

Introduction to simulation with omNeT ++

Introduction to simulation with omNeT ++. José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid. Contents. The ARCOS Group. Expand motivation. Expand design. Expand evaluation. Conclusions. Ongoing Work. University Carlos III of Madrid. Founded in 1989

tilden
Télécharger la présentation

Introduction to simulation with omNeT ++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to simulation with omNeT++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid

  2. Contents The ARCOS Group. Expand motivation. Expand design. Expand evaluation. Conclusions. Ongoing Work. The Expand Parallel File System José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  3. University Carlos III of Madrid • Founded in 1989 • Three faculties: • Faculty of Social Sciences and Law. • Faculty of Humanities, Documentation and Communication. • Higher Technical School. The Expand Parallel File System José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  4. The ARCOS Group • The Computer Architecture, Communications and Systems Group is part of the Department of Computer Science. • 20 full time members • 9 PhD’s (2 full professors + 4 associate professors + 3 visiting professors). • 11 PhD students The Expand Parallel File System José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  5. Research lines Data management on Grid environments. Parallel file systems. Optimization of irregular applications. OS for Wireless Sensor Networks. Real-time systems. The Expand Parallel File System José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  6. Contents The ARCOS Group. OMNET++ features. Simulation model building. Additional features of the simulation kernel. INET Framework. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  7. What is OMNET++? • A discrete event simulation environment. • Mainly focused in communication networks. • Runs on Linux and Windows. • C++ based. • Free for academic and non-profit use. • GUI support. • Supports parallel execution (MPI based). • Several component add-on libraries available. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  8. Available off-the-shelf models • TCP/IP. • IP. • TPC. • UDP • PPP. • … • Network protocols • Ethernet. • 802.11. • FDDI. • Token Ring. • Peer-to-peer. • Sensor networks. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  9. Important issues in a discrete event simulation environment Pseudorandom generators. Flexibility. Programming model. Model management. Support for hierarchical models. Debugging and tracing. Documentation. Large scale simulation. Parallel simulation. Experiment specification. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  10. Randomness • Several random number generators • Including Mersenne-Twister. • Easy to plug-in custom generators. • Mechanism for generating most random variates. • 14 continuous distributions. • 6 discrete distributions. • Very easy to define your own distributions. • Capability to generate a distribution from a sample. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  11. Flexibility • Core framework for discrete event simulation. • Different add-on for specific purposes. • Fully implemented in C++. • Functionality added by deriving classes following specified rules. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  12. Programming model Topology Behavior • NED Language • Describes links among nodes. • Describes composition model. • May be text edited or GUI. • Possibility to create topology at run-time. • C++ Code automatically generated. • Only methods describing behavior are needed to be redefined. • Key elements: • Topology: Describes relationship among elements. • Behavior: Describes how a node behaves. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  13. Model management Build models and combine like LEGO blocks Clear separation among simulation kernel and developed models. Easiness of packaging developed modules for reuse. No need for patching the simulation kernel to install a model. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  14. Hierarchical modeling Modules are self-contained and reusable. Compound models may be assembled from simpler modules without no coding effort. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  15. Debugging and tracking • Simulations may be run in two modes: • Command line: Minimum I/O, high performance. • Interactive GUI: Tcl/Tk windowing, allows view what’s happening and modify parameters at run-time. • Additional support for tracing. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  16. Documentation • Well structured documentation. • Well written and complete user’s manual. 247 pages. • Well documented (doxygen) API. • Documentation system for models is doxygen based and connects very well model documentation and API documentation. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  17. Documentation The documentation is well organized, automatically generated from source code and easy to browse. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  18. Large scale simulation Only limiting known factor is available virtual memory. Very good use of memory. If you need more, go for parallel simulation. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  19. Support for parallel simulation • Run one realization of a simulation experiment in a cluster. • No code modification needed! • Just modify configuration files. • Communication is MPI based. • Named pipes and shared files also available. • Conservative approach to parallel simulation. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  20. Experiment specification Experiment structure is defined via a topology file. Experiment parameters are specified via configuration files. Integrated data collection support. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  21. Contents The ARCOS Group. OMNET++ features. Simulation model building. Additional features of the simulation kernel. INET Framework. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  22. Simulation Model building Add behavior for (inti=0;i<10;i++) { } ... Analyze [General] network=test_disk [Parameters] ... Run Set up parameters Model structure Compile Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  23. Build process Network description nedtool compiler Simulation kernel libraries User interface libraries Generated C++ code Module behavior C++ code C++ compiler C++ compiler Linker Simulation program Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  24. Contents • The ARCOS Group. • OMNET++ features. • Simulation model building. • M/M/1 Example. • Additional features of the simulation kernel. • INET Framework. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  25. Example messages RequestGenerator Server • To show capabilities of OMNET++ basic features. • Evaluate M/M/1 Queue System. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  26. Step 1: Define the modules outpoint interEventTime RequestGenerator Gate inpoint serviceTime Server Gate • Two simple modules • RequestGenerator. • Server. • Parameters: • Set up by an enclosing module or at run-time. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  27. Step 1: Compound module Needs to be instantiated as a network SingleServer outpoint inpoint interEventTime serviceTime RequestGenerator Server Connection Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  28. Step 1: Topology definition • The whole topology definition is expressed in the specific purpose NED language. • Only structural description. • Very simple. • GUI for NED editing (I prefer text editing). • C++ code automatically generated from NED. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  29. Step 2: Add Behavior • Each simple module needs a C++ class implementing its behavior. • Follow user’s manual guidelines. • Few methods needed. • No C++ coding for compound modules. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  30. Step 2: Writing the code • For each simple module  Write a class derived from cSimpleModule. • Special rules: • Two stage creation: Constructor + initialize(). • Two stage destruction: finish() + Destructor. • Message handling: • Synchronous (More memory consuming, easy to understand). • Asynchronous (Event based, more efficient). Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  31. Step 2: Writing the code RequestGenerator Server • Send messages. • Wait interEventTime between two sending. • Use a timer to schedule next sending. • Each time a request arrives process or enqueue. • Wait serviceTime for processing by using a timer. • Record statistics of service time. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  32. Step 2: Coding effort • Ned files: 35 lines • RequestGenerator.ned: 6 • Server.ned: 6 • SingleServer.ned: 23 • C++ code: 152 • RequestGenerator.h: 23 • RequestGenerator.cc: 33 • Server.h: 31 • Server.cc: 65 Coding 187 lines Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  33. Step 3: Writing a configuration file • Most things can be set-up via an ini file • Changing things without recompiling. • Very simple syntax. • Some things: • Model to be run. • Time limitation. • Random number generator. • Parameters. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  34. Step 4: Build Utilities for automatically generating makefiles from existing sources. You can build a command-line or a GUI-based binary. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  35. Step 5: Running the simulation Example 1: constantParams.ini Example 2: exponentialParams.ini Example 3: batchRuns.ini Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  36. Contents • The ARCOS Group. • OMNET++ features. • Simulation model building. • Adding channels and hierarchical modeling. • Additional features of the simulation kernel. • INET Framework. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  37. Channels • It is possible to define a channel and assign it to a link. • Channel properties: • Delay: Propagation delay in seconds. • Error: Bit error rate. • Datarate: Bandwidth used to calculating transmission time of a message. • A length must be assigned to the channel. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  38. Example: N Clients to M Servers ClientPopulation ServerCluster Channel RequestGenerator Server … … ClientSwitch ServerSwitch RequestGenerator Server Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  39. Building the simulation • Step 1: Write the new ned files. • Step 2: Write/modify code. • Step 3: Write configuration file • Set up number of clients and servers. • Step 4: Build • Step 5: Run • A simulation with 100000 clients and 40 servers run on a laptop. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  40. Contents The ARCOS Group. OMNET++ features. Simulation model building. Additional features of the simulation kernel. INET Framework. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  41. Messages • Messages are sent among modules. • Attributes: • Name: String used in the GUI. • Kind: Numeric value representing information type. • Length: Number of bits used to compute transmission times. • Sending and arrival times. • Source and destination moduel and gate. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  42. Message definition language In many cases a message needs to carry additional information. The structure of the message may be defined in an msg file and then automatically generate C++. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  43. Collecting data and statistics • Several classes to collect data and compute statistics. • Basic statistic estimation. • Weigthed statistic. • Histograms. • Quantiles computation without storing data. • Transient and accuracy detection at run-time. • Recording scalars at the end of the simulation. • Recording vector of data during the simulation. • Simple view • Scalars • Plove Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  44. Debugging: Watches and snapshots • During run-time it is possible to watch values from C++ variables or structures (even modify). • Easy to use  Just a macro line. • Snapshots allow dumping all the objects to a file for debugging the simulation. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  45. Parallel and distributed simulation • Allows running a single realization of a simulation experiment on a set of machines. • No programming needed. • Just configuration. • Conservative synchronization among computing nodes. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  46. Parallel Configuration • All the configuration for parallel execution done in the ini file. • Allocating modules • Set in the ini file the partition-id property. • General configuration: • Activate the parallel execution. • Select the communication class: MPI, files, named pipes • Select the synchronization class: Null message protocol Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  47. Contents The ARCOS Group. OMNET++ features. Simulation model building. Additional features of the simulation kernel. INET Framework. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  48. INET Framework • A library of OMNET++ modules for building network simulations. • Layers: • Applications: Protocol specific applications (e.g. Telenet) • Mobility: Motion patterns of mobile objects • Nodes: Nodes in the network (e.g. Router, StandardHost) • Transport: Transport protocols (e.g. TCP) • Network: Network protocols (e.g. IPv4) • NetworkInterfaces (e.g. Ethernet) Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  49. Network interfaces Ethernet PPP IEEE 802.11 Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

  50. Network • Protocols • ARP. • ICMP (v4 & v6). • IP (v4 & v6). • LDP. • MLPS. • OSPF Routing. • RSVP. • Other functionality • Automatic network configuration. Introduction to simulation with OMNET++ José Daniel García Sánchez – ARCOS Group – University Carlos III of Madrid

More Related