Intel, Microsoft, and the University of California at Berkeley have opened the Parallel Computing Laboratory. The lab is designed to foster creativity by encouraging spontaneous interactions between faculty and students in parallel computing applications, software engineering, programming languages, libraries, testing, operating systems and computer architecture. Parallel computing has become essential to enhancing program performance and satisfying the increased demands for power efficiency and small form factors. This lab helps address the challenge ahead bringing the benefits of multi-core processing based on tens or hundreds of cores to mainstream developers and consumers.
The development of parallel software is the heart of the lab's research agenda. The task will be divided into two layers:
- An efficiency layer that aims at low overhead for 10 percent of the best programmers
- A productivity layer for the rest of the programming community--including domain experts--that reuses the parallel software developed at the efficiency layer.
Key to this approach is a layer of libraries and programming frameworks centered on the 13 computational bottlenecks ("dwarfs") that we identified in the original Berkeley View report. We will also create a Composition and Coordination Language to make it easier to compose these components.
Finally, we will rely on autotuning to map the software efficiently to a particular parallel computer. Past attempts have often relied on a single programming abstraction and language for all programmers and on automatically parallelizing compilers