Today, parallel computers are appearing on our desktops.
The advent of dual-core and quad-core computers and the expected increase in the number of cores in the coming years, inevitably will cause a major change in our approach to software, such as the software we use in scientific computations. Parallel computers drastically increase our computational capabilities and thus enable us to model more realistically in many application areas.To make efficient use of parallel computers, it is necessary to reorganise the structure of our computational methods. In particular, attention must be paid to the division of work among the different processors solving a problem in parallel and to the communication between them. Suitable parallel algorithms and systems software are needed to realise the capabilities of parallel computers.We will discuss extensively the most recent developments in the area of parallel computers, ranging from multi-core desktop PCs, to clusters of PCs connected by switching devices, to massively parallel computers with distributed memory such as our national supercomputer Huygens at SARA in Amsterdam.The following subjects will be treated:
- Types of existing parallel computers, - Principles of parallel computation: distributing the work evenly, and avoiding communication, - The Bulk Synchronous Parallel (BSP) model as an idealised model, of a parallel computer, - Use of BSPlib software as the basis for architecture-independent programs- Parallel algorithms for the following problems: prime number sieving, LU decomposition, Fast Fourier Transform, sparse matrix-vector, multiplication, iterative solution of linear systems. - Analysis of the computation, communication, and synchronisation time requirements of these algorithms by the BSP model.- Hands-on experience in the laboratory class, using Huygens.