A+ A A-

SDS 417: Advanced Computer Architectures

Course Title

Advanced Computer Architectures 

Course Code

SDS 417

Course Type




Year / Semester

1st / 2nd (subject to change)

Instructor’s Name

Giannis Koutsou



Lectures / week

1 (2h)

Laboratories / week

1 (1h)

Course Purpose and Objectives

To advance understanding of High Performance Computing architectures and teach students to design and optimize algorithms suitable for best performance.  

Learning Outcomes

Students will be taught how to benchmark parallel applications and implement optimization strategies taking into account the underlying computing architecture. 


SDS 402

 Requirements -

Course Content

Advanced HPC architectures: Features of modern HPC hardware including node designs, interconnects, accelerators and multi-core CPUs. Interactions between software performance and the system. Algorithms to make use of particular hardware constraints.

Advanced parallel programming and optimisation: Advanced techniques for programming multi-core computers, programming models (Shared memory and MPI), issues arising from parallel I/O, portable data formats, advanced MPI programming, advanced OpenMP programming, floating-point and memory optimizations (vector intrinsics, memory storage layouts), accelerator programming (GPUs, Xeon Phi). Methods to analyse the performance of largescale numerical software on parallel computers, models describing the scaling features of software, comparison to real performance data from multi-core systems.

Applications: As demonstration of the methodology these techniques will be applied to examples from the physical sciences and engineering by engaging the appropriate experts and utilizing existing optimized libraries. 

Teaching Methodology

Lectures, exercises


Edward Kandrot and Jason Sanders, “CUDA by example”, ISBN-13: 9780131387683

J. Hennessey, D. Patterson "Computer Architecture: a quantitative approach” 5th edition, Morgan-Kaufmann Publishers.  


25% coursework, 75% exam



Publications & Media