SUMMARY Scientic parallel programs often undergo signican t performance tuning before meeting their performance expectation. Performance tuning naturally involves a diagnosis process { locating performance bugs that make a program inecien t and explaining them in terms of high-level program design. We present a systematic approach to generating performance knowledge for automatically diagnosing parallel programs. Our approach exploits program semantics and parallelism found in computational models to search and explain bugs. We rst identify categories of expert knowledge required for performance diagnosis and describe how to extract the knowledge from computational models. Second, we represent the knowledge in such a way that diagnosis can be carried out in an automatic manner. Finally, we demonstrate the eectiv eness of our knowledge engineering approach through a case study. Our experience diagnosing Master-Worker programs show that model-based performance knowledge can provide eectiv e guidance for locating and explaining performance bugs at a high level of program abstraction. Copyright c 2005 John Wiley & Sons, Ltd.
['Li Li', 'Allen D. Malony']
Knowledge engineering for automatic parallel performance diagnosis