Timewarp Rigid Body Simulation Brian Mirtich. Simulation Discontinuities “Events that change the dynamic states or the equations of motion of some subset.

Slides:



Advertisements
Similar presentations
Resource Management §A resource can be a logical, such as a shared file, or physical, such as a CPU (a node of the distributed system). One of the functions.
Advertisements

Parallel and Distributed Simulation Global Virtual Time - Part 2.
CS 484. Discrete Optimization Problems A discrete optimization problem can be expressed as (S, f) S is the set of all feasible solutions f is the cost.
Parallel and Distributed Simulation Time Warp: Basic Algorithm.
Parallel and Distributed Simulation Lookahead Deadlock Detection & Recovery.
Lookahead. Outline Null message algorithm: The Time Creep Problem Lookahead –What is it and why is it important? –Writing simulations to maximize lookahead.
Other Optimistic Mechanism, Memory Management. Outline Dynamic Memory Allocation Error Handling Event Retraction Lazy Cancellation Lazy Re-Evaluation.
Parallel and Distributed Simulation Time Warp: Other Mechanisms.
Tasks Periodic The period is the amount of time between each iteration of a regularly repeated task Time driven The task is automatically activated by.
Ceng Operating Systems Chapter 2.2 : Process Scheduling Process concept  Process scheduling Interprocess communication Deadlocks Threads.
Equilibrium Equilibrium refers to a condition in which an object is at rest originally at rest (static equilibrium) or has a constant velocity if originaly.
1 Complexity of Network Synchronization Raeda Naamnieh.
1 Threads CSCE 351: Operating System Kernels Witawas Srisa-an Chapter 4-5.
Parallel Simulation etc Roger Curry Presentation on Load Balancing.
1 The scanning process Goal: automate the process Idea: –Start with an RE –Build a DFA How? –We can build a non-deterministic finite automaton (Thompson's.
Self-Collision Detection and Prevention for Humonoid Robots Paper by James Kuffner et al. Presented by David Camarillo.
Self-Collision Detection and Prevention for Humonoid Robots Paper by James Kuffner et al. Jinwhan Kim.
03/09/2007CSCI 315 Operating Systems Design1 Memory Management Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Introduction to Operating Systems – Windows process and thread management In this lecture we will cover Threads and processes in Windows Thread priority.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
© Honglei Miao: Presentation in Ad-Hoc Network course (19) Minimal CDMA Recoding Strategies in Power-Controlled Ad-Hoc Wireless Networks Honglei.
3.5 Interprocess Communication
Kinetic Data Structures and their Application in Collision Detection Sean Curtis COMP 768 Oct. 16, 2007.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
1 Simulation Methodology H Plan: –Introduce basics of simulation modeling –Define terminology and methods used –Introduce simulation paradigms u Time-driven.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Time Warp OS1 Time Warp Operating System Presenter: Munehiro Fukuda.
Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
Parallel and Distributed Simulation FDK Software.
1 Process States (1) Possible process states –running –blocked –ready Transitions between states shown.
Hardware Supported Time Synchronization in Multi-Core Architectures 林孟諭 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan,
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
By: James Ross. Outline  Collision Conecpts  Axis Aligned Bounding Box  ECMs  Objective  Methodology  Expected Results.
Content Addressable Network CAN. The CAN is essentially a distributed Internet-scale hash table that maps file names to their location in the network.
Parallel and Distributed Simulation Memory Management & Other Optimistic Protocols.
Chapter 7 Operating Systems. Define the purpose and functions of an operating system. Understand the components of an operating system. Understand the.
Dynamic Load Balancing in Charm++ Abhinav S Bhatele Parallel Programming Lab, UIUC.
VTP VLAN Trunking Protocol Create once and send to the other switches.
CS 484 Designing Parallel Algorithms Designing a parallel algorithm is not easy. There is no recipe or magical ingredient Except creativity We can benefit.
Parallelizing Spacetime Discontinuous Galerkin Methods Jonathan Booth University of Illinois at Urbana/Champaign In conjunction with: L. Kale, R. Haber,
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
CSCI1600: Embedded and Real Time Software Lecture 23: Real Time Scheduling I Steven Reiss, Fall 2015.
CS274 Spring 01 Lecture 7 Copyright © Mark Meyer Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
1 Configuring Sites Configuring Site Settings Configuring Inter-Site Replication Troubleshooting Replication Maintaining Server Settings.
1 Rocket Science using Charm++ at CSAR Orion Sky Lawlor 2003/10/21.
Slides created by: Professor Ian G. Harris Operating Systems  Allow the processor to perform several tasks at virtually the same time Ex. Web Controlled.
Relying on Safe Distance to Achieve Strong Partitionable Group Membership in Ad Hoc Networks Authors: Q. Huang, C. Julien, G. Roman Presented By: Jeff.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Bringing together leading research institutions to advance electric ship concepts. Bringing together leading research institutions to advance.
1.  System Characteristics  Features of Real-Time Systems  Implementing Real-Time Operating Systems  Real-Time CPU Scheduling  An Example: VxWorks5.x.
Efficient Algorithms for Distributed Snapshots and Global Virtual Time Approximation Author: Friedermann Mattern Presented By: Shruthi Koundinya.
Clock Synchronization (Time Management) Deadlock Avoidance Using Null Messages.
CS3771 Today: Distributed Coordination  Previous class: Distributed File Systems Issues: Naming Strategies: Absolute Names, Mount Points (logical connection.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
PDES Introduction The Time Warp Mechanism
Parallel and Distributed Simulation
PDES: Time Warp Mechanism Computing Global Virtual Time
Ivy Eva Wu.
Chapter 2.2 : Process Scheduling
Software Architecture in Practice
THINGS YOU SHOULD KNOW ABOUT JOB SCHEDULING. One such automation tool to run the essence of any organization or enterprise is Job scheduling. It is the.
CPSC 531: System Modeling and Simulation
Timewarp Elias Muche.
Threads Chapter 4.
Parallel and Distributed Simulation
Computer Animation Algorithms and Techniques
Lecture 3: Main Memory.
OPERATING SYSTEMS MEMORY MANAGEMENT BY DR.V.R.ELANGOVAN.
Parallel Exact Stochastic Simulation in Biochemical Systems
Presentation transcript:

Timewarp Rigid Body Simulation Brian Mirtich

Simulation Discontinuities “Events that change the dynamic states or the equations of motion of some subset of the bodies” Ex. “collisions, new contacts, transitions between rolling and sliding, and control law changes”

Retroactive Detection If an event occurs then backtrack to the moment of the event and then process All bodies must be backed up to the time The event might have affected their motion There is no framework for maintaining bodies at different times.

Conservative Advancement Don’t integrate over a discontinuity Lower bounds are maintained by a priority queue Creeps up to a discontinuity

The Timewarp Algorithm Avoids unnecessary synchronization Comes from discrete event simulation(DES) Enables the simulation to be run in parallel

Timewarp Continued Each processor maintains part of the model Each processor keeps a “Local Virtual Time” Each processor advances its local time until an event occurs Events are processed through messages

Timewarp Continued Rollback occurs to the latest time before the message time This time becomes the LVT Messages sent after the new LVT are unsent via anti-messages GVT is the minimum of all LVT, it is provably valid

Rigid Body Simulation Each body is a process There is a global event queue Each event contains the time and the bodies that receive it Four Events Collision check events Group check events Redraw events Callback events

Collisions and Rollback Isolated Bodies Each collision check has a “safe time” which is the time the group of bodies was last verified to be disjoint GVT is the minimum of all LVT’s and all event safe times If a rollback is earlier than an event’s safe time it is rescheduled to the rollback time

Multibodies One state queue serves for the whole multibody Events are still handled on a per link basis however the whole multibody must be integrated

Contact Groups Groups of rigid and multibodies in persistent contact The components again must be integrated as a unit When bodies join or leave a new contact group is formed

Group Events If bodies A-B are in the same group but not currently in contact then standard A-B collision event Group check events are fired at a user specified rate While group check is enabled regular collision detection between A-B is disabled Fission is checked for by performing a connected component algorithm

Collision Checks Events are enabled between active pairs Axis aligned bounding boxes are used for each rigid body state to generate a “swept volume” A collision detection event is scheduled once an integration step causes the swept volumes to intersect

Callback Functions Cannot access global data Data that must persist across calls can use added slots to the body’s state

Possible Expansion Full parallel implementation How to minimize inter-processor communication? How best to load balance? How to handle shared data?