1550_Accelerating Simulations Using Efficient Modeling Techniques
-
Upload
kotafiatef -
Category
Documents
-
view
226 -
download
5
description
Transcript of 1550_Accelerating Simulations Using Efficient Modeling Techniques
-
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc.
2007 OPNET Technologies, Inc.
Accelerating Simulations UsingEfficient Modeling Techniques
R&D Solutions for Commercialand Defense Networks
Session 1550
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc.
2010 OPNET Technologies, Inc.
-
21550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Session Goals
Learn the basics of factors affecting efficiency of Modeler simulation through a combination of lectures and labsLearn and practice Modeler efficiency techniques and
methodologies to identify causes of performance problems Topics includezKernel types, compiler settings and other environmental factorsz Efficiency techniquesz Profiling programszGeneral programming practicesz TradeoffszAdvanced efficiency techniques to reduce memoryzOPNET data structures, algorithms and memory APIzWireless modeling efficiency
-
31550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Agenda
Introductionz Simulation Optimization Goalsz Session organization: from the Simple to the Complex
Environment efficiency: the Low Hanging Fruitz Lab1: Using Development vs. Optimized Kernel Programming Efficiency
z Data Structures & Algorithms Lab2: Routing Protocol Profiling
z Discrete Event Simulation Kernel Efficiencyz Memory Efficiency Lab3: Memory Statistics
Modeling Efficiencyz Trading Accuracy for Speedz Using Global Space and Memory Sharingz Lazy Evaluationz Overloading Information Exchange Lab 4: Operating Protocols Efficiently
Take-Away Points
-
41550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Simulation Optimization Goals
FasterzReduce wall-clock timez Increase events/secondTighterz Less memoryz Less chance of using swap spacezBetter performance scaling with size of modelCleanerz Easier to maintainValidzModeling results accurate according to assumptionsTime Space / Fidelity Trade-OffszChoose what is more important
-
51550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Simulation Methodology (from 1572)
Yes
End
Start
Results statistically
useful?
No
NoResults
sufficiently detailed?
Choosing input andrunning simulations
System results accurate?
Defining input and output
Specifying the system model
No
Choosing aspectsto be modeled
Understanding your goals for the
simulation
Understanding the system
Abstraction vs. Fidelity
-
61550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
What Takes Time in aDiscrete Event Simulation?
Model Codez Process modelsz Pipeline stagesz External filesDES Kernel ServiceszKernel Procedures: ima, pk, sar, list,
etc.z Time spent in kernel procedures is
dictated by model codeDES Kernel Enginez Event managementzDispatching interruptszHandling packet send/receiveOperating SystemzMemory paging/swapping
DES Kernel Engine
DES Kernel Services
User Models
OS
-
71550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Simulation Models
Simulation MethodszDiscrete event simulation (DES) models and engine Hybrid
z Flow Analysis models and engineDES modelszOpen source C/C++ codezDetermine protocol behavior including data + control planezUtilize DES kernel to run simulationszCapture detailed component/network behaviorUnderstand efficient modeling techniques to operate and design DES
protocol models
-
81550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Optimize Everything!
Efficient environmentEfficient simulation kernelEfficient compilation
Efficient model representation
Efficient configuration of protocols
Efficient codezData structureszAlgorithmsz Efficient Kernel ProcedureszModel design and abstraction
Easy
Difficult
-
91550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
What Gains Should You Expect
Pareto Principle: 80/20 rulez 80% of time/memory/etc. in 20% of codezOptimize most time/memory-consuming code firstGains vary enormously depending on techniquezMost result in small improvement (1-5% overall speed or memory)zA few result in big speed or memory improvement Replace use of inappropriate data structure or algorithm Achievable by trimming unnecessary computations (precision issues)
-
10
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Agenda
Introductionz Simulation Optimization Goalsz Session Organization: from the Simple to the Complex
Environment efficiency: the Low Hanging Fruitz Lab1: Using Development vs. Optimized Kernel Programming Efficiency
z Data Structures & Algorithms Lab2: Routing Protocol Profiling
z Discrete Event Simulation Kernel Efficiencyz Memory Efficiency Lab3: Memory Statistics
Modeling Efficiencyz Trading Accuracy for Speedz Using Global Space and Memory Sharingz Lazy Evaluationz Overloading Information Exchange Lab 4: Operating Protocols Efficiently
Take-Away Points
-
11
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Efficient Environment
Faster hardwarezMulti-Core processor machines
More memory: Eliminates swappingLess CPU contentionz Eliminate other activities: No complex screen saverszNo OPNET GUI Run simulation from command-line or OPNET Console
zOr minimal GUI Prevent speed and memory graphs
from being displayed Reduce frequency of
simulation progress updates
-
12
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Efficient Environment:Concurrent Simulations
Modern CPUs have more than one microprocessor corez Execute a simulation run on each corezDistribute simulations runs to different hostsOPNET Preference configuration:zAllow Simulations on Multiple Hosts: TRUEzDistributed Simulation Hosts: ::
Need separate Simulation Run-Time license for each concurrent runz Site Simulation Runtime License covers unlimited number of concurrent runs
-
13
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Efficient Simulation Kernel
Development KernelzModel development/debuggingzOPNET Simulation Debugger (ODB)z Profiling capability in Kernel ProceduresOptimized KernelzNo ODB, tracing, or KP profilingz Typically 50-100% faster than Development KernelzUse for production simulation after developmentParallel KernelzUse only with multi-threaded modelsOPNET Preference kernel_type
-
14
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Efficient Compilation
Use compiler optimizationszConfiguration using OPNET preferences comp_prog selects compiler comp_flags_devel for development kernel comp_flags_optim for optimized kernel
z See Appendix for compiler flags or OPNET FAQsCompile without OPNET function call stack infoz FCS: Error reporting overhead for
quickly debugging problemsz Increases speed by 30-50%z comp_trace_info preferencezDefault is disabled when compiling
for optimized kernel
>* Time: 22:09:29 Thu Aug 10 2007* Product: modeler* Program: op_runsim (Version 14.0.A PL0 Build 6020)* System: Windows NT 5.0 Build 2195* Package: process (mpls_mgr) at module (top.Imported Network.DDORTMCR7302.ip)* Function: mpls_mgr_forward_packet_on_interface ()* Error: program abort Invalid Memory Access
T (100.004), EV (299165), MOD (top.Imported Network.DDORTMCR7302.ip)
* Function call stack: (builds down)------------------------------------------------------------
Call BlockCount Line# Function
------------------------------------------------------------0) 1 152 0x09254d0e [name not available]1) 1 2211 0x00004c00 [name not available]2) 1 1358 0x0000c400 [name not available]3) 1 291 m3_main4) 1 1106 sim_main5) 1 2706 sim_ev_loop6) 186302 501 sim_obj_qps_intrpt7) 53920 14 ip_rte_central_cpu [ip_central_cpu_wait -> check_next]8) 26878 366 ip_rte_central_cpu_send_packet (pkptr)9) 26878 2386 ip_rte_packet_send (module_data_ptr, pkptr, intf_ici_fds)
10) 38923 727 op_pro_invoke (pro_handle, argmem_ptr)11) 202 21 mpls_mgr [wait -> wait : default / mpls_mgr_packet_process]12) 154 1110 mpls_mgr_packet_process ()
-
15
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 1:Simulation Kernel Performance
Assess baseline simulation performanceExplore OPNET development environment configurationCapability of environment + simulation kernel + compilerCompare debug and optimized kernelsRun multiple simulations concurrently
-
16
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 1 Summary:Simulation Kernel Performance
Use Optimized Kernelz 2x speed improvement for simplest simulationzUse unless debugging problemRemove function stack trace information for speedReduce frequency of progress update
-
17
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Agenda
Introductionz Simulation Optimization Goalsz Session Organization: from the Simple to the Complex
Environment Efficiency: the Low Hanging Fruitz Lab1: Using Development vs. Optimized Kernel
Programming Efficiencyz Data Structures & Algorithms Lab2: Routing Protocol Profiling
z Discrete Event Simulation Kernel Efficiencyz Memory Efficiency Lab3: Memory Statistics
Modeling Efficiencyz Trading Accuracy for Speedz Using Global Space and Memory Sharingz Lazy Evaluationz Overloading Information Exchange Lab 4: Operating Protocols Efficiently
Take-Away Points
-
18
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Solve Problems Before Dealing with Efficiency:Code Optimization Methodology
1. Understand the perceived problem2. Define the abstract problem3. Design the solution4. Implement a prototype5. Verify correctness6. Benchmark prototype7. Identify optimization candidate8. Optimize/redesign code
Repeat as necessary
-
19
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Profiling Program Execution
Objective: to shorten execution timeFind hot spots accurately by code instrumentationz Function timing datazNumber of times function calledUse commercially-available softwarez IBM Rational Quantify, compilers profiler (prof, gprof, Microsoft Profiler)OPNET built-in profilerzRelies on FIN/FOUT/FRET macros in user codez PROFILE_SECTION macroszResults not precisebut accurate for finding bottleneckszKernel procedures only profiled if using development kernel Optimized kernel shows only user model functions
zMore details in upcoming labQuestion: how to improve inefficiency uncovered by profiling ?
-
20
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Complexity Analysis
Big-O notationWay to quantify performance and compare different algorithmszO(1) O(log n) O(n) O(n2) O(2n)zWorst-case order of growthzBy inspection of solutionzBasic understanding of problem and solutionzQuick comparison of different approachesExample: What is order of growth of this code?
for (i = 0; i < n; i++) {
if (array [i] == x)
return (true);
}
return (false);
-
21
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Comparing Data Structures
Array (vector)zContiguous sequence of itemsz Fixed numberzDirect access by index
Double Linked ListzNon-contiguous sequence of itemszVariable numberz Indirect access starting from beginning/end
Access: O(1)Insert: O(N)Delete: O(N)
Access: O(N)Insert: O(1)Delete: O(1)
-
22
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Searching Algorithms
Problem: Find a particular value in a collection of elements
Sequential searchzWorks for any data structure (array, list, etc.)zO(n)Binary searchzRequires ordered array/vectorzO(log n) on averagez Standard implementationszNot appropriate for linked lists (no direct element access)
-
23
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Searching Algorithms (cont.)
Tree searchzO(log n)z Insert/delete O(height of tree) O(log n)zOPNET API#include
z Example in OPNET Models wireless_lan/wlan_mac.pr.m
*
*
*
-
24
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Searching Algorithms (cont.)
Hash table searchindex = hash_function (item key);
zO(1) access/insertionzHash function on keyzMemory overheadzHashing overheadzCollisionszOPNET API#include #include
z Example in OPNET Models ip/ip_cmn_rte_table.ex.c
*index
-
25
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
OPNET API Data Structures
API Package Data Structure SearchInsert /Delete
prg_vector resizable array O(n) O(n)
prg_list linked list O(n) O(1)
prg_mapping balanced tree O(log n) O(log n)
prg_string_hashhash table
(string keys)O(1) O(1)
prg_bin_hashhash table
(fixed length keys)
O(1) O(1)
-
26
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 2:Improving Code Efficiency
Routing protocol model Identify bottlenecks using the OPNET ProfilerApply different efficiency techniques
-
27
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 2 Summary:Reworking Code for Efficiency
OPNET Simulation Profiler identifies inefficiencies in designRedesign with more efficient algorithms and data structuresz 76% faster with hash table search over sequential searchz 86,944 events/second vs. 49,573 events/second
-
28
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Agenda
Introductionz Simulation Optimization Goalsz Session Organization: from the Simple to the Complex
Environment Efficiency: the Low Hanging Fruitz Lab1: Using Development vs. Optimized Kernel
Programming Efficiencyz Data Structures & Algorithms Lab2: Routing Protocol Profiling
z Discrete Event Simulation Kernel Efficiencyz Memory Efficiency Lab3: Memory Statistics
Modeling Efficiencyz Trading Accuracy for Speedz Using Global Space and Memory Sharingz Lazy Evaluationz Overloading Information Exchange Lab 4: Operating Protocols Efficiently
Take-Away Points
-
29
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Efficiency of Packet Field APIs
Common operations on a packetzField accesszField typeszTransferringAccess by name: op_pk_nfd_ (pkptr, , Access by index: op_pk_fd_ (pkptr, ,
_nfd_& Safe if not present& Independent of field order' Cost of string comparison
inside KP
_fd_' Need knowledge of index' Dependent on field order& Faster access
-
30
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Packet Fields vs. Structs
Two ways of representing data items in packetz Individual field for each itemzOne structure field with corresponding C/C++ structure
struct {int src, dst, prio;
}+
Fields of a C/C++ structure&More compact representation' Require display proc for ODB)Require copy/delete/print procs& Faster access to data
Individual packet fields&More modular& Automatic display in ODB
' Slower access to data
-
31
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Field Get vs. Access for Structure Fields
_Get to extract data from packetzContainer packet internals updated to reflect extractionz op_pk_(n)fd_get KPs for fields of type structure_Access to modify data in-linez op_pk_(n)fd_access_ptr KP for fields of type structurezNo update needed for container packet internalszUseful to read/modify data in packetz Packet sharing: make private Potential structure data update
z Faster_Access_Read_Only to peek at data inside packetz op_pk_(n)fd_access_read_only_ptr KP for fields of type structurezNo update for packet internals nor packet sharingz Fastest
-
32
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Type-Specific Packet Field Access
Generic KPs to set/get packet fieldsz op_pk_(n)fd_get/set()zVariable number or types of argumentszNo compiler help with bad calls Likely to cause aborts at runtime due to type mismatch
zDeprecated APIsStrongly Typed KPsz op_pk_(n)fd_get/set_() : dbl,info,int32,int64,objid,pkid,pkt,ptr,str E.g.
z op_pk_fd_get_dbl (Packet *, int index, double * val_ptr)
z op_pk_nfd_set_int32 (Packet *, const char * field, int val)
zBad arguments reported when compiling the modelz Field type mismatch reported as simulation warning, not crashz Faster than generic versions
-
33
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Efficient Event State
Associating information with eventsPre-10.0: Must use Interface Control Information (ICI)
Set: Ici * op_ici_install (Ici * ici_ptr)Get: Ici * op_ev_ici (Evhandle)
10.0+: Allows arbitrary C/C++ state structureSet: void * op_ev_state_install (void * state_ptr, void*
print_proc)Get: void * op_ev_state (Evhandle)
ICI&More modular' Slower access to data& Automatic display in ODB' Cannot view ICI internals
in source debugger
C/C++ structure&More compact representation& Faster access to data' Only display pointer in ODB& Easier to manipulate in source
debugger
-
34
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Agenda
Introductionz Simulation Optimization Goalsz Session Organization: from the Simple to the Complex
Environment Efficiency: the Low Hanging Fruitz Lab1: Using Development vs. Optimized Kernel
Programming Efficiencyz Data Structures & Algorithms Lab2: Routing Protocol Profiling
z Discrete Event Simulation Kernel Efficiencyz Memory Efficiency Lab3: Memory Statistics
Modeling Efficiencyz Trading Accuracy for Speedz Using Global Space and Memory Sharingz Lazy Evaluationz Overloading Information Exchange Lab 4: Operating Protocols Efficiently
Take-Away Points
-
35
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Reducing Memory Usage
Paging/swappingz Insufficient physical memory for active tasksz Temporarily transfer physical memory contents to diskzDisk is slowz Swapping dramatically decreases performance of simulationsMemory and performancezUsing less memory improves performance Less paging faster code
zMemory is slower than CPU Less frequent memory access faster code
-
36
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Identifying Memory Problems
Check high memory utilizationzOut-of-memory errorz Look/listen for swapping zWatch with toolsMemory monitoring toolszMS Windows Windows Task Manager Performance Monitor (perfmon)
zUNIX top
zOPNET Memory Tools
-
37
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Dynamically Allocating Memory
C/C++ library callsz malloc/calloc/freez new/delete BEWARE: Memory fragmentation is possible with repeated allocations/de-
allocations
OPNET Memoryz Three classes Pooled Categorized General
zAPIs op_prg_pmo (and prg_pmo) API package op_prg_cmo (and prg_cmo) API package op_prg_mem (and prg_mem) API package
-
38
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
OPNET Memory API
Pooledz Fixed size objectszAllocate contiguous blocks
CategorizedzVariable size objectszGrouping of logically related memory allocations Statistics per category
GeneralzBest used for transient memory
-
39
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Fixed-sized objectsz Simulations typically use fixed-sized objectszAllocate blocks of struct objectsEfficientzQuickly allocate/deallocate objects
OPNET Pooled Memory API
vs.
-
40
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
OPNET Memory Preferences
Preferences to disable memory management optimizations for detailed memory usage studiesz mem_opt.compact_pools If TRUE, may share same blocks for pools of the same size
z mem_opt.pool_small_blocks If TRUE, use Pooled Memory for small blocks of dynamically allocated
memory8-byte overhead per memory objectDisabling memory managementzOPNET preference mem_optimize = falsez Find leaks with third-party memory debugging tools IBM Rational Purify Valgrind
-
41
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
OPNET Built-In Memory Statistics
Relies on using OPNET memory APIDetailed memory use statisticsReports dynamically allocated memory use only
-
42
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 3:Memory Statistics
OPNETs built-in memory utilization profilerzMemory StatisticszMemory Source Tracing Interpret output resultsSee utility of OPNET memory API for analysis/debugging
-
43
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 3 Summary:Memory Statistics
Finding memory leaks easy in OPNETzMemory Utilization graphzMemory Statistics tablezMemory Source Tracing function call stacks
-
44
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Structure Optimization
struct OPNETWORK_Session {int numAttendees;
int dayOfWeek;
char topic [128];
int isFull;
double priority;
};
sizeof (struct OPNETWORK_Session)?
-
45
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
struct OPNETWORK_Session {int numAttendees; - 4 bytesint dayOfWeek; - 4 byteschar topic [128]; - 128 bytesint isFull; - 4 bytesdouble priority; - 8 bytes
};
sizeof (struct OPNETWORK_Session)?z4 + 4 + 128 + 8 + 4 = 148 bytes?
Structure Optimization (cont.)
-
46
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Optimized Structure
Sub-byte struct membersz struct OPNETWORK_Session_Optimal {
double priority; - 8 byteschar * topic; - 4 bytesunsigned char numAttendees; - 1 byteunsigned int dayOfWeek : 3; - 3 bitsunsigned int isFull : 1; - 1 bit
};
z sizeof (struct OPNETWORK_Optimal)?
8 + 4 + 1 + 3/8 + 1/8 = 14 bytes 16 bytes
doublechar *
-
47
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
prg_string_const()
Alternative to dynamic memoryz Not deallocatedz Uniqueuses hashingz String comparison easier
From ip_qos_support.ex.cclass_map_ptr->class_name =(char *) prg_string_const (class_map_name);
if ((pkt_info->class_name != OPC_NIL) &&
(class_map.class_name != OPC_NIL)){if (pkt_info->class_name == class_map.class_name)
match_found = OPC_TRUE;}
-
48
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Caching Information
Trade space for timez Eliminate redundant computation of similar informationzRequire space to store computed values Issues to considerzCost of computation vs. cost of maintaining cache Duration of validity Ease of invalidating/updating cache
zCost of cache accesszMemory increase due to cache
-
49
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Good OPNET Candidates for Caching
Mapping between object IDs and hierarchical nameszConstant throughout the simulationz op_ima_obj_hname_get()z op_id_from_name()
Topology relationshipsz Neighbors discovered thru op_topo_* KPsModel attributeszMay or may not be constant during a simulationz op_ima_obj_attr_get_*()
-
50
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Caching Data in Object State
Can store custom state structure with most OPNET objectsz op_ima_obj_state_set (Objid obj, void * state)z void * op_ima_obj_state_get (Objid obj)
Efficient accessUseful to cache pipeline stage information in rx/tx channelsz Example from standard models: dra_rxgroup.ps.c sets rx channel state for signal lock dra_power.ps.c gets state and checks/sets signal lock dra_ecc.ps.c gets state and resets signal lock
Danger: only one state per objectzRequires good coordination between models
-
51
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Attributes You Should Not Cache
Typically, built-in attributes modified by the simulation kernel should not be cachedz Position attributes op_ima_obj_pos_get: obtain lat/long/alt and X/Y/Z coordinates op_ima_obj_attr_get/set: individual position attributes
z x position, y position, altitude
z condition attribute Determines status of a link/node as failed/live
-
52
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
TMM Caching Example
Terrain divided into 6 rectangles:z The first time T1 communicates with R1 or R2 Attenuation cached for
z Each time T1 communicates with R1 or R2 Cached attenuation calculation is used
z If R3 moves from rectangle 3 to rectangle 1 Communication between T1 and R3 uses cached attenuation
Examplez tmm_longley_rice.ex.c
-
53
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Agenda
Introductionz Simulation Optimization Goalsz Session Organization: from the Simple to the Complex
Environment Efficiency: the Low Hanging Fruitz Lab1: Using Development vs. Optimized Kernel
Programming Efficiencyz Data Structures & Algorithms Lab2: Routing Protocol Profiling
z Discrete Event Simulation Kernel Efficiencyz Memory Efficiency Lab3: Memory Statistics
Modeling Efficiencyz Trading Accuracy for Speedz Using Global Space and Memory Sharingz Lazy Evaluationz Overloading Information Exchange Lab 4: Operating Protocols Efficiently
Take-Away Points
-
54
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Three-Step Process
Identify Modeling ProblemzDefine purpose of model and analysisUnderstand Efficiency / CompromiseszOptimize model based on desired answer to questionzDo not simulate everything Implementation MethodszDesign code according to compromises
-
55
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Low-Hanging-Fruit:Remove Overhead
Component OverheadzRemove/shutdown unused IP interfaceszRemove un-connected nodes (except standalone servers) Reduces memory required by a simulation
zRemove unwanted protocol components from node models (Modeler only)Results OverheadzDo not collect unwanted statistics zUse bucketized collection mode instead of collecting all valueszDisable unwanted reports Reduces number of hard-disk writing Reduces amount of data stored in memory
-
56
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Balancing Fidelity vs. Speed
Fidelity and Simulation Performancez Typically, higher fidelity => longer/larger simulationzVery detailed modeling requires more computationally heavier events,
packets, etc.Reduction in fidelityzCan generate valid results in less timez Let problem focus dictate fidelity of analysis E.g. Application-level analysis can tolerate link-layer abstractions
-
57
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Modeling Abstractions
Abstraction: useful simplification of a real-world processz To be useful, an abstraction must behave like the original process
Types of abstraction commonly used in OPNETzNetwork abstractionz Traffic abstractionz Protocol abstraction Control plane abstraction Data plane abstraction Statistical abstraction Emulation
-
58
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Network Abstraction:Modeling the Internet
Internet as an IP/ATM/FrameRelay cloudz Abstract a cluster of routers / switchesz Characterize cloud by latency/lossz One routing table for entire cloudz Use for end-to-end application performance studies
Trade-Offsz Routing/security polices cannot be deployed in complete detailz No failure modeling in a cloud
-
59
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Network Abstraction:Aggregation
Server Farm as a LAN nodez Abstract a cluster of servers/workstation connected to a LAN segmentz Characterize farm by MAC access delay/switching speedz One protocol stack for all component nodes
Trade-Offsz MAC contention delays may be inaccurate for shared segmentsz Not possible to model for all technologies
-
60
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Traffic Abstraction
Traffic representation in OPNET
Choice of representation depends on modeling purposez Packet by packet End-to-end delays, protocol details, segmentation effects
zAggregated traffic Capacity planning, steady-state routing analysis
Traffic Type OPNET RepresentationPacket Level Traffic Explicit Traffic
Aggregated Traffic Traffic FlowsDevice/Link Loads (Background Traffic)
-
61
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Hybrid Traffic
&More accurate than analytics alone&Faster than discrete'Does not model all protocol
dynamics like feedback, flow control, congestion control and policing
Traffic Demands can be set to a mix
-
62
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Hybrid Traffic TDMA Satellite Example
Blue is 100% explicitRed is 1% explicit'Did not model oversubscription of satellite at 9m 0s.
-
63
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Protocol Abstraction:Signaling Plane
Signaling Planez Used by connection oriented protocols for resource reservationz Timers to model outages and topology changesz Uses control plane information for exchanging signaling messagesz Memory required for connection managementOPNET model examplesz SAAL in ATM networksz SIP for VoIP networksz RSVP for MPLS networksHow to abstractz Delays to model connection setupz Simplify signaling protocol (SETUP, CONFIRM)z Signal using global topology knowledge (if abstracting control plane)z Examples of signaling layer abstractions in OPNET SS7 in circuit switch networks ILMI in ATM
Trade-Offsz Cannot capture transient behavior
-
64
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Protocol Abstraction:Control Plane
Control PlanezModel routing traffic, path-computation, tables/databaseszModel policies for filtering and altering routing informationzHandles failure/recovery situations
OPNET model examplesz Circuit switchz Frame Relayz OSPF
How to abstractz Use of centralized graph accessible to all nodes Construct with prg_djk or op_topo packages
z Stop control traffic after a certain simulation duration Trade-Offsz Cannot capture routing convergence times z May not capture all routing policies
-
65
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Protocol Abstraction:Data Plane
Simulation worldz Not required to follow physical pathz Direct transfer packet between any two modules op_pk_deliver Kernel Procedures By-pass pipeline stages & network transmission/propagation
z Well-known link-level behavior Delay, error rate, etc.
Available in following modelsz ATMATM Sim Efficiency: Enabledz Frame Relay - FR Sim Efficiency Modez Transport ProtocolsDirect DeliveryTrade-Offsz Cannot model physical layer effects Path-loss, interference,
z Cannot collect link/channel statistics Throughput, utilization, error rate,
z Cannot model influence on other packets Queuing, congestion, flow control back-offs, ...
-
66
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Statistical Abstraction
Capture the statistics of a quasi-deterministic processzA version of random backoff in a medium access protocol Assume p: probability of successful transmission in any slot In case of failure, slot range doubles, tx slot chosen uniformly from range Find distribution of number of slots to successful transmission I computed Prob (slot k) = (1/2n)p(1-p)n, where n = LowerInt(log2k)
z Instead of modeling collision detection, retrial etc, sample the distribution
Some processes can only be modeled via statistical abstractionz Fading in a multi-carrier radio transmission with Doppler effect Doppler effect leads to time-correlation Time correlation can be captured via Markov chain This techniques has been used in WiMAX PHY modeling
-
67
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Statistical AbstractionAn Example
Smart MACzCharacterize MAC operation in a table Packets arrive Perform a table lookup to obtain delay/loss Drop or deliver to destination node after delays
z Table should account for Delaysretransmission, back-off, propagation Lossescollision, buffer overflow
-
68
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Operational Efficiency:Use Pre-Computed Data
Use pre-computed data from other simulations or empirical sources IP forwarding table import from Flow Analysis/DESz Use forwarding table reports previously generated Entire routing information available at beginning of simulation
z Trade-offs No control traffic Cannot react to topology changes Uses a single snapshot
UMTS pre-computes antenna gain and pathlossz Computed for all UE Node_b communication pairsz Antenna gain is a function of transmission direction and path loss is a function of
distancez They are re-computed if distance threshold is crossedz Trade-offs - May be inaccurate if threshold value is very highReceiver Groups
-
69
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Use of Global State
Omniscient Simulationz Information about all nodes/links are accessible to all other nodesz Store large/repetitive data in a global areahighly efficient when copies of
these data structures have to be made in many nodes
Example: ARP Resolution zGlobal table for IP to MAC address resolutionzDoes not generate ARP requests/responseszControlled by ARP Sim Efficiency attribute& Increases simulation speed and eliminates memory required by ARP cache of
each node' Does not model ARP traffic and also time taken for resolutionExample: TDMA Radio Slot Plan & Simplifies process model and increases simulation speed' Does not simulate failure to receive slot plan
-
70
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Lazy Evaluation
Delay work until result is neededzMinimal or zero loss of accuracyzAvoid work at regular intervalszAvoid work results of which will never be used&Increases simulation speed
-
71
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Lazy Evaluation Example
Routing table agingzRouting table or LS database entries are aged over timez Each element expiry need not be an interrupt z Possible lazy approaches to clean expired entries Maintain variable with earliest expiry time in a database and purge expired
element(s) on a subsequent operation on the databasez Search on every database operation for earliest expiry element
Scan database periodically ' May not control memory usage
zUsed by OLSR
-
72
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 4:Operating Protocols Efficiently
Take an IP network and increase its simulation speed and reduce memory using some of the model efficiency techniqueszNo code changes this timez Few changes affect network fidelityzUnderstand the trade-offs
-
73
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
LAB 4 Summary:Operating Protocols Efficiently
Increased Simulation efficiency using three efficiency methodsEliminated OSPF control traffic after 260 seconds
z 170% Improvement in speedEliminated routing table computations using pre-computed data
z 270 % Improvement in speed
Eliminated overhead in node modelsz 21% Improvement in speedz 28% Reduction in memory usage
Reduced overhead with pre-computed routingz 300% Improvement in speed
-
74
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Documentation References
OPNET Modeler Online DocumentationzModeling Concepts Reference Manual Communication Mechanisms
z Programmers Reference Manuals Kernel Procedures API Reference Manual Data Structures and Algorithms API Reference Manual
z External Interfaces Reference Manual Simulation Execution
z OPNET Simulation Debugger (ODB)OPNET Support Center (http://www.opnet.com/support)zMethodologies and Case Studies Optimizing Performance of Discrete Event Simulations
Big O Notation (http://en.wikipedia.org/wiki/Big_O_notation)
-
75
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Related OPNETWORK Sessions
1501 Introduction to Process Modeling Methodology1502 Debugging Simulation ModelsIntroduction1530 Modeling Custom Wireless EffectsIntroduction1580 Modeling Custom Wireless EffectsAdvanced
1376 Introduction to Importing and Modeling Network Traffic
-
76
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Take-Away Points
Efficient environmentEfficient simulation kernelEfficient compilation
Efficient model representation
Efficient configuration of protocols
Efficient codezData structureszAlgorithmsz Efficient kernel procedure usezModel design and abstraction
Easy
Difficult
-
77
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Take-Away Points
Top 5 model efficiency techniqueszReduce/eliminate control traffic for stable networkszUse pre-computed datazRemove extraneous overheadsz Lazy evaluate periodic activitieszUse global stateRedesign models based on efficient algorithmsz Target code to desired analysis
-
78
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Appendix:Big O Notation (intro from Wikipedia)
Also known as Landau notation, Bachmann-Landau notation and asymptotic notation. Describes the limiting behavior of a function when the argument tends towards infinity,
usually in terms of simpler functions. Allows simplification of functions in order to concentrate on their growth rates: different functions with the same growth rate may be represented using the same O notation. Used in the analysis of algorithms to describe an algorithms usage of computational
resources: the worst case or average case running time or memory usage of an algorithm is often expressed as a function of the length of its input using big O notation. This allows algorithm designers to predict the behavior of their algorithms and to determine which of multiple algorithms to use, in a way that is independent of computer architecture or speed. Because Big O notation discards multiplicative constants on the running time, and ignores
efficiency for low input sizes, it does not always reveal the fastest algorithm in practice or for practically-sized data sets. But the approach is still very effective for comparing the scalability of various algorithms as input sizes become large. A description of a function in terms of big O notation usually only provides an upper
bound on the growth rate of the function. Associated with big O notation are several related notations, using the symbols o, , ,
and , to describe other kinds of bounds on asymptotic growth rates.
-
79
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Appendix:Standard Models for Different Kernels
Kernel combinations
Different object files produced for different kernel typesz bgp.dev32.i0.pr.obj or bgp.opt64.s1.pr.oz ... . kernel_type: one from kernel combinations (dev32, opt64 ) arch_type: machine architecture (i0: Windows; i1: Linux) file_type: process model (pr), pipeline stage (ps) file_extn: object file, c file
Repositories shipped with model library for sequential kernel z {Development, Optimized} kernel on {32-bit, 64-bit} for {Windows, Linux}z All repositories are named stdmod and placed in /models/std/basez Reduces simulation loading timez Does not include code of your custom models
SequentialParallel
32 bit address
64 bit addressDevelopment
Optimized
-
80
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Appendix:Recommended comp_flags_optim Settings
Windowsz MS Visual C++ 6.0 Professional (comp_prog: comp_msvc) /G6 /Ox /Ob2
z MS Visual C++ .NET/2005,2008 Professional (comp_prog: comp_msvc) /G7 /Ox /Ob2
z Target CPU Optimizations: /G{1,2,3,4,5,6,7}
Linuxz GCC (comp_prog: comp_gcc) -O2
MS referencez http://msdn.microsoft.com/en-us/library/fwkeyyhe.aspx
-
81
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Appendix: SMART MAC Capabilities
Contention based mediumz Packet transmissions undergo backoff due to
contention from shared mediumz Resultant MAC throughput Obtained by contention table lookup Number of contenders computed by
SMART MAC for every packet Table values can be collected from
empirical/theoretical/simulation sources
Mobility Nodes can be mobile and hence number of
contenders can change Re-compute number of reachable nodes based
on transmission range
Hidden Node Collision Detection Interference from nodes outside transmission
range
-
82
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Appendix: SMART MAC Mobile Network Test
Topology: random Mobility: All nodes converge to the same point Number of nodes: 100 Simulation duration: 90 minutes Validation measures:
z Application Throughput Performance measure:
z Elapsed timez Real time ratio
-
83
1550 Accelerating Simulations Using Efficient Modeling Techniques
CONFIDENTIAL RESTRICTED ACCESS: This information may not be disclosed, copied, or transmitted in any format without the prior written consent of OPNET Technologies, Inc. 2010 OPNET Technologies, Inc.
Appendix: SMART MAC Mobile Network Test Performance Gain
SMART MAC simulation speed compared to WLAN z 100% faster
SMART MAC simulation speed compared to real time z 100% faster than real time