trace-driven co-simulation of high- performance computing ... · pdf filetrace-driven...

28
IBM Research GmbH, Zurich, Switzerland 2nd International Workshop on OMNeT++, March 6, 2009 © 2009 IBM Corporation Trace-driven co-simulation of high- performance computing systems using OMNeT++ Cyriel Minkenberg, Germán Rodríguez Herrera IBM Research GmbH, Zurich, Switzerland

Upload: ngotram

Post on 13-Mar-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

IBM Research GmbH, Zurich, Switzerland

2nd International Workshop on OMNeT++, March 6, 2009 © 2009 IBM Corporation

Trace-driven co-simulation of high- performance computing systems using

OMNeT++

Cyriel Minkenberg, Germán

Rodríguez

HerreraIBM Research GmbH, Zurich, Switzerland

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Overview

ContextMareNostrum MareIncognitoDesign of interconnection networks for massively parallel computers

Models & toolsComputation DimemasCommunication VenusVisualization Paraver

Integrated tool chainVenus architectureCo-simulation with DimemasParaver tracingAccuracy: topologies, routing, mapping, Myrinet/IBA/Ethernet models

Sample results

Conclusions & future work

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Background: MareNostrum

Blade-based parallel computer at Barcelona Supercomputing Center (BSC)2,560 nodes 10,240 IBM PowerPC 970MP processors at 2.3 GHz (2,560 JS21 blades) Peak performance of 94.21 Teraflops20 TB of main memory 280 + 90 TB of disk storage Interconnection networks

Myrinet and Gigabit EthernetLinux: SuSe Distribution44 racks, 120 m2 floor space

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

MareIncognito

Joint project between BSC and IBM to developed a follow-on for MareNostrum, codenamed MareIncognito

10+ PFLOP/s machine for 2011 timeframe comprising in the order of 10 - 20K 1+ TFLOP blades

Our focus: Design a performance- and cost-optimized interconnection network for such a system

Gain deeper understanding of HPC traffic patterns and the impact of the interconnect on overall system performance

Use this understanding to optimize the design of the MareIncognitointerconnect

Reduce cost & power without sacrificing much performance–

Topology, bisectional bandwidth, routing, contention (internal &

external), task placement, collectives, adapter & switch implementation

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Interconnect design

Ever-increasing levels of parallelism and distribution are causing shift from processor-centric to interconnect-centric computer architecture

Interconnect represents a significant fraction of overall system cost Switches, cables

Maintenance

We need tools to predict system performance with reasonable accuracyAbsolute performance

Parameter sensitivity; trend prediction (“what if?”)

Accurate model of application behavior (compute nodes)

Accurate model of communication behavior (interconnect)

Many tools do either of these things well; very few manage both simultaneously with sufficient accuracy

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Compute node model

From the network perspective, compute node acts as traffic source and sink

In communication network design (telco, internet) typical approaches are“Synthetic” models based on some kind of stochastic processes

may (or may not) be reasonable if a sufficient level of statistical multiplexing is present

relation to reality unclear at bestReplaying traces recorded on, e.g., some provider’s backboneIn either case, semantics of traffic content are rarely considered: no causal dependencies between communications

Traffic in HPC systems has strong causal dependenciesThese stem from control and data dependencies inherent in a given parallel programThese dependencies can be captured by running a program on a given machine and recording them in a trace fileIf the program has been written using the Message Passing Interface (MPI) library, this basically amounts to a per-process list of send/recv/wait callsSuch a trace can be replayed observing the MPI call semantics to correctly reproduce communication dependencies

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Compute node model: DimemasDimemas (BSC simulator)

Rapidly simulates MPI traces collected from real machines

Faithfully models MPI semantics & node architecture

Sensitivity: helps identify coarse-grain factors and relevant communication phases

Leverages CEPBA Tools trace generation, handling and visualization

Models interconnection network at a very high abstraction level

Paraver (BSC visualization)Visualizes MPI communication patterns at the node level

Allows “debugging” of inter-process communication, e.g., load imbalance, contention

Paraver

Paravernode trace

Dimemas

(client)

MPI trace

config

file(#buses, bandwidth,

latency, eager threshold, …)

MPIapplication

run

interface

statistics

MPI replay

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Interconnect model: Venus

Simulates interconnect at flit levelEvent-driven simulator using OMNeT++ (originally based on MARS simulator)Supports wormhole routing and segmentation for long messages

