Skip to end of metadata
Go to start of metadata

Habanero team members are currently engaged in the following projects to realize the vision of creating portable parallel abstractions for future multicore hardware with high productivity and high performance.  Please see the Habanero Publications page for more details:

Broadly, the research scope for the Habanero team includes the following topics that build on our past work:

1) Language research

  1.  Explicit parallelism: portable constructs for homogeneous & heterogeneous multicore

  2.  Implicit deterministic parallelism: array views, single-assignment constructs

  3.  Implicit non-deterministic parallelism: unordered iterators, partially ordered statement blocks

  4.  Builds on our experiences with the X10CAFHPF, Fortran 90, and Sisal languages

2) Compiler research

  1. New Parallel Intermediate Representation (PIR)
  2. Analysis and transformation framework for the PIR
  3. Optimization of high-level arrays and iterators
  4. Optimization of synchronization, data transfer, and transactional memory operations
  5. Code partitioning for accelerators

 Builds on our experiences with the D SystemMassively ScalarTelescoping Languages Framework, ASTI, and PTRAN research compilers

3) Virtual machine research

  1.  VM support for work-stealing scheduling algorithms with extensions for places, transactions, task groups 
  2. Integration and exploitation of lightweight profiling in VM scheduler and memory management system 
  3. Builds on our experiences with the Jikes Research Virtual Machine 

4) Parallel runtime system research

  1.  Extensions to work-stealing task scheduling algorithms
  2. Fine-grained producer-consumer synchronization (phasers)

  3. New nonblocking data structures 

  4. Efficient software transactional memory libraries

  5. Builds on our experiences with the java.util.concurrent and the DSTM2 libraries

5) Tools research

  1. Program analysis for common parallel software errors

  2. Performance attribution of shared code regions (loops, procedure calls) using static and dynamic calling context

  3. Builds on our experiences with the Rice HPCToolkitEclipse Parallel Tools Platform, and DrJava projects

  • No labels