Course Lecturers: Prof. Mikel Lujan
IntroductionQuad-core and octo-core processors are now becoming commonplace as circuit limits are reached which prevent further performance gains from simple clock-speed increases. Major industrial projections expect processors with hundreds of cores within a few years. But, current hardware architectural approaches are not applicable to the scale of these future processors. In addition, programming techniques, required to write general purpose parallel programs to make effective use of these systems, are regarded as inadequate. These are therefore very active research areas and there are a number of different but inter-related directions being explored. The purpose of this course unit is to study that research by a combination of directed reading and practical experimentation with state-of-the art multi-core hardware, simulators of research systems and novel language implementations.
Is this course right for you?We aim to study the technological issues which will determine both the future hardware architecture and the programming techniques which will be necessary to extract performance from multi-core processors. We will examine the limitations of current approaches and study in detail those areas of research which are most likely to provide solutions.
You will enjoy this course if you are interested in either computer architecture, systems software, concurrency or in doing research. The labs will require that you are competent in Java.