Provides various detailed switch and adapter implementations

Myrinet, 10G Ethernet, InfiniBandGeneric input-, output-, and combined input-output-queued switches

Provides various topologies and routing methods

Extended Generalized Fat Tree (XGFT), Mesh, 2D/3D Torus, Hypercube, arbitrary Myrinettopologies

Supports various routing methodsSource routing, table lookupAlgorithmic (online), Myrinet routes files (offline)Static, dynamic

Highly configurableTopology, switch/adapter models, buffer sizes, link speed, flit size, segmentation, latencies, etc.

Supports MareNostrum/MareIncognitoServer mode to co-simulate with Dimemas via socket interface

Outputs paraver-compatible trace files enabling detailed observation of network behavior

Detailed models of Myrinet switch and adapter hardware

Translation tool to convert Myrinet map file to OMNeT++ ned topology description

Import facility to load Myrinet route files at simulation runtime; supports multiple routes per flow (adaptivity)

Flexible task to node mapping mechanism

Tool to generate Myrinet map and routes files for arbitrary XGFTs

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Tool Enhancement & Integration

Goal: Understand application usage of physical communication resources

and facilitate optimal communication subsystem design

Paravervisualization,

analysis,validation

Paravernetwork trace

routesmapping topology

config

file(adapter & switch arch.,

bandwidth, delay, segmentation, buffer size, …)

map2ned

.routes file

.map file

routereader

statisticsParavernode trace

config

file(#buses, bandwidth,

latency, eager threshold, …)

Venus

(server)

co-simulation(socket)

interface

Dimemas

(client)

interface

statistics

MPI replay

xgft

MPI trace

MPIapplication

run

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

system

Venus model structure

statistics controldimemas

in[] out[]

in[]

statIn[]statOut[]

out[]

from_control out

into_control

ctrlstatdim

systemstatIn[] statOut[]

prvIn

topLevel

Network[0]stat

In[H

*C]

stat

Out

[H*C

]

system

Network[N-1]

statIn[C]

statOut[C]Host[0]

dataIn[N]

dataOut[N]

statIn[C]

statOut[C]Host[h]

dataIn[N]

dataOut[N]

statIn[C]

statOut[C]Host[H-1]

dataIn[N]

dataOut[N]

dataIn[H]

dataOut[H]

dataIn[H]

dataOut[H]

Host

node[0]

stat

In[C

]st

atO

ut[C

]

node[C-1]

node[c]

data

Out

[C]

data

In[C

]

dataInIngr

adapter[0]dataOutEgr

dataOutIngr

dataInEgr

adap

Out

[A]

adap

In[A

]

node

Out

[C]

node

In[C

]dataInIngr

adapter[a]dataOutEgr

dataOutIngr

dataInEgr

dataInIngr

adapter[A-1]dataOutEgr

dataOutIngr

dataInEgr

in out

in out

in out

router

host

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Hybrid Dimemas

& Venus simulation

statistics controldimemas

in[] out[]

in[]

statIn[]statOut[]

out[]

from_control out

into_control

ctrlstatdim

systemstatIn[] statOut[]

prvIn

topLevel

Dimemasinterface

Based on PDES “Null message protocol” algorithm

Not really parallel: simulators take turns simulating (blocking)

“Earliest input time” set to “0”while any messages in flight

“Earliest output time” set to timestamp of next event

Client/Server modelVenus acts as a server simulating the network

Dimemas acts as a client simulating the application

Each provides minimal set of commands to the other

Venus

(server)

co-simulation(socket)

interface

Dimemas

(client)

interface

Dimemas commandsSEND timestamp source destination size “extra strings”STOP timestampENDFINISHPROTO (OK_TO_SEND, READY_TO_RECV)

Venus responsesSTOP REACHED timestampCOMPLETED SEND [echo of the original data + extra data]

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

D&V Co-simulation: SEND exampleDimemas

VenusClient

Event Queue[1us][10us][20us]

process_event()•Event at t = 1 us is a SEND•Issue “SEND”

commandBlocked in

receive_commands()

“SEND 1us 0 10 32675 0x001 0x002”source

destinationsize any string to

be sent back

pop_event()•Messages in flight > 0•Next Event at time (t == 10us) > 1us•Issue “STOP t”

command•Issue “END”

command

Blocked inpop_event()

“STOP 10us”

“END”

END received (unblock)Process “SEND” command•Send message at t = 1 us•Schedule “STOP”

