As extracting performance increases from hardware gets more difficult and expensive, the collective attention of the HPC industry turns to software. One of the many focal points on the road to extreme-scale computing is software that is more user-friendly. In line with this mandate, a team of computer scientists at Pacific Northwest National Laboratory (PNNL) have developed the “Performance and Architecture Lab Modeling” tool, aka Palm.
Application models are notoriously difficult to generate, distribute and validate. The PNNL team recognized these challenges and saw an opportunity to streamline a time-consuming task. The result of this effort is Palm, a new tool that simplifies the process of creating and reproducing analytical performance models. A paper describing the research will be included in the Proceedings of the 28th International Conference on Supercomputing, ICS 2014, taking place June 10-13, 2014.
“Application performance modeling is an important methodology for diagnosing performance-limiting resources, optimizing application and system performance, and designing large-scale machines,” notes a recent overview of this project. “However, because creating analytical models can be difficult and time-consuming, application developers often forgo the insight that these models can provide.”
By automating common modeling tasks, Palm makes it easier incorporate human insight into the workflow. Reproducing a model becomes a straightforward task – one that supports the open distribution and cross-team validation of models.
Key to the project is Palm’s source code modeling annotation language. The modeling language divides the model into a number of sub-models, which correspond to application code blocks. Thus the application’s source code is formally linked with its model. It’s an approach that combines top-down (human-provided) semantic insight with bottom-up static and dynamic analysis.
“Given an application, a set of annotations, and a representative execution environment, Palm will generate the same model,” explained Nathan Tallent, a PNNL research scientist and lead author of the paper describing the Palm tool. “We believe this presents intriguing possibilities for developing, distributing, and validating models.”
To showcase Palm’s capabilities, the scientists generated models for three applications: Nekbone, a computational fluid dynamics solver; GTC, a gyrokinetic particle code; and Sweep3D, a neutron transport benchmark. Palm was able to elegantly express each model as well as automate several common tasks.
From here the team is looking to static source code analysis and critical path analysis to further refine model generation, while the addition of power and data movement metrics will support efficiencies crucial for next-generation design.