Description
The other aspect of HAT is to adjust its operations to match proposed HJ runtimes. HJ runtime has a diverse set of scheduling mechanisms. Some of which are preemptive and some of which are cooperating. Those that are cooperative lead to difficulties in enforcing some behaviors and those that are preemptive may lead to deadlocks and liveness issues. Our tool should be able to explore all of these scenarios and be able to reason about them.
The challenges faced for hybrid runtimes verification is that they require both SA and DA but there is still a lot of scope for improving their cooperation. They require rigorous operational semantics specifications. They require simulation of the packaged SA, DA and OpSem (Operational Semantics) to draw conclusions about methodologies effectiveness. More over, HJ has inadequate dynamic verification tools support to aid reason about its programs. HJ has no OpSem specifications, regardless of how heavily they are discussed in published work. This introduces confusions for both tools developers and users of HJ alike. As a result, a concise OpSem is crucially needed to address ambiguity(ies).
Downloads
- Habanero-Java official homepage: In order to run any Habanero-Java project, Habanero Java has to be setup according to the instructions on HJ home page.
- Face Replace (HJLib
version): Runs on Raspberry Pi Model B. All you need is to
download, uncompress, then cd into the directory, and then
invoke "make" (it should compile and run)
Dependencies: Jdk8 should be installed, HJ executables, and setting the JAVA_HOME and HJ_HOME env variables.
Variations:
Publications
- Cooperative Scheduling of Parallel Tasks with General Synchronization Patterns. Shams Imam, Vivek Sarkar. 28th European Conference on Object-Oriented Programming (ECOOP), July 2014.
- Test-Driven Repair of Data Races in Structured Parallel Programs. Rishi Surendran, Raghavan Raman, Swarat Chaudhuri, John Mellor-Crummey, and Vivek Sarkar. 35th ACM Conference on Programming Language Design and Implementation (PLDI), June 2014.
- SC13 Poster after Face Replace experience: An Assessment of Safety, Inherent Programmability, and Performance of Modern Parallel Languages.
- SC13 Poster (presented at SC13): Efficient Datarace Detection in a Structured Programming Language
Projects and Reports
Habanero-Java Verification Runtime (HJ-VRT)
- Understanding HJ and Srcs of the Cooperative runtime - Mar 2014: This report explains our experience learning Habanero Java, teaching two interns how to use it in developing a GUI app that does its computation using HJ different concurrency constructs, our experience running HJ applications on Raspberry Pi in preparation for Parallelism class, our understanding of HJ Cooperative runtime based on its source code provided by Rice University, and initial plans about how we are working towards a verification cooperative runtime based on HJ Coop Runtime.