Legend:

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 or because of the lack of commodity parallel hardware, are confronted with hardware refresh challenges for improving performance. Manual concurrency refactoring is non-scalable when code size becomes large and complex (e.g., coping with shared data with certain semantics, 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://llvm.org LLVM] compiler infrastructure.

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 or because of the lack of commodity parallel hardware, are confronted with hardware refresh challenges for improving performance. Manual concurrency refactoring is non-scalable when code size becomes large and complex (e.g., coping with shared data with certain semantics, 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://llvm.org LLVM] compiler infrastructure.