at t = 10 us•Continue simulation

Event: Message received at t = 2 us•Send Response to Dimemas

•Updating the timestamp•Cancel scheduled “STOP”

“COMPLETED SEND 2us 0 10 32675 0x001 0x002”

VenusServerMod

Event Queue[1us][2us][10us]

Inside pop_event()•“END”

received (unblock)•Add “receive”

event into the queue at time 2 us Blocked in

receive_commands()

“END”

Process Next Event

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Network[0]stat

In[H

*C]

stat

Out

[H*C

]

system

Network[N-1]

statIn[C]

statOut[C]Host[0]

dataIn[N]

dataOut[N]

statIn[C]

statOut[C]Host[h]

dataIn[N]

dataOut[N]

statIn[C]

statOut[C]Host[H-1]

dataIn[N]

dataOut[N]

dataIn[H]

dataOut[H]

dataIn[H]

dataOut[H]

Network topologies

Fat tree (k-ary n-tree)

Extended Generalized Fat Tree (XGFT)

Mesh

Torus

Hypercube

Arbitrary (possibly irregular) topologies using Myrinet map files

network

S3,k^2-1. . .S3,0 S3,k-1 S3,k

S2,0 S2,k-1 S2,k S2,2k-1 … … S2,(k-1)k S2,k^2-1

.. .. .. ..

S1,0 S1,k-1 S1,k S1,2k-1 … … S1,(k-1)k S1,k^2-1

.. .. .. ..… … … … … … … …

… … … … … … … …… … … … … … … …

… …

Ak^3

. . . . . . . . . . . A1

S3,2k-1.. .. S3,(k-1)k… … ....

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Insights gained at multiple levelsApplication & MPI library level

Blocking vs. nonblocking calls

MPI protocol levelEager vs. rendez-vous

Topology & routingStatic source based routingContention and pattern aware routingsSlimmed networksExternal vs. internal contention

HardwareHead-of-line blockingSwitch arbitration policySegmentationDeadlockAutomatic communication-computation overlap

Putting it all together: Validation with real traces in a real machine

Identifying the sources of network performance lossesCollectives variability

Switch & adaptertechnology

Networktopology & routing

Protocol/Middleware

Software: Application& MPI library

Inte

rcon

nect

laye

rs

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

At the protocol levelEager/Rendez-vous

Rendez-vous protocol needs control messages

Impact is relatively small if the control messages never wait after a data segment to get sent

If control messages are sent after a long segment, the sender will be delayed

Smaller segmentsOut of Band protocol messages

The delay propagates to the other threads

Segment size trade-off?16KB as in Myrinet for long messages is too long to interleave urgent control messages

Eager: ~4.3 ms

Waiting for protocol messages

Alltoall example(no internal contention)

No imbalance,control messagesare always sentbefore data segments

Rdvz: ~4.8 ms

Very small imbalance<10us, time: ~6.3 ms

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

WRF, 256 nodes

0

200

400

600

800

1000

1200

12345678910111213141516

Number of top-level switches

Exec

utio

n tim

e re

lativ

e to

fat t

ree

[%]

Dimemasnumber of input links = 256

number of output links = 256

latency = 8 us

cpu_ratio = 1.0eager threshold = 32768 bytes

Venuslink speed = 2 Gb/s, flit size = 8 B (duration = 32 ns)

Myrinet switch and adapter models

Myrinet segmentation

adapter buffer size = 1024 KB

switch buffer size per port = 8 KB

WRF, 256 nodes

-20.0

0.0

20.0

40.0

60.0

80.0

100.0

12345678910111213141516

Number of top-level switches

Rela

tive

incr

ease

in e

xecu

tion

time

[%]

Performance of WRF on two-level slimmed treeWRF, 256 nodes

0

0.0002

0.0004

0.0006

0.0008

0.001

0.0012

0.0014

12345678910111213141516

Number of top-level sw itches

Exec

utio

n tim

e [s

]

output-queued switchinput-queued switch (Myrinet)

1,1 1,2 1,N1 N/2 1 N/2 1 N/2

2,1 2,2 2,M

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Conclusions & future work

ConclusionsCreated OMNeT-based interconnection network simulator that faithfully models real networks in terms of topology, routing, flow control, switch- and adapter architecture

Integrated network simulator with trace-based MPI simulator to capture reactive traffic behavior, thus obtaining high accuracy in simulating the interactions between computation and communication

