Upload
theodora-west
View
214
Download
2
Embed Size (px)
Citation preview
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES
Parallel NSS DesignMotion and SensorsParallel NSS DesignMotion and Sensors
Jeff Steinman & Jim Kilgore
Metron Incorporated
July 30, 1998
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES TopicsTopics
• Parallel NSS Project Background
• SPEEDES Status
• Demo Scenario Description
• Parallel NSS Software Design
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Historical Time-LineHistorical Time-Line
NRLNRL JNTFJNTF
MetronMetron
SPEEDESSPEEDES
Time WarpTime Warp
PADSPADS
BreathingBreathingTimeTime
BucketsBuckets
InteractiveInteractiveSupportSupport
AirAirDefenseDefense
BMDOBMDOJNTFJNTF
Lazy CancellationLazy Cancellationwith Toleranceswith Tolerances
&&IncrementalIncrementalState SavingState Saving
JPLJPLJNTFJNTFLANLLANLNRLNRLDemoDemo
EventEventHorizonHorizon(PADS)(PADS)
BreathingBreathingTimeTimeWarpWarp
ProximityProximityDetectionDetection
(Best Paper PADS)(Best Paper PADS)
GVTGVTWithWithFlowFlow
ControlControl
NSSNSSHLA-IntegrationHLA-Integration
FrameworkFramework
ParallelParallelIMPORTIMPORT
WargameWargame20002000
& TISA& TISA
ProcessProcessModelModelMacrosMacros
SPEEDESSPEEDESVersion 0.4Version 0.4
AerospaceAerospace MITREMITRE NorthropNorthropAEgis ResearchAEgis Research
DartmouthDartmouthMCNCMCNC
LANLLANL
OriginalSimOriginalSim
SISSIS
NRaDNRaD
MetronMetronDistributionDistribution
HPCMO-CHSSIHPCMO-CHSSIParallel NSSParallel NSS
ObjectObjectProxiesProxies JSIMSJSIMS
19901990 19911991 19921992 19931993 19941994 19951995 19961996 19971997 19981998
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Parallel NSS DevelopmentParallel NSS Development
• Phase 1 (May 1996 - December 1997)– Develop infrastructure on top of SPEEDES needed to parallelize NSS
• Object Proxies (distributed objects technology)– Library of motion types with coordinate system transformations
• Data Distribution Management (scalability)
• Configuration management of SPEEDES software
• Delivery mechanism (Multiplatform build system)
– Adopted by mainstream DoD simulation projects• Wargame 2000, JSIMS, etc…
– Formation of configuration management group to coordinate future enhancements
• Design targeted to support HLA (automatic integration and/or SPEEDES-based RTI)
• Phase 2 (January 1997 - December 1998)– Porting/developing models for Parallel NSS (alpha testing)
– MPI version of the SPEEDES Communications Library
• Phase 3 (January 1998 - September 1999)– Refining models for Parallel NSS (beta testing)
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Portability IssuesPortability Issues
• Standardized communications library interface– Encapsulates optimizations for different hardware architectures
– High-speed shared memory support uses standard UNIX system calls and is seamlessly integrated with network communications between machines
– Message Passing Interface (MPI) communications library supports massively parallel distributed memory machines
– Other protocols can be supported (ATM, Myranet, RMP, etc.)
– Automatic & efficient data marshaling between heterogeneous machines
• Supported machines, operating systems, & compilers– Machines
• PC, Workstations, Origin 2000, Convex Exemplar, Paragon, Cray J90, Cray T3E, etc...
– Operating Systems• Linux, Windows NT, IRIX, Solaris, HPUX, etc...
– C++ Compilers (note, can also integrate with ADA and FORTRAN)• Apex, Native compilers, Centerline, gcc, Visual Age C++, etc...
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Architecture Functional Components
Architecture Functional Components
SPEEDESCommunications
Library
SPEEDESCommunications
Library
Host User CommunicationsInterface for External Modules
Host User CommunicationsInterface for External Modules
SPEEDES Event-Processing Engine(Event List Management, State-Saving, Rollbacks, Message Handling)
SPEEDES Event-Processing Engine(Event List Management, State-Saving, Rollbacks, Message Handling)
SequentialTime
Management
SequentialTime
Management
FixedTime
Buckets
FixedTime
Buckets
BreathingTime
Buckets
BreathingTime
Buckets
TimeWarp
TimeWarp
BreathingTimeWarp
BreathingTimeWarp
Extended Interfaces & HLA Management Services(Controllers, Event Handlers, Hierarchical Grids, Object Proxies, Precomputations, Dynamic Attributes)
Extended Interfaces & HLA Management Services(Controllers, Event Handlers, Hierarchical Grids, Object Proxies, Precomputations, Dynamic Attributes)
HLA Run-Time InfrastructureExternal Interfaces
HLA Run-Time InfrastructureExternal Interfaces
NSS andWargame 2000
NSS andWargame 2000
ParallelIMPORT
ParallelIMPORT
HLA-IntegrationFramework
HLA-IntegrationFrameworkHLA FederateHLA FederateFuture
Simulation
FutureSimulation
SequentialNSS
SequentialNSS
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES SPEEDES & HLASPEEDES & HLA
• SPEEDES Approach provides HLA-like services through middleware layer of services– Supports automatic integration with any RTI transparently
– Functionality inside dotted line (see figure below) can evolve into a fully-functional RTI (e.g., HLA version 1.3 interface)
• Support for HLA on high-performance computers
• Full support for time management DDM
• Novel concept: Federates outside of SPEEDES can interact with a SPEEDES-based simulation through HLA interfaces
SPEEDES Provides HLA-Like Services Internally SPEEDES Provides HLA-Like Services Internally
Services
SPEEDES Parallel Simulation EngineSPEEDES Parallel Simulation Engine
ApplicationApplication
Services
ApplicationApplication
Services
ApplicationApplication
Services
ApplicationApplication
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES SPEEDES Constructs Used In Parallel NSS
SPEEDES Constructs Used In Parallel NSS
• Object managers and simulation objects– Represent state of simulated entities (distributed to processing nodes)
• Events– Time-tagged computations that can change the state of a simulation object
and/or schedule new events for the future• Can be methods on simulation objects or event objects
• Object Proxies– Represent objects on remote machines
• Represents public interface to entities on remote nodes
• Supports external systems through the Object Proxy State Manager
• Key to providing HLA and DIS integration
• Library of dynamic attributes (i.e., time-based equations) such as motion
• Components & Event Handlers– Encapsulates models and their controlling mechanisms
– Interrupt driven style
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES SPEEDES Constructs Used In Parallel NSS
SPEEDES Constructs Used In Parallel NSS
• Parallel IMPORT Process Model Constructs– ScheduleProcess(…) interface for starting up a process
– A process is a re-entrant event• WAIT - passes fixed amount of time
• WAIT_FOR ...- waits for a semaphore to be set (can time out)– Logical Semaphore
– Integer Semaphore
– Float Semaphore
– Counter Semaphore
• TELL - asynchronously starts up a process (looks like a method call)
• ASK - allows objects to communicate through method calls– Blocking style programming interface for returning arguments in method call
– Guaranteed no deadlocks (underlying mechanism is still discrete-event)
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES ScenarioScenario
• Four Ships moving along great circle trajectories using scripted motion between way-points– Described in Ship.par file
– Each ship has its own start time
– Velocity between way-points scripted• Ship_0: Honolulu, Tokyo, Singapore, Honolulu
• Ship_1: Honolulu, Singapore, Tokyo, Honolulu
• Ship_2: Norfolk, AtlWayPt1, Havana, AtlWayPt2, Norfolk
• Ship_3: Norfolk, AtlWayPt2, Havana, AtlWayPt1, Norfolk
– Each ship has 2-3 radar sensors (50 km, 100 km, 200 km ranges)
• 100 Randomly moving objects across the globe– Described in RanMot.par file
– 500 km range sensor
– Altitudes can change
– Mach-1 velocity
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES
SimObjSimObj
S_HLAS_HLA
S_ENTITYS_ENTITY
S_MOVING_ENTITYS_MOVING_ENTITY S_FIXED_ENTITYS_FIXED_ENTITY
S_ShipS_Ship S_RanMotS_RanMot
Inheritance for Simulated Entities
Inheritance for Simulated Entities
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES
S_HLA and Object Proxies
S_HLA and Object Proxies
S_HLAS_HLA
Object ProxyObject ProxyRemote Object ProxyRemote Object Proxy
ListList
Publication Class ListPublication Class List
Remote Object HandleRemote Object HandleDistribution ListDistribution List
*
PublishPublish
UnPublishUnPublish
SubscribeSubscribe
UnSubscribeUnSubscribe
AddAddSubscriberSubscriber
RemoveRemoveSubscriberSubscriber
DeliverDeliverProxyProxy
PointerPointer
UndeliverUndeliverProxyProxy
PointerPointerTouchTouchProxyProxy
ScheduleScheduleUpdateUpdate
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Object Proxy Input File (Objects.par)
Object Proxy Input File (Objects.par)
// This is the object proxy file for Parallel NSS
// base class for everybodyENTITY { define logical Alive define list SensorList}
// All moving entities inherit from thisMOVING_ENTITY { reference INHERIT ENTITY define float Vmax define dynamic_position Position}
// All fixed entities inherit from thisFIXED_ENTITY { reference INHERIT ENTITY define position Position}
Ship { reference INHERIT MOVING_ENTITY reference SUBSCRIBE ENTITY}
RanMot { reference INHERIT MOVING_ENTITY reference SUBSCRIBE ENTITY}
// Sensor List Elements go in the Entity// SensorListSENSOR_LIST_ELEMENT { define list DetectedObjects}
// Object Ids go in Sensor List ElementsOBJECT_ID { define int ObjectId define string ObjectName}
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES
Composition of EntitiesComposition of Entities
Motion ComponentMotion ComponentListList
Weapon ComponentWeapon ComponentListList
Sensor ComponentSensor ComponentListList
Platform ComponentPlatform ComponentListList
Track CorrelationTrack CorrelationComponent ListComponent List
Command & ControlCommand & ControlComponent ListComponent List
CommunicationsCommunicationsComponent ListComponent List
S_ENTITYS_ENTITY
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES
Radar ComponentRadar Component
COMPONENTCOMPONENT
Sensor ComponentSensor Component
Radar ComponentRadar Component
RadarRadarReflectReflect
AttributesAttributes
RadarRadarUpdateUpdate
AttributesAttributes
RadarRadarDiscoverDiscoverObjectObject
RadarRadarPrecomputationPrecomputation
ProcessProcess
RadarRadarScanScan
ProcessProcess
*
Detectable Proxy ListDetectable Proxy List
Remote ProxyRemote ProxyCounter SemaphoreCounter Semaphore
Radar ModelRadar Model
Sensor ModelSensor Model
Remote ProxyRemote ProxySemaphore ListSemaphore List
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Radar Precomputation Process
Radar Precomputation Process
• Precomputation determines when remote proxy enters and exits a radar’s field of view– One precomputation process per remote discovered object proxy for each
radar component• “Discover Object” event handler initiates the process (can provide filtering)
– Adds/removes the remote proxy to the radar’s Detectable Proxy List in logical time
• Uses maximum velocity to provide first level filtering
– Coordinates the sensor’s detectable proxy counter semaphore which is used by the radar scan process to go to sleep when there are no remote proxies within range
• Avoids polling by the radar scan process
– Is interrupted when motion changes• The entity’s own motion
• The remote entity’s motion
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Radar Scan ProcessRadar Scan Process
• Forms detections– Uses constant scan time for radar
– Goes to sleep when there are no detectable entities
– Passes truth into the Radar Model and receives statistically smeared detections
– Will pass detections to track fusion components to determine perceived targets (will use a two-stage Kalman Filter to track position)
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Parallel NSS Radar Sensor Model
Parallel NSS Radar Sensor Model
• Parameterized Radar Model– Maximum Range & Sigma Range
– Sigma Range Rate
– Sigma Angle
– Future enhancements• Line of sight calculation
• Use of radar equation for returned signal power
• Generation of false detections
• Ground clutter returns
• Forms Detections– Range with Gaussian error statistics
– Range Rate with Gaussian error statistics
– Directional Vector with symmetrical Gaussian angular error statistics
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES DetectionsDetections
• DETECTION base class– Generic detection types
• Supports multiple types of sensors & trackers
– Encapsulates truth data (Radar Scan Process)• Target and sensor positions and velocities
• Target Id
• Time of detection
– Generic reusability through virtual functions
• RADAR DETECTION– Encapsulates truth data (Radar Scan Process)
• Radar cross section
– Encapsulates perception data (RadarModel)• Range, Range
• Range rate, Range rate
• Directional vector from sensor to target, Angle
RADAR DETECTIONRADAR DETECTION
DETECTIONDETECTION
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES
COMPONENTCOMPONENT
Motion ComponentMotion Component
Scripted MotionScripted MotionComponentComponent
Scripted Motion Component
Scripted Motion Component
ChangeChangeScriptedScriptedMotionMotion
Dynamic PositionDynamic PositionAttributeAttribute
Constant MotionConstant Motion Great Circle MotionGreat Circle Motion
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES MotionMotion
• Dynamic position attribute (managed by Motion Component) is mapped into each entity’s Object Proxy– Motion described using time-bounded motion-type segments
• {ConstPosition(-∞,t0), GreatCircle(t0, t1), GreatCircle(t1,t2), …, ConstPosition(tn, ∞)}
• SPEEDES provides library of motion types with coordinate system transformations
– Constant positions “cap” end points of motion
– Great circle equations of motion• Constant velocity even when changing altitude
• Ships move between locations specified in Locations.par file
• Random Motion objects are used to test scalability for large numbers of objects
• Humans can change motion of any object during execution
– Dynamic position attribute is automatically delivered to remote objects when motion is changed
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Interactive CapabilitiesInteractive Capabilities
• Pause/resume– Can stop GVT from advancing
– Can set up initial pauses if needed
• Named queries– Entities can be queried for information while the simulation is executing
• Change Scripted Motion Command– Entities can be redirected to move to named locations
• Object Proxy State Manager– Sends the changes made to object proxies inside SPEEDES to the outside
world with logically correct time management
NASA TechnologyNASA TechnologyNASA TechnologyNASA Technology
SPEEDESSPEEDES Next StepsNext Steps
• Integration of other NSS models– Weapon systems, communications, command & control
• Parallel NSS will support other SPEEDES applications– Parallel NSS uses all of the SPEEDES constructs as they were designed to
be used• Parallel NSS software demonstrates interfaces
• Code walk-through for Wargame 2000 & JSIMS
• Graphical map interface– Will be based on the Object Proxy State Manager
– Can be done generically to support all DoD SPEEDES applications
– Would like to develop a complete analysis package for SPEEDES• Currently not funded, but all SPEEDES users will want this tool
• Parallel NSS currently achieving good speedup