Scalable Asynchronous Contact Mechanics with Charm++
This paper presents a scalable implementation of the Asynchronous Contact Mechanics (ACM) algorithm, a reliable method to simulate flexible material subject to complex collisions and contact geometries.
May 25, 2015
IEEE International Parallel & Distributed Processing Symposium (IPDPS) 2015
Authors
Xiang Ni (University of Illinois at Urbana-Champaign)
Laxmikant V. Kale (University of Illinois at Urbana-Champaign)
Rasmus Tamstorf (Walt Disney Animation Studios)
Scalable Asynchronous Contact Mechanics with Charm++
This paper presents a scalable implementation of the Asynchronous Contact Mechanics (ACM) algorithm, a reliable method to simulate flexible material subject to complex collisions and contact geometries. As an example, we apply ACM to cloth simulation for animation. The parallelization of ACM is challenging due to its highly irregular communication pattern, its need for dynamic load balancing, and its extremely fine-grained computations. We utilize CHARM++, an adaptive parallel runtime system, to address these challenges and show good strong scaling of ACM to 384 cores for problems with fewer than 100k vertices. By comparison, the previously published shared memory implementation only scales well to about 30 cores for the same examples. We demonstrate the scalability of our implementation through a number of examples which, to the best of our knowledge, are only feasible with the ACM algorithm. In particular, for a simulation of 3 seconds of a cylindrical rod twisting within a cloth sheet, the simulation time is reduced by 12 from 9 hours on 30 cores to 46 minutes using our implementation on 384 cores of a Cray XC30.