Lead Inventors:
Simha Sethumadhavan, Ph.D.;
Gail Kaiser, Ph.D.
Web system draws upon community knowledge to parallelize less-experienced users' serial codes:
With the widespread adoption of multicore technology, the parallelization of sequential codes is becoming essential to efficient computation in the sciences, engineering, and beyond. While multicore architectures have been proposed in the past, they are now here to stay, as most other routes to better performance have been exhausted. Therefore, programmers will increasingly need parallelization tools to deal with the changing computer market. Because traditional hardware, compiler, language or hybrid approaches to parallelization have long incubation times, programmers are currently in need of a way to parallelize their codes that does not necessitate prodigious knowledge of hardware and software developments. Both Microsoft and Intel have invested $20 million into developing ways of tackling this problem. This technology, the Community-driven Parallelization Advisor for Sequential Software (COMPASS), is new web system that draws upon the knowledge of parallelization experts to parallelize less-experienced users' serial codes.
Details of the Invention:
Users input code into the COMPASS system, which then outputs a list of potential parallel versions of the inputted code from which the users selects the optimal version for his/her purposes. COMPASS consists of four modules: the watcher, the data store, the matcher, and the generator. The watcher observes how experts parallelize their code and stores both the inputs and outputs of this parallelization process in the data store. When a user inputs code, a matcher creates a list of portions of the inputted code that can be parallelized and tries to match those portions to pieces of code in the data store. The data store creates a ranked list of matches and sends them to the generator, which provides possible parallelization sketches to the user. The user may finally select from the sketches for use in his/her code and/or provide feedback on the accuracy of the sketches.
Applications:
• May be used by companies or individual users to incrementally parallelize code
• COMPASS's data store may be mined by developers for the most commonly used serial code patterns and their related parallel optimizations to speed the development of compilers and hardware that aid parallelization
Advantages:
• COMPASS does not require advanced knowledge of system architectures or the latest software updates
• The accuracy of the final sketches provided by COMPASS scales exponentially with the number of advanced users who submit parallelized codes to the system
• Suitable for cloud computing
Patent Status: Patent Pending
Licensing Status: Available for Licensing and Sponsored Research Support
Publications: Simha Sethumadhavan, Nipun Arora, Ravindra Babu Ganapathi, John Demme, Gail E. Kaiser, COMPASS: A Community-driven Parallelization Advisor for Sequential Software;
Proceedings of the 2009 ICSE Workshop on Multicore Software Engineering, p.41-48, May 18-18, 2009