An Easy-to-Use Performance Diagnosis Tool for HPC Applications
HPC systems are notorious for operating at a small fraction of their peak performance, and the ongoing migration to multi-core and multi-socket compute nodes further complicates performance optimization.
The previously available performance optimization tools require considerable effort to learn and use. To enable wide access to performance optimization, TACC and its technology insertion partners have developed PerfExpert, a tool that combines a simple user interface with a sophisticated analysis engine to:
- Detect and diagnosis the causes for any core, socket, and node-level performance bottlenecks in each procedure and loop of an application;
- Apply pattern-based software transformations on the application source code to enhance performance on identified bottlenecks;
- Provide performance analysis report and suggestions for bottleneck remediation for application's performance bottlenecks which we are unable to optimize automatically.
Applying PerfExpert requires only a single command line added to the applications normal job script. PerfExpert automates performance optimization at the core, socket and node levels as far as is possible. PerfExpert is currently available only for the CPU portion of Stampede compute nodes but will be extended to MICs in the near future.
The NSF Track 2 Ranger grant and the current NSF Stampede grant.
Professor Emeritus of Computer Science, UT Austin
Research Scientist, UT Austin
PhD student, UT Austin
Ashay Rane, James Browne, Lars Koesterke, "PerfExpert and MACPO: Which code segments should (not) be ported to MIC?", TACC-Intel Highly Parallel Computing Symposium, April 2012
Ashay Rane, James Browne: Performance Optimization of Data Structures Using Memory Access Characterization. CLUSTER 2011: 570-574
Ashay Rane, Saurabh Sardeshpande, James Browne, "Determining Code Segments that can Benefit from Execution on GPUs", poster presented at Supercomputing Conference (SC) 2011
M. Burtscher, B.D. Kim, J. Diamond, J. McCalpin, L. Koesterke, and J. Browne. "PerfExpert: An Easy-to-Use Performance Diagnosis Tool for HPC Applications." SC 2010 International Conference for High-Performance Computing, Networking, Storage and Analysis. November 2010 [pdf]
Talk slides [pdf] [pptx]
O. A. Sopeju, M. Burtscher, A. Rane, and J. Browne. "AutoSCOPE: Automatic Suggestions for Code Optimizations Using PerfExpert." 2011 International Conference on Parallel and Distributed Processing Techniques and Applications. July 2011 [pdf]
If you have problems using PerfExpert on Stampede or Lonestar or suggestions for enhancing PerfExpert, contact us: fialho[at]tacc.utexas.edu. If you are reporting a problem, please use our mailing list.
Want to Contribute?
Version 4 of PerfExpert has been designed to allow third-party contributions. There are several different ways to contribute with PerfExpert, such as:
- Providing new bottleneck alleviation solutions;
- Creating new strategies to select bottleneck alleviation solutions based on performance metrics;
- Adding new performance metrics to PerfExpert;
- Writing modules to modify the source code in order to alleviate the identified bottlenecks.
If you want to contribute with PerfExpert or need help to do research using PerfExpert, contact us: fialho[at]tacc.utexas.edu. Full directions on how to add to or modify each phase of PerfExpert can be found on the PerfExpert web site. Please tell us how we can we help you to help us.
To subscribe send a message to: firstname.lastname@example.org or access the list webpage at: https://lists.tacc.utexas.edu/mailman/listinfo/perfexpert.
When reporting a problem using or installing PerfExpert, please try to include in your report a compressed file of the
/.perfexpert-temp.XXXXXX directory generated by the failed execution or the
config.log file generated by configure command if it is an installation issue.