Simulation model building. - Web de ARCOS

slateobservantNetworking and Communications

Oct 26, 2013 (3 years and 11 months ago)

72 views

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.

July 2007
-

University of Modena

2

The Expand Parallel File System

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

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.

July 2007
-

University of Modena

3

The Expand Parallel File System

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

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

July 2007
-

University of Modena

4

The Expand Parallel File System

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

Research lines


Data management on Grid environments.


Parallel file systems.


Optimization of irregular applications.


OS for Wireless Sensor Networks.


Real
-
time systems.


July 2007
-

University of Modena

5

The Expand Parallel File System

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

Contents

6


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

July 2007
-

University of Modena

What is OMNET++?

7


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

July 2007
-

University of Modena

Available off
-
the
-
shelf models


TCP/IP.


IP.


TPC.


UDP


PPP.





Network protocols


Ethernet.


802.11.


FDDI.


Token Ring.


Peer
-
to
-
peer.


Sensor networks.

8

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Important issues in a discrete event
simulation environment

9


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

July 2007
-

University of Modena

Randomness

10


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

July 2007
-

University of Modena

Flexibility

11


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

July 2007
-

University of Modena

Programming model

12


Key elements:


Topology: Describes relationship among elements.


Behavior: Describes how a node behaves.

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.

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Model management

13


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.


Build models and combine like
LEGO blocks

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Hierarchical modeling

14


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

July 2007
-

University of Modena

Debugging and tracking

15


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

July 2007
-

University of Modena

Documentation

16


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

July 2007
-

University of Modena

The documentation is well organized, automatically generated from source code
and easy to browse.

Documentation

17

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Large scale simulation

18


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

July 2007
-

University of Modena

Support for parallel simulation

19


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

July 2007
-

University of Modena

Experiment specification

20


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

July 2007
-

University of Modena

Contents

21


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

July 2007
-

University of Modena

Simulation Model building

22

for (
int

i
=0;i<10;i++) {

}

...

[General]

network=
test_disk


[Parameters]

...

Model
structure

Add behavior

Set up parameters

Compile

Run

Analyze

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Build process

23

Network
description

nedtool

compiler

Generated C++
code

Module behavior
C++ code

C++ compiler

C++ compiler

Simulation
kernel
libraries

User
interface
libraries

Linker

Simulation
program

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Contents

24


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

July 2007
-

University of Modena

Example

25


To show capabilities of OMNET++ basic features.



Evaluate M/M/1 Queue System.


RequestGenerator

Server

messages

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Step 1: Define the modules

26


Two simple modules


RequestGenerator
.


Server.



Parameters:


Set up by an enclosing
module or at run
-
time.

interEventTime

RequestGenerator

Gate

Gate


serviceTime

Server

outpoint

inpoint

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Step 1: Compound module

27

interEventTime

serviceTime

RequestGenerator

Server

outpoint

inpoint

Connection

SingleServer

Needs to be instantiated

as a network

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Step 1: Topology definition

28


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

July 2007
-

University of Modena

Step 2: Add Behavior

29


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

July 2007
-

University of Modena

Step 2: Writing the code

30


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

July 2007
-

University of Modena


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.

RequestGenerator

Server

July 2007
-

University of Modena

31

Step 2: Writing the code

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

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

32

Coding 187 lines

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Step 3: Writing a configuration file

33


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

July 2007
-

University of Modena

Step 4: Build

34


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

July 2007
-

University of Modena

Step 5: Running the simulation

35


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

July 2007
-

University of Modena

Contents

36


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

July 2007
-

University of Modena

Channels

37


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

July 2007
-

University of Modena

Example: N Clients to M Servers

38

ClientPopulation

ServerCluster

Channel

RequestGenerator

ClientSwitch

RequestGenerator



ServerSwitch

Server

Server



Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Building the simulation

39


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

July 2007
-

University of Modena

Contents

40


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

July 2007
-

University of Modena

Messages

41


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

July 2007
-

University of Modena

Message definition language

42


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

July 2007
-

University of Modena

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

43

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Debugging: Watches and snapshots

44


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

July 2007
-

University of Modena

Parallel and distributed simulation

45


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

July 2007
-

University of Modena

Parallel Configuration

46


All the configuration for parallel execution done in the
ini file.



Allocating modules


S
et 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

July 2007
-

University of Modena

Contents

47


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

July 2007
-

University of Modena

INET Framework

48


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

July 2007
-

University of Modena

Network interfaces

49


Ethernet


PPP


IEEE 802.11

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Network

50


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

July 2007
-

University of Modena

Transport

51


TCP


UDP


RTP

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Nodes

52


Contains nodes for different types of protocols.


Mainly routers and hosts.



IPv4.


IPv6.


MPLS.


Wireless.


Ad
-
hoc networks.

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Applications

53


Generic applications for


Ethernet


TCP


UDP


Ping.



Client and server applications.

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

Examples

54


Example 1: Web server


Define the network topology.


Configure parameters.


Run.



Simple changes


Number of clients.


NAM tracing.

Introduction to simulation with OMNET++

José Daniel García Sánchez


ARCOS Group


University Carlos III of Madrid

July 2007
-

University of Modena

INTRODUCTION TO
SIMULATION WITH
OMNET
++


José Daniel García Sánchez

ARCOS Group


University Carlos III of Madrid