140 likes | 268 Views
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). RTI-Kit: software for experimental research in RTIs
E N D
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) • RTI-Kit: software for experimental research in RTIs • Jane: interactive simulation monitoring and control Jane GUI Remote User Compute Server
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) B-RTI: Simple interface D-RTI: HLA interface MCAST (group communication) TM-Kit (time management algorithms) DDM-Kit* (data distribution software) RTI-Kit libraries other libraries: buffer management priority queues, etc. FM-Lib Comm Libraries (use one) Myrinet Shared memory IP protocols Physical network * not included in current release
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
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
network TSO queue RTIi . . . . . . 13 11 LBTS=10 8 Federatei HLA Time Management • deliver messages to federate in time stamp order • ensure federate does not receive an event in its past 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