Enabled entirely new insights into the effect of the interconnection network on overall system performance under realistic traffic patterns

Future workAllow multiple simulators to connect to Venus simultaneously

Modify MPI library to directly redirect communications to Venus

Make Venus itself run in parallel

Extended Venus to produce power estimates

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

B L O C K I N G

D&V co-simulation: The clientVenus

(server)

co-simulation(socket)

ServerMod

Dimemas

VenusClient

/* DIMEMAS CODE */

int main() {

//DIMEMAS CODE

vc_initialize();

// EVENT MANAGER

While (events() || venus_pending_events ()) {

pop_event ();

// DIMEMAS CODE

SEND: (…)

vc_send(…)

RDVZ_RECV: (…)

vc_ready_recv(…)

RDVZ_SEND: (…)

vc_ready_send(…)

}

vc_finish()

// DIMEMAS CODE

}

Open socket to VenusCreate event queue for pending events Modified conditions to stop the

simulation –

now the “normal”

queue can be empty, because some relevant events are pending to be finished by Venus

Check if Venus communicated something

Block if necessary (check the number of messages in flight)Extract event for “events”

queue: Reception of messages in Venus is handled here

Close the socket

Extract the relevant event from the “events”

queue, and put them into the “pending_events”

queue

Send the commands to Venus through the socket

Increase the number of messages “in_flight”; this will cause pop_event() to relinquish control to Venus if necessary

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

B L O C K I N GB L O C K I N G

D&V co-simulation: The serverServerMod is interposed between the statistics module and the network.Acts as a Generator and Sink of “User Messages”

Venus

(server)

co-simulation(socket)

ServerMod

Dimemas

VenusClient

/* SERVERMOD CODE */

int initialize() {

}

int receive_commands() {

while (command = read_from_socket())

execute (command);

}

int handleMessage() {

STOP:

waitForCommands = true;

send_through_socket(STOP REACHED);

USER_MESSAGE:

waitForCommands = callback(UserMessage);

// [ . . . ]

if (waitForCommands)

receive_commands();

}

Bind/listen/accept (server socket)Insert into the network “User Messages”

as instructed by Dimemas

or schedule “STOP”s

to relinquish control back to Dimemas

Commands are read until an “END”

command is found; then Venus simulation continues

If a STOP is reached, tell Dimemas

and block (in receive_commands()) until Dimemas

schedules a next safe “Earliest Output Time”

(STOP)

When ServerMod

sees a “User Message”

it executes the associated callback:

If it is a protocol message, new messages are injected into the networkIf it is a Data message that completed, inform Dimemas, cancel the scheduled STOP, and block (receive_commands);

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Extended Generalized Fat Trees

XGFT ( h ; m1, … , mh; w1, … , wh )h = height

number of levels-1

levels are numbered 0 through h

level 0 : compute nodes

levels 1 … h : switch nodesmi = number of children per node at level i, 0 < i ≤ hwi = number of parents per node at level i-1, 0 < i ≤ h

number of level 0 nodes = Πi mi

number of level h nodes = Πi wi

XGFT ( 3 ; 3, 2, 2 ; 2, 2 ,3 )

0,0,0 1,0,0 2,0,0 0,1,0 1,1,0 2,1,0 0,0,1 1,0,1 2,0,1 0,1,1 1,1,1 2,1,1

0,0,0 1,0,0 0,1,0 1,1,0 0,0,1 1,0,1 0,1,1 1,1,1

0,0,0 0,1,0 1,0,0 1,1,0 0,0,1 0,1,1 1,0,1 1,1,1

0,0,0 0,0,1 0,0,2 0,1,0 0,1,1 0,1,2 1,0,0 1,0,1 1,0,2 1,1,0 1,1,1 1,1,2

0

1

21

1

0

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Performance of 256-node WRF on various topologies –

cpu ratio 1.0

0

0.0002

0.0004

0.0006

0.0008

0.001

0.0012

0.0014

Hyperc

ube(8

,9)

Torus(1

6,16,1

,7)

Torus(1

6,8,2,7)

Torus(1

6,4,4,7)

Hyperc

ube(0

,256)

MareNos

trum(256

)

FatTree(2

,32)

SlimTree

(2,32

,16)

Hyperc

ube(7

,9)

SlimTree

(2,32

,15)

SlimTree

(2,32

,13)

SlimTree

(2,32

,14)

