Background and Funding

In a few years from now most mainstream processors will be equipped with more than 100 cores (chip-level multiprocessors) and the number of cores will double approximately every 1,5 years. Such processors are commonly known as manycore processors. Every desktop computer, server, supercomputer, cell phones, game console (with the Playstation 3 as a prominent representative), notebook, PDA (personal digital assistant) will be based on manycore processors which will be a fundamental turning point for computer architecture and software development. All applications used in industry, commerce, science, entertainment, education and private sectors will have to be parallel and should behave well in ranges between 100 and 10000 cores. Many applications and algorithms will have to be restructured (in many cases at best semi-automatically) if those applications should progress at the same speed as the hardware (increase of cores per processor) is progressing.

The goal of this project is to provide a novel development environment for Java programs that will run on manycore parallel architectures which will cover a wide variety of computers including desktop computers, servers, supercomputers, cell phones, game consoles, notebooks, and PDAs. As part of this project we plan to develop a programming paradigm that allows a programmer to control parallelism, load balancing and locality at a high level of abstraction, and a measurement and instrumentation framework to analyse Java programs.