= Welcome to Hydra'''VM''' = [[Image(/chrome/site/excerpts_mm2_0501.jpg, right, 35%)]] 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. ''[wiki:Team Hydra VM Team]'' == News == Our [https://www.ssrg.ece.vt.edu/papers/systor2018.pdf Lerna paper] won the '''[attachment:systor-2018-best-paper-award.jpg best paper award]''' at [https://www.systor.org/2018/ Systor 2018]. == Starting Points == * Getting Started with HydraVM * Downloads * [wiki:SvnCheckOut Checking out source code] * Resources * [http://www.jikesrvm.org Jikes RVM] * [http://www.graphviz.org GraphViz] * [http://cs.au.dk/~mis/dOvs/jvmspec/ref-Java.html Java Bytecode Reference] * [http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html Class file format] * Documentation * [wiki:Architecture How it works?] * [wiki:Visualization Code Visualization] * [wiki:ByteSTM ByteSTM] * [wiki:Para Extracting Parallelism] * [wiki:Presentations Presentations] * [wiki:Publications Publications] ---- 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.