Introduction to Programming Multicores
Already our technology is able to accommodate hundreds of cores on a single chip. The embedded market is already embracing this but the wider market is back-peddling. There is no doubt however that these markets will converge and that the processor will become the new building block of our chips and systems. The big problem problem however, will be in turning this technology into large complex systems. There are no lack of contenders for concurrent programming languages but the problem with most paradigms is that they mix algorithmic and concurrency engineering and do little to promote safe and composable parallel programs. The question that must be asked is whether there are programming models or combinations of models that are ubiquitous enough to form the basis for a co-ordinated solution to the problems of programming MPSOC. This special session has succeeded in bringing bringing together a number of key researchers working in the area of programming models for the next generation of complex systems based on multi- and many-core chips. Collectively they are developing models, languages and compilers to enable a paradigm shift in this important area. The scope of the contributions will cover deterministic approaches, such as functional languages and data-parallel languages as well as extracting concurrency from sequential code. In addition, a number of new co-ordination languages will be presented that range from static to dynamic mapping of components to resources. These are challenging problems but we are pleased to present some significant progress from invited and contributed papers in this session.