Diagnosis, Tuning, and Redesign for Multicore Performance: A Case Study of the Fast Multipole Method
School of Computational Science and Engineering, Georgia Institute of Technology, Atlanta, GA
In Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (2010), pp. 1-12.
@conference{chandramowlishwarany2010diagnosis,
title={Diagnosis, Tuning, and Redesign for Multicore Performance: A Case Study of the Fast Multipole Method},
author={Chandramowlishwarany, A. and Madduri, K. and Vuduc, R.},
booktitle={Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis},
pages={1–12},
year={2010},
organization={IEEE Computer Society}
}
Given a program and a multisocket, multicore system, what is the process by which one understands and improves its performance and scalability? We describe an approach in the context of improving within-node scalability of the fast multipole method (FMM). Our process consists of a systematic sequence of modeling, analysis, and tuning steps, beginning with simple models, and gradually increasing their complexity in the quest for deeper performance understanding and better scalability. For the FMM, we significantly improve within-node scalability; for example, on a quad-socket Intel Nehalem-EX system, we show speedups of 1.7x over the previous best multithreaded implementation, 19.3x over a sequential but highly tuned (e.g., SIMD-vectorized) code, and match or outperform a state-of- the-art GPGPU implementation. Our study sheds new light on the form of a more general performance analysis and tuning process that other multicore/manycore tuning practitioners (end- user programmers) and automated performance analysis and tuning tools could themselves apply.
January 11, 2011 by hgpu