Welcome to HydraVM
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 Jikes RVM and the LLVM compiler infrastructure.
- Getting Started with HydraVM
This work is supported in part by AFOSR under grant FA9550-14-1-0187. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of AFOSR.