course aims in Estonian
Anda ülevaade teadusarvutuste kontseptsioonist ja põhilistest meetoditest.
course aims in English
Teach core concepts and methods of scientific computing.
learning outcomes in the course in Est.
Kursuse läbinud üliõpilane:
- tunneb ära keerukad probleemid;
- vastavalt probleemile oskab valida sobiva numbrilise meetodi;
- vastavalt probleemile oskab valida sobiva programmeerimiskeele;
- vastavalt probleemile oskab valida sobiva riistvara;
- oskab kirjutada ja arendada paralleelarvutuste programmi;
- dokumenteerida arvutusi ja saadud tulemusi.
learning outcomes in the course in Eng.
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.
brief description of the course in Estonian
Kursuses antakse ülevaade suure tootlikkusega arvutiklastrites (HPC) kasutatavast riistavarast, programmeerimiskeeltest, numbrilistest arvutusmeetoditest ja tutvustada neile reprodutseeritavuse mõistet.
Vaadatakse järgmisi teemasid:
- programmeerimise kirjaoskus, reprodutseeritav uurimus
- HPC ja teadusarvutuste põhilised aspektid (riistvara, Amdahl’i seadus)
- ülevaade numbrilistest meetoditest: FEM, CFD, osakestel baseeruvad meetodid, iteratiivsed meetodid lineaarsete võrrandisüsteemide jaoks
- paralleelarvutus: OpenMP, MPI, optimeerimine
- võidujooks andmetele, vastastikune blokeering ja muud paralleelarvutuste juures varitsevad lõksud ning nende ülesleidmise meetodid
Ülesandeid, projekte ja kodutöid tehakse paarides, võimalusel moodustatakse paariderinevate erialade üliõpilastest.
brief description of the course in English
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.
type of assessment in Estonian
-
type of assessment in English
-
independent study in Estonian
-
independent study in English
-
study literature
* 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
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):