One Way Message Latency (round trip latency / 2)

Download Report

Transcript One Way Message Latency (round trip latency / 2)

Parallel and Distributed Simulation
FDK Software
Outline
• FDK Overview
• RTI-Kit Software
– BRTI and DRTI
– Group Communication: MCAST
– Time Management: TM-Kit
Federated Simulations Development Kit (FDK)
Remote
User
Jane GUI
Jan e Cli en t
I n te rn e t
S i mu l ati on
Compute
Server
F ed e ar t e
F ed e ar t e
Jane S er v er
F ed e ar t e
R TI ( R TI- K i t)
• RTI-Kit: software for experimental research in RTIs
• Jane: interactive simulation monitoring and control
F ed e ar t e
RTI-Kit
• collection of libraries; enhance existing RTIs / develop new ones
• each library can be used separately, or with other RTI-Kit libraries
• implemented over multiple platforms: compute clusters (Myrinet), shared
memory multiprocessors (SGI), IP networks
• current libraries
– MCAST: group communication software
• distributed group management, name server functions
• current implementation built over unicast
• application-defined buffer allocation to minimize data copying
– TM-Kit: algorithms for implementing time management
• fast distributed snapshot algorithm
• scalable (O(log N) time for global reduction operations
– buffer management, priority queues, random number libraries
• RTIs using RTI-Kit
– UK-RTI (DERA)
– B-RTI, D-RTI
RTI-Kit Software
federates
RTI
Interface
(use one)
RTI-Kit
libraries
B-RTI:
Simple interface
MCAST
(group
communication)
D-RTI:
HLA interface
TM-Kit
(time management
algorithms)
DDM-Kit*
(data distribution
software)
other libraries: buffer management priority queues, etc.
FM-Lib
Comm Libraries
(use one)
Myrinet
Shared memory
Physical network
* not included in current release
IP protocols
RTIs
• BRTI
– Simple example RTI
– Does not attempt to conform to HLA IF/Spec
• DRTI
– Similar functionality to BRTI, services conform to
v. 1.3 HLA IF/Spec
– Limit set of services (federation management,
declaration management, object management,
time management)
MCAST
MCAST: group communication software
• distributed group management, name server
functions
• current implementation built over unicast
• cache group membership information
• application-defined buffer allocation eliminates data
copying within MCAST
MCAST API
Group Management
•
•
•
•
MCAST_Create: create group
MCAST_GetHandle: obtain handle for group from name server
MCAST_Subscribe: join group
MCAST_Unsubscribe: leave group
Sending / Receiving Messages
• MCAST_Send: send message
• WhereProc: callback invoked for each incoming message (typically
to allocate memory for incoming message)
• MessageHandler: callback invoked for each subscriber for each
incoming message
• EndProc: optional callback invoked after all message handlers have
been called
One Way Message Latency
(round trip latency / 2)
Update Attribute Value Latency Benchmark
Federate to federate latency using RTI-Kit sending N byte payload
Myrinet and Shared Memory similar performance
Mryinet and Shared Memory about 4 to 9 times faster than TCP/IP
TM-Kit
• Compute each processor’s Lower Bound on
Time Stamp (LBTS) of future messages that
could later arrive
• LBTS computation
– Based on distributed snapshot algorithm
• Similar to Mattern’s GVT algorithm
– Butterfly network for reduction computation
and distribution of results
– Wait until all transient messages received
before reporting final LBTS value
HLA Time Management
• deliver messages to federate in time stamp order
• ensure federate does not receive an event in its past
network
...
TSO queue RTI
i
13
11
LBTS=10
8
...
Federatei
LBTSi: lower bound on time stamp of messages that could
later arrive for federate i
• TSO messages w/ TS ≤ LBTSi eligible for delivery
• RTI ensures logical time of federate i never exceeds LBTSi
TM-Kit Implementation
• any processor can start an LBTS computation at any time
• callbacks to RTI software used to
– Indicate another processor has started an LBTS computation
– LBTS computation has completed
• simultaneous initiations by more than one processor
automatically combined
• multiple pending LBTS computations allowed: a processor
can initiate a new computation even if previously initiated
one(s) pending
• allows variety of methods to initiate LBTS computations
– each processor starts a new computation “as needed” (done here)
– central controller can responsible for starting LBTS computations
TM-Kit API
• TM_StartLBTS: initiate an LBTS computation
• StartHandler: callback invoked when LBTS computation
initated by another processor is detected
• DoneHandler: callback invoked when LBTS computation
completed
• Transient Messages
– TM_PutTag: called prior to sending message to write tag (color)
into message
– TM_Out: called after message (event) is sent
– TM_In: called when message (event) is received