Parallel and distributed computing in the 1980s and 1990s had great in?uence onapplication developmentin science, engineering andbusiness computing. The improvements in computation and communication capabilities have enabled the creation of demanding applications in critical domains such as the environment, health, aerospace, and other areas of science and technology. Similarly, new classesofapplicationsareenabledbytheavailabilityofheterogeneouslarge-scale distributed systems which are becoming available nowadays (based on techno- giessuchasgridandpeer-to-peersystems).Parallelcomputingsystemsexploita large diversity of computer architectures, from supercomputers, shared-memory or distributed-memory multi processors, to local networks and clusters of p- sonal computers. With the recent emergence of multi core architectures, parallel computing is now set to achieve "mainstream" status. Approaches that have been advocated by parallelcomputing researchersin the past are now being utilized in a number of software libraries and hardware systems that are available for everyday use. Parallel computing ideas have also come to dominate areas such as multi user gaming (especially in the development of gaming engines based on "cell" arc- tectures) - often ignored by many "serious" researchers in the past, but which now are set to have a growing user base of tens of millions across the world. In recent years, focus has also shifted to support energy e?ciency in com- tation, with some researchers proposing a new metric of performance based on Flops/Watt.