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
- More infoCoursepage on website of Tallinn University of Technology
- Contact a coordinator
- CreditsECTS 6
- LevelMaster
- Contact hours per week4
- InstructorsHeiko Jens Herrmann
- Mode of instructionHybrid
Offering(s)
Start date
3 February 2025
- Ends16 June 2025
- Term *Spring semester 2025
- Instruction languageEnglish
- Register between29 Oct - 29 Nov 2024
Enrolment openApply now