151-0107-20L  High Performance Computing for Science and Engineering (HPCSE) I

SemesterAutumn Semester 2021
LecturersP. Koumoutsakos, S. M. Martin
Periodicityyearly recurring course
Language of instructionEnglish



Courses

NumberTitleHoursLecturers
151-0107-20 GHigh Performance Computing for Science and Engineering (HPCSE) I
Lecture: 12-14h
Exercises: 14-16h
4 hrs
Fri12:15-14:00ML H 44 »
14:15-16:00ML H 44 »
P. Koumoutsakos, S. M. Martin

Catalogue data

AbstractThis course gives an introduction into algorithms and numerical methods for parallel computing on shared and distributed memory architectures. The algorithms and methods are supported with problems that appear frequently in science and engineering.
Learning objectiveWith manufacturing processes reaching its limits in terms of transistor density on today’s computing architectures, efficient utilization of computing resources must include parallel execution to maintain scaling. The use of computers in academia, industry and society is a fundamental tool for problem solving today while the “think parallel” mind-set of developers is still lagging behind.

The aim of the course is to introduce the student to the fundamentals of parallel programming using shared and distributed memory programming models. The goal is on learning to apply these techniques with the help of examples frequently found in science and engineering and to deploy them on large scale high performance computing (HPC) architectures.
Content1. Hardware and Architecture: Moore’s Law, Instruction set architectures (MIPS, RISC, CISC), Instruction pipelines, Caches, Flynn’s taxonomy, Vector instructions (for Intel x86)

2. Shared memory parallelism: Threads, Memory models, Cache coherency, Mutual exclusion, Uniform and Non-Uniform memory access, Open Multi-Processing (OpenMP)

3. Distributed memory parallelism: Message Passing Interface (MPI), Point-to-Point and collective communication, Blocking and non-blocking methods, Parallel file I/O, Hybrid programming models

4. Performance and parallel efficiency analysis: Performance analysis of algorithms, Roofline model, Amdahl’s Law, Strong and weak scaling analysis

5. Applications: HPC Math libraries, Linear Algebra and matrix/vector operations, Singular value decomposition, Neural Networks and linear autoencoders, Solving partial differential equations (PDEs) using grid-based and particle methods
Lecture noteshttps://www.cse-lab.ethz.ch/teaching/hpcse-i_hs21/
Class notes, handouts
Literature• An Introduction to Parallel Programming, P. Pacheco, Morgan Kaufmann
• Introduction to High Performance Computing for Scientists and Engineers, G. Hager and G. Wellein, CRC Press
• Computer Organization and Design, D.H. Patterson and J.L. Hennessy, Morgan Kaufmann
• Vortex Methods, G.H. Cottet and P. Koumoutsakos, Cambridge University Press
• Lecture notes
Prerequisites / NoticeStudents should be familiar with a compiled programming language (C, C++ or Fortran). Exercises and exams will be designed using C++. The course will not teach basics of programming. Some familiarity using the command line is assumed. Students should also have a basic understanding of diffusion and advection processes, as well as their underlying partial differential equations.

Performance assessment

Performance assessment information (valid until the course unit is held again)
Performance assessment as a two-semester course together with 151-0116-00L High Performance Computing for Science and Engineering (HPCSE) for CSE (next semester)
For programme regulations
(Examination block)
Bachelor's Degree Programme in Computational Science and Engineering 2016; Version 27.03.2018 (Examination Block Core Courses)
Bachelor's Programme in Computational Science and Engineering 2012; Version 13.12.2016 (Examination Block Core Courses)
ECTS credits11 credits
Performance assessment as a semester course (other programmes)
ECTS credits4 credits
ExaminersP. Koumoutsakos, S. M. Martin
Typesession examination
Language of examinationEnglish
RepetitionThe performance assessment is offered every session. Repetition possible without re-enrolling for the course unit.
Mode of examinationwritten 180 minutes
Additional information on mode of examinationComputer based examination involving theoretical questions and coding problems. Parts of the lecture documents and other materials will be made available online during the examination.
Written aidsYou are allowed to bring a HANDWRITTEN summary of 4 A4 sheets, written on the front and back pages (8 pages total). Photocopies are not allowed.
Digital examThe exam takes place on devices provided by ETH Zurich.
Distance examinationIt is not possible to take a distance examination.
If the course unit is part of an examination block, the credits are allocated for the successful completion of the whole block.
This information can be updated until the beginning of the semester; information on the examination timetable is binding.

Learning materials

No public learning materials available.
Only public learning materials are listed.

Groups

No information on groups available.

Restrictions

There are no additional restrictions for the registration.

Offered in

ProgrammeSectionType
Doctoral Department of Mechanical and Process EngineeringDoctoral and Post-Doctoral CoursesWInformation
Computer Science BachelorElectivesWInformation
Mechanical Engineering MasterEnergy, Flows and ProcessesWInformation
Mechanical Engineering MasterMechanics, Materials, StructuresWInformation
Mechanical Engineering MasterRobotics, Systems and ControlWInformation
Mechanical Engineering MasterMicro & NanosystemsWInformation
Mechanical Engineering MasterBioengineeringWInformation
Micro- and Nanosystems MasterModelling and SimulationWInformation
Physics MasterGeneral ElectivesWInformation
Computational Science and Engineering BachelorModule AWInformation
Robotics, Systems and Control MasterCore CoursesWInformation
Process Engineering MasterCore CoursesWInformation