Poˇ c´ıtaˇ ce, hardware Poˇ c´ıtaˇ c = stroj manipuluj´ıc´ı s daty (v´ ypoˇ cty) podle sady zadan´ych instrukc´ı (programu). Historie: • od 1200: Prvn´ı mechanick´a programovateln´a zaˇr´ızen´ı: orloje demonstruj´ıc´ı dr´ahu mˇes´ıce/planet, otv´ıraˇce dveˇr´ı. • od 1600: Mechanick´e kalkul´atory (neprogramovateln´e). • od 1800: Programovateln´e tkalcovsk´e stavy: tkan´e vzory na pap´ırov´ych kartiˇck´ach. • 1936: Formalizace algoritm˚ u a v´ypoˇctu – A. Turing. • 1946: Prvn´ı obecn´y (nespecializovan´y) elektronick´y programovateln´y poˇc´ıtaˇc: ENIAC (Electronic Numerical Integrator And Computer). Vyroben´y pro US Army, v´ypoˇcty trajektori´ı stˇrel a vod´ıkov´a bomba. • pot´ e: V´yvoj tranzistor˚ u (60. l´eta) a integrovan´ych obvod˚ u (70. l´eta) vedl k rozvoji dom´ac´ıch (osobn´ıch) poˇc´ıtaˇc˚ u (80. l´eta). • dnes: S rozˇs´ıˇren´ım internetu jsou poˇc´ıtaˇce stejnˇe rozˇs´ıˇren´e, jako televize nebo praˇcky. Plnohodnotn´e poˇc´ıtaˇce ve spoustˇe zaˇr´ızen´ı, napˇr. v telefonech. Nejd˚ uleˇ zitˇ ejˇ s´ı ˇ c´ asti poˇ c´ıtaˇ ce: • Z´ akladn´ı deska – hlavn´ı ˇc´ast poˇc´ıtaˇce, propojuj´ıc´ı jeho jednotliv´e komponenty: socket(y) pro procesor(y), sloty pro pamˇeti, konektory nap´ajen´ı a ˇradu vnitˇrn´ıch (IDE, SATA) a vnˇejˇs´ıch rozhran´ı (sloty pro rozˇsiˇruj´ıc´ı karty, USB). Dalˇs´ı zaˇr´ızen´ı na desce: chipset, BIOS, gener´ator ˇcasu pro synchronizaci, . . . . • CPU (Central Processing Unit) = procesor, prov´ad´ı instrukce k´odu a t´ım vlastn´ı v´ypoˇcet. Modern´ı procesory – v´ıce v´ypoˇcetn´ıch jader v jednom ˇcipu. • Operaˇ cn´ı pamˇ et’ (RAM) – doˇcasn´a pamˇet’ pro k´od programu a jeho data. • Pevn´ y disk – permanentn´ı pamˇet’, obsahuje ot´aˇciv´e plotny s magneticky zaznamenan´ymi daty (citlivost na otˇresy, magnetick´e pole).
1
Slot for Graphic Card
Memory Slots
Memory Bus
CPU
Graphic Bus (AGP, PCIe)
Front Bus
CLOCK
CHIPSET PCI Bus
BIOS
I/O
2
IDE SATA USB
Serial Port Parallel Port Keyboard Mouse
Cables
LPC Bus
PCI Slots
Hierarchie pamˇ eti: • registry: nejrychlejˇs´ı pamˇet’ slouˇz´ıc´ı pro vlastn´ı prov´adˇen´ı instrukc´ı procesoru, kaˇzd´y registr ≈ des´ıtky b. • cache na procesoru: buffer mezi extr´emnˇe rychl´ymi registry a pomalejˇs´ı pamˇet´ı, vˇetˇsinou nˇekolik u ´rovn´ı, ≈ jednotky MB. • RAM (Random Access Memory): hlavn´ı operaˇcn´ı pamˇet’, relativnˇe rychl´a, ˇz´adn´e pohybliv´e mechanick´e ˇc´asti, pro uloˇzen´ı k´odu programu a jeho dat bˇehem jeho vykon´av´an´ı, ≈ jednotky-des´ıtky GB. • cache disku: opˇet buffer, tentokr´at mezi relativnˇe rychlou RAM a pomalejˇs´ım diskem, ≈ des´ıtky MB. • disk (HDD nebo SSD): velk´a st´al´a pamˇet’ (tj, pˇri vypnut´ı poˇc´ıtaˇce se nevymaˇze), slouˇz´ı pro uloˇzen´ı operaˇcn´ıho syst´emu, program˚ u, a dat, kter´a se aktu´alnˇe nepouˇz´ıvaj´ı, ≈ stovky GB – jednotky TB. • dalˇ s´ı (pomal´ e) pamˇ eti: magnetick´e jednotky (diskety, p´askov´e jednotky, LS-120 (120 MB), ZIP (100-250 MB), JAZ (1-2 GB)), optick´e jednotky (CD (700 MB), DVD (4.5 GB), BlueRay (25/50 GB, do budoucna aˇz 5TB)).
3
4
Superpoˇ c´ıtaˇ ce Neust´al´y r˚ ust v´ykonu poˇc´ıtaˇc˚ u (Moore˚ uv z´ akon – zdvojn´asoben´ı v´ykonu, pamˇeti, poˇctu tranzistor˚ u, . . . kaˇzd´e zhruba 2 roky ⇒ exponenci´aln´ı r˚ ust. Prvn´ı superpoˇc´ıtaˇce: Cray, d´ale IBM, HP, souˇcasn´y trend – clustery (jednotliv´e poˇc´ıtaˇce propojen´e ultra-rychlou s´ıt´ı do jednoho superpoˇc´ıtaˇce), distribuovan´e v´ypoˇcty. Nejrychlejˇ s´ı poˇ c´ıtaˇ ce: www.top500.org. Pˇred 7 roky nejrychlejˇs´ı stroj: IBM Roadrunner (LANL) – prvn´ı superpoˇc´ıtaˇc, kter´y pˇres´ahl 1 petaflop. Simulace souvisej´ıc´ı s jadernou bezpeˇcnost´ı. Cluster, kombinace procesor˚ u Opteron a PowerXCell – energetick´a u ´spornost. Demontov´an. Pˇred 6 roky nejrychlejˇs´ı – Jaguar (ORNL) – open vˇedeck´e simulace, vˇsechna odvˇetv´ı. Masivnˇe paraleln´ı stroj, procesory Opteron. 2012 pˇrejmenov´an na Titan, rozˇs´ıˇren o GPU – dostal se zpˇet do popˇred´ı (dnes 3. m´ısto), 18 petaflops. Pˇred 5 roky: K computer (AICS, Japonsko) – 11 petaflops, procesory SPARC64 (500 000 jader), vˇedeck´e simulace – l´eky, pr˚ umyslov´e simulace, materi´aly, ˇs´ıˇren´ı nemoc´ı, astrofyzika, . . . Dnes 5. m´ısto. Pˇred 4 roky: IBM Sequoia BlueGene/Q (LLNL) – 17 petaflopf, 1 500 000 jader v 18-j´adrov´ych PowerPC procesorech (Apple/IBM/Motorola). Velk´y d˚ uraz na spotˇrebu energie. Simulace st´arnut´ı jadern´ych zbran´ı – bez test˚ u. Dnes 4. m´ısto. ˇ ına, 34 petaflop, 3 120 000 jader, Pˇred 3 roky: Tianhe-2 (MilkyWay-2) – NUDT C´ procesory Intel Xeon. Cluster, 16 000 nod˚ u po pˇribliˇznˇe 200 j´adrech + pˇribliˇznˇe 100 GB pamˇeti. V´yzkum, v´yuka a n´arodn´ı bezpeˇcnost. Dalˇs´ı 2 roky: st´ale Tianhe-2. Dnes 2. m´ısto. ˇ ına, 93 petaflop, v´ıce neˇz 10 000 Od letoˇsn´ıho ˇcervna: TaihuLight – NRCPC C´ 000 jader. 41 000 nod˚ u, v kaˇzd´em jeden procesor SW26010 o 256 j´adrech. Celkem 1.31 pB pamˇeti, jeden z energeticky nejefektivnˇejˇs´ıch. Simulace klimatu a poˇcas´ı + inˇzen´yrsk´e aplikace. High-Performance Computing (HPC) – aplikace na celou ˇradu fyzik´aln´ıch a technick´ych probl´em˚ u. Cel´a ˇrada probl´em˚ u a v´yzev: • Spotˇreba elektrick´e energie (pˇr´ıkon tis´ıc˚ u kW) ⇒ finanˇcnˇe n´aroˇcn´e stroj nejen postavit, ale i provozovat. • Chlazen´ı – veˇsker´y v´ykon je tˇreba uchladit – jedna z nejn´aroˇcnˇejˇs´ıch v´yzev. Klimatizace – dalˇs´ı v´yznamn´e finanˇcn´ı n´aklady. 5
• Bottlenecks – hlavnˇe komunikace (ˇcek´an´ı na data napoˇc´ıtan´a jin´ym procesorem) a load balancing (pˇridˇelen´ı stejnˇe n´aroˇcn´e ˇc´asti probl´emu procesor˚ um). • Speci´aln´ı software – standardn´ı s´eriov´y program nebude dostateˇcnˇe efektivn´ı (nestaˇc´ı “paraleln´ı pˇrekladaˇc”, je tˇreba optimalizace na u ´rovni k´odu). • Sign´al se m˚ uˇze pohybovat maxim´alnˇe rychlost´ı svˇetla. Pro velk´e superpoˇc´ıtaˇce (zab´ıraj´ıc´ı cel´e budovy) jsou vzd´alenosti des´ıtky metr˚ u a ˇcas komunikace nem˚ uˇze nem˚ uˇze klesnout pod pˇr´ısluˇsnou hodnotu. • Vstup/v´ystup – potˇreba naˇc´ıst/uloˇzit obrovsk´e mnoˇzstv´ı dat bˇehem kr´atk´e doby, nav´ıc distribuovan´a data. Operaˇ cn´ı syst´ emy: dˇr´ıve naprost´a dominance (≈ 95%) komerˇcn´ıch UNIX˚ u, dnes dominuj´ı (≈ 90%) r˚ uzn´e distribuce Linuxu, komeˇcn´ı UNIXy ≈ 5%. Programovac´ı jazyky: t´emˇeˇr v´yhradnˇe C/C++ a Fortran, vyuˇz´ıvaj´ıc´ı speci´aln´ı knihovny pro paraleln´ı sd´ılen´ı dat (PVM, MPI, OpenMP).
Programovac´ı jazyky Programovac´ı jazyk = umˇel´y jazyk popisuj´ıc´ı poˇc´ıtaˇci, co m´a dˇelat. Vhodn´y k algoritmizaci – kaˇzd´y jazyk na jin´e u ´rovni. Strojov´y k´od, assembler, high-level jazyky. Zhruba 30 let od FORTRAN66 (Formula Translator) – dominance FORTRANu (66 a 77) na vˇedeck´e v´ypoˇcty. Posledn´ı dek´ada – potˇreba dynamick´ych datov´ych struktur a paraleln´ıho poˇc´ıt´an´ı ⇒ FORTRAN90/95 a C/C++. Dodnes vˇetˇsina k´od˚ u pro poˇc´ıtaˇcovou fyziku ve Fortranu. Jazyky pro vˇedeck´e v´ypoˇcty mus´ı b´yt hlavnˇe rychl´e a snadno modifikovateln´e, testovateln´e a debugovateln´e. Pˇ rehled jazyk˚ u pro vˇ edeck´ e v´ ypoˇ cty: • Fortran77: Designov´an pro vˇedeck´e v´ypoˇcty (jednoduch´y, rychl´y, robustn´ı, pˇr´ımoˇcar´y). Cel´a ˇrada matematick´ych operac´ı v knihovn´ach – za dlouh´a l´eta odladˇen´e – spolehliv´e a rychl´e. Nev´yhody: funkce pro flow control, input/output a pr´aci s textem jsou zastaral´e a jejich pouˇzit´ı je kostrbat´e. • Fortran90: Rozˇs´ıˇren´ı F77 o “modern´ı” vlastnosti: dynamick´a data, struktury, objekty.
6
• Fortran95: Revize F90 + podpora paraleln´ıho k´odu, automatick´a dealokace, . . . • C: P˚ uvodnˇe vyvinut pro computer science (psan´ı operaˇcn´ıho syst´emu), extr´emnˇe flexibiln´ı a mocn´y jazyk. Nebyl vyvinut jako vˇedeck´y jazyk ⇒ chyb´ı napˇr. komplexn´ı aritmetika. Obsahuje ˇradu low-level funkc´ı, napˇr. pˇr´ım´y pˇr´ıstup do pamˇeti nebo bitov´e operace. Nepohodln´a implementace pol´ı, ˇcasto generuj´ıc´ı chyby v k´odu. D´ıky low-level funkc´ım lze ps´at extr´emnˇe rychl´y k´od (m´enˇe pˇrehledn´y). • C++: Rozˇs´ıˇren´ı C o objekty + nˇekter´e dalˇs´ı uˇziteˇcn´e funkce. • Python: Skriptovac´ı objektov´y interpretovan´y programovac´ı jazyk, snadno propojiteln´y s funkcemi implementovan´ymi ve Fortranu/C, pˇredkompiloˇ van´ymi. Ide´aln´ı pro tvorbu mainu. Rada modul˚ u umoˇzn ˇuj´ıc´ıch pˇr´ımou vizualizaci, uˇzivatelsk´a rozhran´ı, nebo matematick´e knihovny (lin. algebra, optimizace, ODEs, statistika, . . . ). Vizualizace inspirovan´a Matlabem. Pokroˇcil´a syntaxe, napˇr. a, b = b, a. • Java: Nejnovˇejˇs´ı jazyk, SUN. JavaScript (6= Java) = skriptovac´ı jazyk, jednoduch´e progr´amky (applety) souˇc´ast´ı webov´ych str´anek, interpretov´any browserem. Java = standardn´ı jazyk, pro programy i applety. Nez´avisl´y na platformˇe: pˇreklad do byte k´odu, kter´y je interpretov´an pomoc´ı Java Virtual ˇ Machine (JVM). Casto pouˇz´ıv´an v telefonech, MP3 pˇrehr´avaˇc´ıch a podobn´ych nestandardn´ıch poˇc´ıtaˇc´ıch. Syntaxe pˇrevzat´a z C++, vˇse objektov´e. Pˇr´ımo z k´odu lze pˇristupovat na internet, zobrazovat obr´azky, a prov´adˇet dalˇs´ı high-level u ´kony. JVM ⇒ pomalejˇs´ı ⇒ n´aroˇcn´e ˇc´asti k´odu ˇcasto v C/C++ a vol´any z Javy. • Matlab: MATrix LABoratory, high-level interpretovan´y programovac´ı jazyk, The MathWorks. S´ıla hlavnˇe v pr´aci s vektory a maticemi, napˇr. x=[0:1/100:2*pi];plot(x,sin(x));. Intuitivn´ı, snadno pouˇziteln´y, lze ˇ snadno debugovat, na druhou stranu pomal´y (interpretovan´y). Casto pouˇz´ıvan´y pro jednoduch´e v´ypoˇcty (kde nevad´ı pomalejˇs´ı bˇeh) a pro vizualizaci. D˚ uvody pro preferov´ an´ı FORTRANu (pˇ red C) pro vˇ edeck´ e v´ ypoˇ cty: • Variabiln´ı rozmˇery pol´ı pˇred´avan´ych jako parametry funkc´ı. • Bohat´y v´ybˇer funkc´ı pro matematick´e operace, silnˇe optimalizovan´e (napˇr. v C standardnˇe nejsou ani funkce pro min a max). • Libovoln´e indexy pol´ı, v C vˇzdy [0..N-1] ⇒ nepohodln´e. • Fortran90 umoˇzn ˇuje operace s vektory/maticemi jako v Matlabu (odpadaj´ı cykly ⇒ pˇrehlednost, nav´ıc efektivnˇe implementov´ano).
7
• Fortran90 zahrnuje ˇradu vlastnost´ı C/C++, kter´e dˇr´ıve chybˇely (ukazatele, dynamick´a pole, objekty, . . . ). • Rychlost (standardnˇe nejsou ukazatele, pevn´a velikost pol´ı, pˇred´av´an´ı ukazatelem, . . . ) – snadnˇejˇs´ı automatick´a optimalizace pˇrekladaˇcem. • Jednoduˇsˇs´ı pro ne-experty – v C nutn´a orientace v ukazatel´ıch, dereferencov´an´ı, pamˇeti, . . . Obecnˇe niˇzˇs´ı potˇreba CS znalost´ı. Fortran90 bohat´y, vˇsechny tyto vˇeci taky obsahuje, ale zpˇetnˇe kompatibiln´ı ⇒ pˇreloˇz´ı i k´od ve F77, ˇcili pokud nen´ı potˇreba nˇeco speci´aln´ıho, nen´ı se tˇreba ˇz´adn´e komplikace uˇcit. • V C je veˇsker´a matematika jen v double, ve Fortranu zvl´aˇstˇe implementov´ana i v single (rychlejˇs´ı) a quadruple (pˇresnˇejˇs´ı). • Robustnost k´odu (nen´ı case sensitive, nejsou rezervovan´e promˇenn´e, 1 pˇr´ıkaz na ˇr´adku, automatick´e linkov´an´ı matematiky – v C potˇreba -lm, . . . ), obecnˇe lepˇs´ı chybov´a diagnostika pˇrekladaˇce. C/C++ vhodnˇejˇs´ı v pˇr´ıpadˇe jin´eho pouˇzit´ı (syst´emov´e programov´an´ı, ovladaˇce hardwaru).
Pˇ rekladaˇ ce ˇ Pˇreklad zdrojov´eho k´odu na spustitelnou bin´arku. Rada pˇrekladaˇc˚ u r˚ uzn´ych programovac´ıch jazyk˚ u pro r˚ uzn´e platformy, komerˇcn´ı i volnˇe dostupn´e. Vˇetˇsinou (nen´ı pravidlem) cel´e prostˇred´ı na Windows, vˇcetnˇe editoru, debuggeru, profileru, . . . , zat´ımco na UNIXu/Linuxu jsou pˇrekladaˇce samostatn´e. V´yvojov´e prostˇred´ı Eclipse. Nejrozˇ s´ıˇ renˇ ejˇ s´ı bal´ıky pˇ rekladaˇ c˚ u: • GNU – sada volnˇe dostupn´ych pˇrekladaˇc˚ u, GPL licence. Spousta platforem (Win, UNIXy, Mac, Symbian, hern´ı konzole, . . . ). gcc (C), g++ (C++), g77 ˇ (F77), gfortran (F95). Rada dalˇs´ıch jazyk˚ u, napˇr. gcj (Java), gpc (Pascal) nebo gnat (Ada). V GNU i ˇrada podp˚ urn´ych n´astroj˚ u: gdb (debugger), gprof (profiler), autoconf (automatick´a konfigurace k´odu), automake (automatick´e generov´an´ı Makefile), . . . • Intel – sada komerˇcn´ıch pˇrekladaˇc˚ u, pro nekomerˇcn´ı aplikace zdarma (???). Optimalizace pro procesory Intel, bˇeˇz´ı i kompatibiln´ıch ne-Intel procesorech (AMD). Platformy: Win, Linux, Mac. icc (C/C++), ifort (Fortran 95). Debugger idb.
8
• Dalˇ s´ı komerˇ cn´ı pˇ rekladaˇ ce: PGI, NAG, Absoft, ˇcasto velice drah´e licence. Efektivita pˇrekladaˇce ˇcasto z´avis´ı na konkr´etn´ım programu. Velice obecnˇe lze ˇr´ıc´ı: GNU – dostupn´y vˇsude, Intel – nejrychlejˇs´ı pro Intel procesory, NAG – nejlepˇs´ı diagnostika (odchyt´av´an´ı chyb pˇri pˇrekladu). i ´ , Bi,j = sin(i) cos(j), tj. spoˇc´ıtejte matici Ukol: Vyn´asobte matice Ai,j = 0.5 j+1 P C Spoˇc´ıtejte L1 , L2 , a Lmax normu vˇsech matic L1 (C) = Pi,j = k=1..N Ai,k Bk,j . P 2 i,j=1..N |Ci,j |, L2 (C) = i,j=1..N Ci,j , Lmax (C) = maxi,j=1..N |Ci,j |. Proved’te pro velk´e matice (alespoˇ n N = 1000), porovnejte dobu v´ypoˇctu pro r˚ uzn´e pˇrekladaˇce (g77, gfortran, ifort). Udˇelejte to sam´e pro C/C++, Javu, Matlab, Maple, Python.
Numerick´ e knihovny Spousta numerick´ych knihoven ze vˇsech oblast´ı matematiky, komerˇcn´ıch i volnˇe dostupn´ych. Hloupost implementovat vlastn´ı Gaussovu eliminaci nebo LU dekompozici, kdyˇz uˇz je implementovan´a v nˇekter´e knihovnˇe, odladˇen´a, optimalizovan´a, a v modern´ıch knihovn´ach alespoˇ n o ˇr´ad rychlejˇs´ı, neˇz naˇse implemntace. Pˇ rehled nejd˚ uleˇ zitˇ ejˇ s´ıch knihoven: • Numerical Recipes – s´erie knih o numerick´ych algoritmech a jejich implementaci v r˚ uzn´ych jazyc´ıch, pˇriloˇzeny zdrojov´e k´ody, kter´e lze i volnˇe st´ahnout, ale nelze volnˇe pouˇz´ıvat. Nen´ı pˇr´ıliˇs rychl´a/optimalizovan´a, ale je pˇrehledn´a a jednoduch´a – ˇcasto se vyuˇz´ıv´a pˇri v´yuce. Obsahuje celou ˇradu metod ze vˇsech oblast´ı matematiky, nejsilnˇejˇs´ı pro PDE, d´ale n´ahodn´a ˇc´ısla, tˇr´ıdˇen´ı, speci´aln´ı funkce, optimalizace, statistika, . . . • GSL (GNU Scientific Library) – knihovna pro C/C++ pod GPL. Obsahuje z´akladn´ı matematick´e operace, podporu pro komplexn´ı ˇc´ısla pro C, kombinatorika, statistika, FFT, interpolace, minimalizace, fitting, . . . • BLAS (Basic Linear Algebra Subprograms) – knihovna pro Fortran (existuje rozhran´ı i pro C a Javu), volnˇe dostupn´a, obsahuje operace line´arn´ı algebry, tj. vektorov´e a maticov´e operace – n´asoben´ı, rotace, kop´ırov´an´ı, normy, . . . Silnˇe optimalizov´ana, ˇcasto vyuˇz´ıv´ana na superpoˇc´ıtaˇc´ıch. Implementace funkc´ı zvl´aˇst’ pro r˚ uzn´e pˇresnosti. Funkce ˇcasto vyuˇz´ıv´any i v dalˇs´ıch knihovn´ach, napˇr. v LINPACK, LAPACK. • LINPACK – numerick´a line´arn´ı algebra pro superpoˇc´ıtaˇce, poch´az´ı ze 70. let. Dnes obecnˇe nepˇr´ıliˇs pouˇz´ıvan´a, nahrazena LAPACKem. Vyuˇz´ıv´a 9
se hlavnˇe pro benchmarking superpoˇc´ıtaˇc˚ u – ˇreˇs´ı se A x = b, A velk´a hust´a, pomoc´ı Gaussovy eliminace s pivotingem. Standardn´ı benchmark pro www.top500.org. • LAPACK (Linear Algebra PACKage) – knihovna s numerickou line´arn´ı algebrou, nejdˇr´ıve Fortran77, v souˇcesnosti Fortran90. Funkce pro re´aln´e i komplexn´ı matice v single a double. N´asledovn´ık LINPACKu + vlastn´ı ˇc´ısla z EISPACKu. Z´akladn´ı maticov´e oparece z BLASu. Vyuˇzit´ı na superpoˇc´ıtaˇc´ıch, podpora pro paraleln´ı stroje. Volnˇe dostupn´a. Dostupn´e rozhran´ı pro C/C++ a Javu. Obsahuje metody pro ˇreˇsen´ı line´arn´ıch syst´em˚ u, nejmenˇs´ı ˇctverce, vlastn´ı ˇc´ısla, dekompozice matic, . . . • NAG (Numerical Algorithms Group), komerˇcn´ı knihovna pro Fortran a C. Pˇrev´aˇznˇe numerick´a anal´yza – optimalizace, integrace, ˇrady, anal´yza, integrace, . . . Nejobs´ahlejˇs´ı knihovna. V´yborn´a podpora pro paraleln´ı v´ypoˇcty. • PETSc: Modern´ı knihovna pro large-scale projekty, vyuˇz´ıvan´a v mnoha souˇcasn´ych velk´ych k´odech. Rozhran´ı pro C, C++, Fortran, Python. Kompletnˇe paraleln´ı. Obsahuje pˇrev´aˇznˇe solvery – line´arn´ı, neline´arn´ı, ODE, PDE. • Netlib – repozit´aˇr numerick´eho software, vˇetˇsinou ve Fortranu. Obsahuje napˇr. BLAS, LAPACK, LINPACK, . . . • CPC (Computer Physics Communications) – ˇcasopis + repozit´aˇr publikovan´eho softwaru. Hlavnˇe programy pro fyziku. • Matlab File Exchange – uˇzivateli dodan´e programy pro Matlab (velice r˚ uzn´a kvalita), od trivi´aln´ıch (jin´y typ grafu) aˇz po vynikaj´ıc´ı (bal´ıky pro v´ıcedimenzion´aln´ı dynamiku tekutin nebo mechaniku kontinua).
10