Parallelizing a Particle Simulation on NERSC's High Performance Computer Cori

Andrew Tzer-Yeu Chen, Brian Park, Xuan Jiang · 2022

In this paper, we explored how to implement Parallelizing a Particle Simulation on NERSC’s High PerformanceComputer Cori. Everyone on the team contributed equally. Xuan started off with the implementation of particle binning to reduce the time complexity to O(n). Brian was able to figure out an algorithmic way to speed up serial performance by reducing the number of comparisons per iteration in a bin. Andrew was able to speed up Brian’s implementation even more to a record time of 891 seconds (1000 particles) with a few more optimizations related to memory management.For OpenMP, Xuan and Brian were able to figure out how to add OpenMP directives to optimize code. Brian figuredout how to parallelize for loops by adding locks and synchronization primitives to prevent false sharing, which hurt accuracy if done incorrectly. Everyone contributed equally to the report and everyone contributed to the grouprepository equally.We used a variety of techniques to optimize the problem of parallelizing a particle simulation. In the remainderof this report, we describe each of our optimizations in our final submission, present results with evidence that theywork, and describe attempted optimizations that did not noticeably improve overall our performance.

Read the paper · More papers on PaperTik