EduXchange.EU

Scientific Computing

YFX1510
Physics and Energy

About this course

The course „Scientific Computing“ will present an overview of HPC hardware, programming languages and numerical methods for different problems, and introduce the student to reproducibility. List of topics:

  • literate programming, reproducible research

  • general aspects of HPC and Scientific Computing (hardware, Amdahl's law)

  • overview of numerical methods: FEM, CFD, particle based methods, iterative methods for systems of linear equations

  • parallel programming: OpenMP, MPI, optimization

  • data races, deadlocks and other parallel-programming pitfalls and finding these Exercises, project and homeworks will be solved in groups of two, preferably the groups are composed of students of different curricula.

NB! This course will take place in spring semester 2024/2025 which starts on 3rd of February and ends on 16th of June (you can find that information under Start date section). The real course start and end dates will be announced at the beginning of February at the latest.

Learning outcomes

The student is able to:

  • recognize complex problems;
  • choose suitable numerical method;
  • choose suitable programming language;
  • choose suitable computer architecture;
  • write and debug simple parallel code;
  • document the simulation and results in a reproducible way.

Examination

Final assessment can consist of one test/assignment or several smaller assignments completed during the whole course. After declaring a course the student can re-sit the exam/assessment once. Assessment can be graded or non-graded. For specific information about the assessment process please get in touch with the contact person of this course. For specific information about grade transfer please contact your home university

Course requirements

knowledge of linear algebra, analysis, basic programming skills

Resources

  • * Reprocible research: http://ropensci.github.io/reproducibility-guide/
  • Bathe: Finite Element Procedures ISBN-13: 978-0979004957
  • * Alberty, Carstensen, Funken: Remarks around 50 lines of Matlab: short finite element implementation, Numer. Algorithms, volume 20, 1999 https://www.math.hu-berlin.de/~cc/cc_homepage/download/1999-AJ_CC_FS-50_Lines_of_Matlab.pdf
  • * Grossmann, Roos, Stynes: Numerical Treatment of Partial Differential Equations ISBN 978-3-540-71584-9
  • * Eymard, Galloyet, Herbin: Finite Volume Methods https://www.cmi.univ-mrs.fr/~herbin/PUBLI/bookevol.pdf
  • * Leveque: Finite Volume Methods For Hyperbolic Problems https://archive.org/details/FiniteVolumeMethodsForHyperbolicProblemsRandallJ.Leveque
  • * Saad: Iterative methods for sparse linear systems http://www-users.cs.umn.edu/~saad/books.html
  • * Parlante: Essential C: http://cslibrary.stanford.edu/101/EssentialC.pdf
  • * Burch: C for Python Programmers: http://www.toves.org/books/cpy/
  • * Jorgensen: Introduction to Programming using Fortran 95/2003/2008 http://www.egr.unlv.edu/~ed/fortranv3.pdf
  • * MPI standard: http://mpi-forum.org/docs/
  • * OpenMP: http://www.openmp.org/specifications/
  • * OpenCL: https://www.khronos.org/registry/OpenCL/
  • * Valgrind manual: http://valgrind.org/docs/manual/manual.html
  • * Eijkhout: Introduction to High-Performance Scientific Computing Lulu 2015 ISBN 978-1-25799-254-6

Activities

lectures, exercises

Additional information

  • Credits
    ECTS 6
  • Level
    Master
  • Contact hours per week
    4
  • Instructors
    Heiko Jens Herrmann
  • Mode of instruction
    Hybrid
If anything remains unclear, please check the FAQ of TalTech (Estonia).

Offering(s)

  • Start date

    3 February 2025

    • Ends
      16 June 2025
    • Term *
      Spring semester 2025
    • Instruction language
      English
    Enrolment period closed
These offerings are valid for students of EPFL (Switzerland)