Numerický software
Přednášející:
Doc. Ing. Jiří Fürst, PhD. Ústav technické matematiky, FS ČVUT v Praze Karlovo nám. 13 121 35 Praha 2 místnost D301
Plán předmětu
1 Využití cache při numerických výpočtech
- referenční implementace http://www.netlib.org/blas
- optimalizované implementace ATLAS (http://math-atlas.sourceforge.net/ ), GOTO BLAS (http://www.tacc.utexas.edu/tacc-projects/) a MKL (www.intel.com)
- násobení matic pomocí knihovny BLAS
- Příklady:
- Fortran: dgemm-blas.f, měření času second.c,
- C s voláním knihovny ve Fortranu: dgemm-blas.c, second.c, second.h
3 Knihovna LAPACK
- řešení úloh lineární algebry s plnými maticemi
- referenční implementace http://www.netlib.org/lapack
- Příklady:
- řešení soustavy rovnic pomocí jednoduchého driveru lin-lap.cpp, matice soustavy je souboru p1000.
- řešení soustavy rovnic pomocí expertního driveru lin-lapx.cpp, matice soustavy je souboru p1000.
4 Knihovna ScaLAPACK
- paralelní verze LAPACKu
- referenční implementace http://www.netlib.org/scalapack
- Příklady:
5 Knihovna UMFPACK
- http://www.cise.ufl.edu/research/sparse/umfpack/
- přímé řešení soustav lineárních rovnic a řídkou maticí
- Příklady:
- řešení malé soustavy rovnic umfpack-simple.c
- řešení soustavy rovnic s maticí bcsstk23.mtx example.cpp.
6 Knihovna METIS
- http://glaros.dtc.umn.edu/gkhome/views/metis
- distribuci řídkých matic nebo sítí na jednotlivé uzly paralelních počítačů
- spektrální bisekce grafu, rekurentní spektrální bisekce
7 Knihovna PETSc
- http://www.mcs.anl.gov/petsc/
- toolkit pro numerické řešení úloh převážně popsaných pomocí parciálních diferenciálních rovnic
7.1 Moduly Vec a Mat
- pro práci s distribuovanými poli a maticemi
7.2 Modul KSP
- iterační řešeni soustav lineárních rovnic
- Příklady:
- Řešení soustavy rovnic na jednom procesoru mala-matice.c
- Paralelní řešení soustavy rovnic velka-matice.c
- Paralelní řešení Poissonovy rovnice s homogenní Dirichletovou okrajovou podmínkou na hranici pomocí metody konečných prvků: fem.cpp, makefile, ctverec.2.node,ctverec.2.ele.
7.3 Modul DA
- práce s daty na strukturovaných sítích
- Příklady:
- Rozostření obrázku pomocí parabolické rovnice blur.cpp
7.4 Modul SNES
- řešení nelineárních algebraických rovnic
7.5 Modul TS
- řešení obyčejných diferenciálních rovnic
- Příklady:
- Rozostření obrázku pomocí parabolické rovnice blur-ts.cpp
8 Softwarový balík OpenFOAM
- http://www.openfoam.org
- knihovna pro řešení PDR metodou konečných objemů
- obsahuje řadu hotových kódů převážně pro CFD
Požadavky k zápočtu
Zápočty se udělují v zápočtovém týdnu zimního semestru FJFI, nejpozději však do konce zimního zkouškového období. Podmínkou udělení zápočtu je účast na přednáškách a samostatné vypracování jedné z níže uvedených zápočtových úloh.
Zápočtové úlohy
Budou zveřejněny v průběhu semestru.