Geoffrey Shauger - CS 510 OSS - Summer 2009


Overview

JaLoopA which stands for Java Loop Analyzer is a set of utilities and NetBeans plugins designed to analyze Java source code for the purpose of exploiting parallelism within unoptimized, single threaded code. JaLoopA is similar in concept to OpenMP and it's eventual goal is to provide the same level of functionality.

JaLoopA is intended to be used with legacy codebases where transitioning them to multithreaded code is either too time consuming or prohibitively dangerous if the developer is inexperienced with parallel programming or Java threading. As it's name would suggest, JaLoopA will scan the source code and identify loops which can be parallelized without the developer typing a single line of code.

The initial goal of the JaLoopA project is to target developers who want to extract parallelism out of their code without having to directly modify the code themselves. The ultimate goal though is to offer the exact same features and power of OpenMP which would allow experienced developers to use annotations to identify loops that they wish to parallelize and to provide hints to JaLoopA as to how to share data amongst threads for optimal performance gains.


As charts clearly demonstrate the potential for speedup within common algorithms is signifincant without the developer ever changing a single line of code. These are neither toy nor contrived examples and are indicative of the types of loops found within a typical application. Why risk introducing bugs or pushing out deadlines when JaLoopA can provide significant speedups and like OpenMP can do so without changing the single threaded performance.

Project Goals

The following represents the milestones for this project during the duration of the Summer 2009 term.
  • Create project repository and expose to the public
  • Develop Java source code parser that is able to identify classes, methods, variable declerations and their scope and for-loops.
  • Create a template for multithreading for-loops
  • Identify for-loops that meet strict criteria and then rewrite code to conform to template

Source Code

The JaLoopa codebase is being hosted at CodePlex.

Future development and bug tracking will be handled through the CodePlex interface.


Documentation

User Guide
Build Instructions
Checkout Instructions


License

JaLoopA is released under the New BSD License (BSD)

Contact Info

Copyright (c) 2009, Geoffrey Shauger
All rights reserved.