õppeaine eesmärgid eesti k
Anda ülevaade teadusarvutuste kontseptsioonist ja põhilistest meetoditest.
õppeaine eesmärgid inglise k
Teach core concepts and methods of scientific computing.
õppeaine õpiväljundid eesti k.
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.
õppeaine õpiväljundid ingl k.
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.
õppeaine sisu lühikirjeldus eesti k
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.
õppeaine sisu lühikirjeldus ingl k
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.
õppekirjandus
* 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
õppevormid ja mahud
päevaõpe: nädalatunnid
4.0
sessioonõppe töömahud (semestris):