Academic year 2015-16

Simulation of Networks and Systems

Degree: Code: Type:
Bachelor's Degree in Computer Science 22627 Optional subject
Bachelor's Degree in Telematics Engineering 21733 Compulsory subject, 3rd year
Bachelor's Degree in Audiovisual Systems Engineering 22655 Optional subject

 

ECTS credits: 4 Workload: 100 hours Trimester: 1st

 

Department: Dept. of Information and Communication Technologies
Coordinator: Dolors Sala
Teaching staff:

Dolors Sala

Language:

English/Catalan

Timetable:
Building: Communication campus - Poblenou

 

Introduction

This course focuses on the methodology of modeling and simulation with the objective to learn the theory behind the simulations. Simulation studies are widely used by the industry as an evaluation tool of a new system before starting it, so that to reduce risks of a final design. The actual outcome of the evaluation depends on the situation. It may want to evaluate security risks of the final system, or measure investment amounts or risks, or predict performance behavior, all before building the actual system. Hence simulations are a tool to make strategic decisions. Because of this importance, it is crucial to produce valid and accurate data according to the level of importance of the decision to be taken. Custom-made packages for the particular scenarios are common and they provide implemented design of particular systems or models. These packages provide standard modules that reduce the simulation study time for existing systems or models. But interpretation of the resulting results depends on the knowledge and experience of the engineer using the simulation tool. This course focuses on the knowledge required to produce a correct simulation program as this provides the needed theory to interpret the given ones in the packages. The course takes this knowledge to the level to apply it and produce a simulation program from scratch of a particular networking scenario and produce a decision paper with the output of the simulation built. 

 

Prerequisites

It is important that the student has basic programming skills, compilation, execution, program editing, etc.

The course does not require sophisticate networking background, however most examples are networking examples. Basic knowledge in networking helps understanding the examples and the interpretation of the results.

Based on this, we recommend taking this course after taking the following courses:

The analyzed concepts of this course are useful in problem solving by the industry and also in future courses of the degree.

 

Associated competences

The objective of the course is to provide students with the conceptual tools and theoretical understanding to build correct simulation programs and produce valid statistics from them. To do so, it needs programming experience primarily in c, and some knowledge of statistics.

The theoretical concepts addressed are theory of modeling and simulation, design of random number generators, and application of queuing and statistics theory. These concepts are put in practice building a complete simulation program in c for a particular networking problem and producing an analysis report with justified decisions.  

The competencies to acquire in this course are:

Specific Competencies

C1

Understand the relation between the real world, the model and the simulation so that to understand the different detail levels a system can be modeled and implemented in a simulation

C2

Understand how the time-driven and event-driven simulation work and know how to use them

C3

Know how to model the source of the simulation and how to model users of a network

C4

Understand what is a random number generator, how are they implemented and how to use them appropriately

C5

Understand the stochastic processes involved in the network modeling and know how to define them in a simulation

C6

Know the necessary processes involved in the simulation of telecommunication systems

C7

Know how to design simulation programs in c (high level language)

C8

Know the metrics involved in the performance study of protocols and networks and know how to apply them

C9

Know how to analyze the precision and accuracy of the produced outcome of a simulation in order to produce statistically correct results

C10

Know how to produce a quantitative and qualitative study of a system modeled by a simulation

 

General Competencies

Instrumentals

C11

Abstraction Capacity

C12

Capacity of analysis and synthesis

Interpersonal

C13

Capacity to work in a team

Systematic

C14

Initiative

 

Assessment

The course evaluation is based on continuous evaluation during the quarter and there is a final exam evaluation too. The evaluation is summarized in the following table and explained next:

Evaluation

 

 

E1: 1st Part Exam ( >= 4.5 required) (1)

20%

Can be recovered

E2: 2nd Part Exam ( >= 4.5 required) (1)

25%

Can be recovered

L: 6 reports equal weight, each must have a grade >= 4.5(2) (3)

55%

No option to recover

(1) If course is not passed in December, exam grades below 5 have to be retaken in July.

(2) A provisional version of the reports must be submitted before the corresponding lab session to have a grade for this report. Each of the 6 report grades must be 4.5 or higher to count. If submissions are late the grade is modulated according to calculation given above.

(3) Early pre-submissions are valued and granted an extra 10% grade to the final report grade as indicated in the handouts.

 

 

 

The course has two written exams. The course material is divided in two parts and each part is evaluated in a separate exams. E1 exam includes the material of the first half of the course, and E2 includes the material of the second half of the course. Each part can be passed and recovered (if failed) separately. A minimum grade of 4.5 is required in each exam to pass the course. Exam grades lower than 5 will need to be repeated in July if the course is not passed in December.

