unknown

Multi-core strategies for particle methods

Abstract

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

    Similar works