COMPASS: COMmunity driven Parallelization Advisor for Software Systems


In this poster, we will describe research being done at Columbia University on a system called COMPASS: A community driven parallelization advisor for sequential software systems, which uses aspects of social networking to improve ease of parallel programming. COMPASS observes expert users parallelize their sequential codes, and records their changes in a collective knowledge database. Sequential codes given by new users are matched against this database and the corresponding parallel solution is suggested. Suggestions are made in the form of ‘sketches’ which are graphical overlays on the input problem showing approximate changes necessary to parallelize the input code. Traditional methods such as wiki’s, mailing lists, tutorials, classroom teaching, books and developer forums rely on the user searching for the relevant advice. Such a process can often be time consuming and error prone. In contrast to using a key word based search, COMPASS uses user code, to search in a database of previously parallelized code thereby considerably reducing the involvement of the user. Instead of incorporating optimizations into a compiler (which needs to be absolutely correct), or encapsulating them in library functions, COMPASS utilizes the advantages of human involvement, which reduces the problem to simply a matter of suggestion quality. As COMPASS is a community driven system, it is only as strong as the number of users and optimizations in the database, we would like to use this poster presentation as an opportunity to get researchers and developers interested in COMPASS and to aid us in extending the database. Additionally the conference will prove to be an ideal base to show case several innovative ideas that are being developed to support COMPASS. These innovations include a search engine and repository mining tools to support extraction of suggestions from a database of previously parallelized code snippets, and a program generator to correctly generate suggestions/‘sketches’.

Fourteenth International Conference on Architectural Support for Programming Languages and Operating Systems