DescriptionVendors often provide some detailed programming guides to assist programmers in developing high performance programs. However, these guides are frequently hundreds of pages long, making it difficult for general programmers to master and memorize all the rules and guidelines and properly apply them to a specific problem instance.
In this work, we develop a framework named Egeria to alleviate the difficulty. Through Egeria, one can easily construct an advising tool for a certain high performance computing (HPC) domain (e.g., GPU programming). Egeria is made possible through a distinctive multi-layered design that leverages the properties of HPC domains and overcomes the weaknesses of existing Natural Language Processing (NLP) techniques. Experiments on CUDA and OpenCL programming demonstrate the usefulness of Egeria for HPC both qualitatively and quantitatively.