A+ A A-

COS 501: Frontiers in High Performance Computing and Scientific Visualization

Course Title

Frontiers in High Performance Computing and Scientific Visualization

Course Code

COS 501

Course Type




Instructor’s Name

Giannis Koutsou



Lectures / week

1 (3h)

Laboratories / week


Course Purpose and Objectives

The students will learn fundamental issues in design and development of parallel programs for various types of parallel computers. They will also be introduced to visualization techniques useful in analysis of engineering and scientific data.

Learning Outcomes

Students will be able to develop complex parallel algorithms, to analyze them, and evaluate their efficiency, and be able to deal with problems that require parallelization.



Background Requirements

This course assumes basic programming skills in C or Fortran.

Knowledge in compiling and running self-written and third party code (libraries)

Familiarity with command line tools

Course Content

Parallel architectures and parallel programming models, speedup, efficiency, scalability, linear systems of equations, sparse matrices and graphs, partitioning methods, iterative methods, coloring schemes, incomplete factorizations, domain decomposition and Schwarz iterative methods, preconditioning.

Parallel programming with MPI. In the lecture the basic structure and commands of MPI programs will be taught. As a physical application, simulations of the four-dimensional using model discretized on a lattice will be studied. The division of the lattice among processors will be discussed.

Introduction to scientific visualization: two- and three-dimensional data types; visual representation schemes for scalar, vector, and tensor data; isosurface and volume visualization methods; visual monitoring; interactive steering.

Teaching Methodology

Lectures. Seminars. Case studies. Short Projects.


The course uses several on-line sources for teaching material including:

PRACE PATC on-line training courses

XSEDE on-line training material

Training material from Lawrence Livermore National Laboratory

For GPU programming:

CUDA by Example: An Introduction to General-Purpose GPU Programming, J. Sander and E. Kandort


The following assessment methods will be combined for the final grade:

Homework exercises

In-class exercises

A final examination