A status report on the OO7 OODBMS benchmarking effort
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
The SPLASH-2 programs: characterization and methodological considerations
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
AfriGraph '01 1st International Conference on Virtual Reality, Computer Graphics and Visualization in Southern Africa ( formerly known as SAGA 2001 )
An Efficient Parallel Collision Detection Algorithm for Virtual Prototype Environments
ICPADS '04 Proceedings of the Parallel and Distributed Systems, Tenth International Conference
The next mainstream programming language: a game developer's perspective
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiler and runtime support for efficient software transactional memory
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
ParFUM: a parallel framework for unstructured meshes for scalable dynamic physics applications
Engineering with Computers
STMBench7: a benchmark for software transactional memory
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Lee-TM: A Non-trivial Benchmark Suite for Transactional Memory
ICA3PP '08 Proceedings of the 8th international conference on Algorithms and Architectures for Parallel Processing
Intel threading building blocks
Intel threading building blocks
Atomic quake: using transactional memory in an interactive multiplayer game server
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Multi-core collision detection between deformable models
2009 SIAM/ACM Joint Conference on Geometric and Physical Modeling
Scalable parallel collision detection simulation
SIP '07 Proceedings of the Ninth IASTED International Conference on Signal and Image Processing
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Hi-index | 0.00 |
The simulation of the dynamics and kinematics of solid bodies is an important problem in a wide variety of fields in computing ranging from animation and interactive environments to scientific simulations. While rigid body simulation has a significant amount of potential parallelism, efficiently synchronizing irregular accesses to the large amount of mutable shared data in such programs remains a hurdle. There has been a significant amount of interest in transactional memory systems for their potential to alleviate some of the problems associated with fine-grained locking and more broadly for writing correct and efficient parallel programs. While results so far are promising, the effectiveness of TM systems has so far been predominantly evaluated on small benchmarks and kernels. In this paper we present our experiences in parallelizing ODE, a realtime physics engine that is widely used in commercial and open source games. Rigid body simulation in ODE consists of two main phases that are amenable to effective coarse-grained parallelization and which are also suitable for using transactions to orchestrate shared data synchronization. We found ODE to be a good candidate for applying parallelism and transactions to - it is a large real world application, there is a large amount of potential parallelism, it exhibits irregular access patterns and the amount of contention may vary at runtime. We present an experimental evaluation of our implementation of the parallel transactional ODE engine that shows speedups of up to 1.27x relative to the sequential version.