Evaluation of seminar and lab work (L). There are 6 lab reports that are worked out during seminar and lab sessions. The same report may be worked out in more than one session. The sessions assume that students have worked out the report prior to the sessions. Hence, pre-submission of the reports are required (at least by the last session of the report), otherwise the report grade does not count. An extra 10% of the grade is granted if the pre-submission is done before the first session for this report. The reports are independent however they build up a complete simulation all together. Therefore, it is important to learn the objectives in each one, hence there is a minimum grade of 4,5 required in each report individually to get the final report grade to pass the course.

If final submissions are late, the following relation of grade penalty will be applied:

Recovering:  There is an exam in July evaluating the two parts separately. Only the exam part with grade less than 5 will need to be recovered in July. The computation of the final grade in July follows the same rules as in December with one exception. In July the maximum course grade is limited to 6.5.

IMPORTANT: plagiarism in any submission is a reason to fail the course in addition to take additional disciplinary actions. 

 

Contents

This course has 8 chapters grouped in 2 content blocks corresponding to the evaluation exams:

Block 1. Principles of system simulation and input modeling

Chapter 1: Theory of Modeling and Simulation

Chapter 2: Basics of Probability and Measures

Chapter 3: Random number generators

Chapter 4: Input modeling (Arrival Process)

Block 2. Output and Correctness

Chapter 5: Queuing Models

Chapter 6: Output analysis

Chapter 7: Simulation Tool box for validation, verification and presentation and simulation packages

Chapter 8: Building a complete simulation: A case study applied to a networking problem

The first block includes the methodology to build models and simulations including the modeling of the randomness and the simulation input. This includes the concepts of time-driven and event-driven simulations, the analysis of random number generators, and the implementation of distribution functions to create packet generators.

The second block covers the output analysis of the simulation understanding the metrics needed, how to implement and measure them and how to verify the implementation and validate the model results based on real observation or theoretical results. It also includes all necessary tools to present the data for the correct interpretation of the results, the knowledge of simulation packages and a final case study that puts all learning in practice producing a final decision paper of a particular scenario.

The following knowledge is accomplished with this content:

Concepts

Time-driven and event-driven simulation

Validity and verification

Assumptions document

 

Queuing models MM1, MD1, MMC

Phases of a simulation (transient and steady state)

Law of large numbers

Little’s law

Random number generator and seed

Confidence interval

Performance Metrics of a system

Simulation workload types

Traces

Sensitivity analysis

Histograms and result plots

 

Processes

Event management in an event-driven simulation

Time management in a time-driven simulation

Generation of random number sequences following a particular distribution

Approximation of queuing theory results to network dimensioning concepts by simulation

Packet generators following a distribution function

Simulation termination process

Hypothesis test

Acceptance-rejection method

Results validation by comparison

Trace generation for the validation and study of the simulation

Plot generation to represent and interpret simulation results

Replicability of results for verification

 

Attitudes

Capacity to identify and observe details (at different levels)

Interest for the precision and patience to accomplish it

Initiative to produce own program to validate assumptions as necessary

Decision to learn a program that implements theoretical concepts

 

Methodology

The course has as a main objective to know how to construct a correct simulation program applying the correct theory and methodology. The objective is to accomplish a good knowledge of theoretical concepts and know how to apply them in practice. Hence the course focuses both seminars and lab sessions to practical exercises of theory concepts using programs built from scratch primarily in c using data manipulation packages (matlab/octave, excel,…) to plot the results.

The course activities are structured in the following session types:

Theory sessions

In these sessions the theory concepts of the subjects are introduced. These are 2 hour sessions with all students in a unique theory group T1.

The instructor explains the concepts using slides, PC and projector as well as in the board, or going directly inside code to show concepts directly in practice. The slides are used as presentation material for the instructor and can be used as material for study together with notes taken in class, materials from seminars and lab sessions, and reference bibliography of the content. The slides are not complete enough to be used as exclusive material to study.

The analyzed concepts in these sessions set the basis content for the seminar and lab sessions.

Seminar and Lab sessions

In these sessions the concepts are put in practice. These sessions are guided with handouts that have to be submitted. The objective is that students work out the handouts prior to the sessions. Each handout may be worked out in one or two sessions, as specified in the handout. Pre-submission of the handout is recommended (and if it is done early is valued extra in the evaluation), and hence a pre-submission is required by the last session working the handout.

The lab sessions are with all students having one lab group P101. The students work in teams of 2 or 3 to execute the lab assignments. The seminars have half of the students defining two seminar groups S111 and S112. All seminar and lab sessions are in front of a computer in the computer classrooms.

The 6 handouts and sessions assigned are:

 

Resources

Basic Bibliography

Complementary Bibliography

Additional Materials