IBM HPCS toolkit
In view of the enormous complexity of large-scale computing systems, the IBM High Productivity Computing System (HPCS) toolkit aims at automating the performance tuning process for parallel applications to mitigate the burden on scientists and programmers. The central idea behind the HPCS toolkit is to determine potential performance bottlenecks based on the performance metrics collected. Following an extensible strategy, different bottlenecks may be determined by distinct software modules using their appropriate analysis mechanisms to measure necessary metrics. The extensibility of this schema provides for the ability to add new metrics, corresponding modules that abstract the metric data, and rules for combining the metrics into bottleneck definitions. After the bottlenecks are identified, the HPCS toolkit will provide solution guidelines or automatic transformation (when available) to improve the application performance. The goal of this collaboration between IBM and the Jülich Supercomputing Centre, which was carried out during a summer internship at the IBM T.J. Watson Research Center, was to provide a software module which uses the trace analysis framework Scalasca for the identification of performance bottlenecks caused by wait states which may occur, for instance, when processes arrive at synchronization points in an untimely manner.