Multi-core strategies for particle methods
Author(s)Williams, John R.; Holmes, David W.; Tilke, Peter G.
MetadataShow full item record
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.
DepartmentMassachusetts Institute of Technology. Department of Civil and Environmental Engineering
Proceedings of the Fifth International Conference on Discrete Element Methods
Queen Mary, University of London
Williams, John R., Holmes, David, and Tilke, Peter (2010) Multi-core strategies for particle methods. ISBN 978-0-9551179-8-5. Proceedings of the Fifth International Conference on Discrete Element Methods In: Fifth International Conference on Discrete Element Methods, 25-26 August 2010, London, UK.
Author's final manuscript