A fast algorithm for particle simulations
Journal of Computational Physics
Concurrent Access of Priority Queues
IEEE Transactions on Computers
Introduction to parallel computing: design and analysis of algorithms
Introduction to parallel computing: design and analysis of algorithms
Molecular dynamics for polymeric fluids using discontinuous potentials
Journal of Computational Physics
Efficient Algorithms for Shortest Paths in Sparse Networks
Journal of the ACM (JACM)
Molecular Dynamics Simulation: Elementary Methods
Molecular Dynamics Simulation: Elementary Methods
Understanding Molecular Simulation: From Algorithms to Applications
Understanding Molecular Simulation: From Algorithms to Applications
Fundamentals of Data Structures in Pascal
Fundamentals of Data Structures in Pascal
Data Structures and Algorithms
Data Structures and Algorithms
Parallel and distributed particle collision simulation with decentralized control
GPC'08 Proceedings of the 3rd international conference on Advances in grid and pervasive computing
Hi-index | 31.45 |
We consider the parallel simulation of collision systems. It has wide application, such as in hard-sphere molecular dynamics simulation for gas dynamics and crystals, as well as in studying molecular collision dynamics of chemical reactions. With detailed analysis, proper data structures are designed so that the central computational task is formulated as a consecutive search for the minimum in the collision time space of O(N2) entries, with multiple updates on O(N) entries in the same space per collision step. The abstraction and formulation enable us to incorporate efficient techniques in computer science into this application, which leads to a heap-based sequential algorithm of O(N log N) time in one typical collision step, where N is the number of particles of the simulated collision system. A parallel algorithm of multiple heaps with a diagonal-oriented mapping is then proposed. We show that the parallel algorithm is load balanced and the parallel time per collision step is O((N/P) log(N2/P) + log P), where P is the number of processors. The parallel algorithm uses two levels of partitioning independently, one in the particle-based physical space and the other in the collision time space. An exchange-shift communication algorithm is presented to bridge the two different partitioning schemes. Besides collision system simulation, the parallel multiple heaps algorithm may find applications in many other computing areas where a heap-based priority queue needs to be maintained, such as in fast level-set methods.