Parallel and Multicore Computing
Competency Leader
Many developers are faced with the opportunity of increased processing power brought about by the advent of multicore computing. However, in many cases, software based on serial execution is ported as-is to the multicore environment. It may indeed run more quickly than on a single processor, but it fails to exploit more than a fraction of the potential power (Sutter, 2005). Writing directly for multicore or porting serial execution software to multicore is difficult; one of the reasons for this is because the parallel environment is susceptible to subtle variations in processor speed, load balancing, memory latency, the sequence and timing of external interrupts and communications topology (Pancake, 1992). Ideally software should be evolved (automatically if possible) to best utilise all available resources.
Some key questions in this application domain are
- Could critical software be designed to evolve itself in reaction to the dynamic availability of computing resources?
- How might a critical system be refactored according to different levels of parallelisation?
- How might security and reliability be guaranteed in the presence of automatically generated code?
- How can we evolve existing software to exploit multicore and parallel architectures fully?
- What verification and validation approaches are necessary for critical systems in parallel computing?
C. Pancake. Debugger visualization techniques for parallel architectures. In Compcon Spring ’92. Thirty-Seventh IEEE Computer Society International Conference, Digest of Papers., pages 276–284, Feb 1992.
H. Sutter. The free lunch is over: A fundamental turn toward concurrency in software. D. Dobbs Journal, 30(3), Mar. 2005.
Events
- Multi-core and Parallel Computing: The Way of the Future Thu, 20/01/2011 - 12:30pm
- Multi-core & Parallel Computing Tue, 12/10/2010 - 9:00am - 1:00pm






