TANA77 Programming of Parallel Computers, scientific computations, ECTS-points
/PROGRAMMERING AV PARALLELLDATORER, TEKNISKA BERÄKNINGAR/

Advancement level:
D

Aim:
To give knowledge about methods and languages for programming of parallel computer architectures, and ability to program such computers. The course should demonstrate how parallel computers can be used in some applications, in particular scientific computations, but also, to some extent, embedded systems and image analysis.

Prerequisites:
Basic courses in programming and numerical methods. Fortran (TANA 70) is recommended.

Course content:
The architecture of parallel computer systems: memory hierarchies, shared memory and distributed memory. Vector instructions. Parallel execution models and languages. Performance measurement and enhancement. Message passing and data parallel programming. Principles of data parallel languages. Time complexity. Scalability. Scheduling of parallel programs. Vectorization and parallelization of serial codes. Suppport systems for parallel programs. MPI (Message Passing Interface). Error detection and performance measurement tools for parallel computers. Basic numerical algorithms, BLAS (Basic Linear Algebra Subprograms). Distribution of matrices for parallel solution of linear systems of equations. Application areas for parallel programming depend on the choice of course variant. The computer laboratory course gives practical knowledge about programming of parallel computers, both data parallel, message passing and shared memory based programming. For data paralle programming the 16384 processor MASPAR computer at NSC is used. The 128 processor Parsytec computer is used for message passing programming. For shared memory programming the supercomputer at NSC is used.

TEN 1Written examination
LAB 1Labratory work
Course language is Swedish.