3 | | The HydraVM project focuses on extracting parallelism from sequential code (e.g., legacy systems) through a set of techniques including code profiling, data dependency analysis, execution analysis, and software transactional memory, all done at the bytecode-level. Thus, no changes or recompilation is needed to application source codes. HydraVM is a virtual machine prototype that incorporates these techniques, built by extending [http://www.jikesrvm.org Jikes RVM] and modifying the [http://www.jikesrvm.org Jikes RVM] baseline compiler. [[BR]] |
| 4 | The HydraVM project focuses on automatically refactoring concurrency into legacy codebases for improved performance on emerging hardware with significantly increased thread-level parallelism. With the ubiquity of multicore architectures, large enterprise-class legacy codebases, some of which are (intentionally) designed to be sequential to reduce development costs, are confronted with hardware refresh challenges for improving performance. Manual concurrency refactoring is non-scalable when code size becomes large (e.g., coping with shared data, race conditions, identifying parallel code) and due to the need for low-level optimizations that are necessary for the hardware at-hand for obtaining high performance (e.g., thread communication, locality, caching, scheduling). The project is exploring a language-independent approach for automated concurrency refactoring using a number of techniques including static- and run-time program analysis, speculative execution using transactional memory abstractions and mechanisms, and code transformations and optimizations at an intermediate representation-level. Implementation is being explored using the [http://www.jikesrvm.org Jikes RVM] and the [http://www.jikesrvm.org LLVM] compiler infrastructure. |