Multi-core strategies for particle methods

This paper discusses the implementation of particle based numerical methods on multi-core machines. In contrast to cluster computing, where memory is distributed across machines, multi-core machine can share memory across all cores. Here general strategies are developed for spatial management of par...

Full description

Bibliographic Details
Main Authors: Williams, John R. (Contributor), Holmes, David W. (Contributor), Tilke, Peter G. (Contributor)
Other Authors: Massachusetts Institute of Technology. Department of Civil and Environmental Engineering (Contributor)
Format: Article
Language:English
Published: Queen Mary, University of London, 2011-12-16T17:41:04Z.
Subjects:
Online Access:Get fulltext
LEADER 02048 am a22002293u 4500
001 67703
042 |a dc 
100 1 0 |a Williams, John R.  |e author 
100 1 0 |a Massachusetts Institute of Technology. Department of Civil and Environmental Engineering  |e contributor 
100 1 0 |a Williams, John R.  |e contributor 
100 1 0 |a Williams, John R.  |e contributor 
100 1 0 |a Holmes, David W.  |e contributor 
100 1 0 |a Tilke, Peter G.  |e contributor 
700 1 0 |a Holmes, David W.  |e author 
700 1 0 |a Tilke, Peter G.  |e author 
245 0 0 |a Multi-core strategies for particle methods 
260 |b Queen Mary, University of London,   |c 2011-12-16T17:41:04Z. 
856 |z Get fulltext  |u http://hdl.handle.net/1721.1/67703 
520 |a This paper discusses the implementation of particle based numerical methods on multi-core machines. In contrast to cluster computing, where memory is distributed across machines, multi-core machine can share memory across all cores. Here general strategies are developed for spatial management of particles and sub-domains that optimize computation on shared memory machines. In particular, we extend cell hashing so that cells bundle particles into orthogonal tasks that can be safely distributed across cores avoiding the use of "memory locks" while still protecting against race conditions. Adjusting task size provides for optimal load balancing and maximizing cache hits. Additionally, the way in which tasks are mapped to execution threads has a significant influence on the memory footprint and it is shown that minimizing memory usage is one of the most important factors in achieving execution speed and performance on multi-core. A novel algorithm called H-Dispatch is used to pipeline tasks to processing cores. The performance is demonstrated in speed-up and efficiency tests on a smooth particle hydrodynamics (SPH) flow simulator. An efficiency of over 90% is achieved on a 24-core machine. 
546 |a en_US 
655 7 |a Article 
773 |t Proceedings of the Fifth International Conference on Discrete Element Methods