SlimTree

(2,32

,12)

SlimTree

(2,32

,11)

SlimTree

(2,32

,9)

SlimTree

(2,32

,8)

SlimTree

(2,32

,10)

Torus(4

,4,4,1

0)

Hyperc

ube(6

,10)

Torus(8

,8,4,7

)

Torus8

,4,4,8()

SlimTree

(2,32

,7)

SlimTree

(2,32

,6)

SlimTree

(2,32

,5)

SlimTree

(2,32

,4)

Torus(4

,4,2,1

4)

Hyperc

ube(5

,13)

Hyperc

ube(1

,129)

SlimTree

(2,32

,3)

SlimTree

(2,32

,2)

Hyperc

ube(4

,20)

Hyperc

ube(3

,35)

Hyperc

ube(2

,66)

SlimTree

(2,32

,1)

Topology

Exec

utio

n tim

e [s

]

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Impact of scheduling policy

L2 s

witc

hes

The scheduling policy is the determining factor (infinite CPU, IQ switch)

Round-robin pointers are initialized randomly

When contention occurs (on output 15), the “wrong” selection (which depends on the position of the pointer) results in HOL blocking; the scheduler should first serve the input on which another message will arrive

Unfortunately, it has no crystal ball…

Switch & adapter technology

Network topology & routing

Protocol/Middleware

Software: Application & MPI library

(c) Pointers initialized to N-1(b) Pointers initialized to 0

(a) Pointers initialized randomly

L2 s

witc

hes

HOL blocking detected

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Backup

S3,k^2-1

. . .S3,0 S3,k-1 S3,k

S2,0 S2,k-1 S2,k S2,2k-1 … … S2,(k-1)k S2,k^2-1

.. .. .. ..

S1,0 S1,k-1 S1,k S1,2k-1 … … S1,(k-1)k S1,k^2-1

.. .. .. ..… … … … … … … …

… … … … … … … …… … … … … … … …

… …

Ak^3

. . . . . . . . . . . A1

S3,2k-1

.. .. S3,(k-1)k… … ....

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Multi-rail system

Network[0]stat

In[H

*C]

stat

Out

[H*C

]

system

Network[N-1]

statIn[C]

statOut[C]Host[0]

dataIn[N]

dataOut[N]

statIn[C]

statOut[C]Host[h]

dataIn[N]

dataOut[N]

statIn[C]

statOut[C]Host[H-1]

dataIn[N]

dataOut[N]

dataIn[H]

dataOut[H]

dataIn[H]

dataOut[H]

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

MultiHost

moduleHost

node[0]

stat

In[C

]st

atO

ut[C

]

node[C-1]

node[c]

data

Out

[C]

data

In[C

]

dataInIngr

adapter[0]dataOutEgr

dataOutIngr

dataInEgr

adap

Out

[A]

adap

In[A

]

node

Out

[C]

node

In[C

]

dataInIngr

adapter[a]dataOutEgr

dataOutIngr

dataInEgr

dataInIngr

adapter[A-1]dataOutEgr

dataOutIngr

dataInEgr

in out

in out

in out

router

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

D&V Co-simulation: Protocol (hints)Human-readable ASCII textSent through standard Unix SocketsFew Commands and ResponsesExtensible

Venus

(server)

co-simulation(socket)

ServerMod

Dimemas

VenusClient

CommandsSEND timestamp source destination size “extra strings”

The “extra strings”

enconde

the events that Dimemas

wil

update upon reception of the message.

STOP timestampENDFINISHPROTO (OK_TO_SEND,READY_TO_RECV)

(parameters as for SEND)

Responses:STOP REACHED timestampCOMPLETED SEND [echo of the original data + extra data]

Trace-driven Co-simulation of High-Performance Computing Systems using OMNeT++

2nd International Workshop on OMNeT++, March 6, 2009, Rome, Italy © 2009 IBM Corporation

Impact of switch architecture

completion time = 135 µs

completion time = 87 µscompletion time = 63 µs

Infinite CPU speed, output-queued switch Infinite CPU speed, input-queued switch

Normal CPU speed, output-queued switch

completion time = 157 µs

Normal CPU speed, input-queued switch

Ideal case, traffic pattern completes in about two times the message duration (54 µs) plus startup latency

One node (task 95) starts sending 26 µs later than all other tasks, adding 26 µs to the communication time

Three messages experience additional delay due to HOL blocking. Why?