Mechwart nap, 2017 Számítás(technika) a fizikában Dr. Kardos Ádám Tudományos főmunkatárs Debreceni Egyetem, Fizika Intézet
Bemelegítés 2
Bemelegítés Két fajta fizikus létezik: A kísérleti fizikus: ő kísérleteket végez. Az elméleti fizikus: ő nem végez kísérleteket. (Leon Ledermann: Isteni a-tom című könyvéből) Leginkább arra keressük a választ, hogy: hogyan } hol számolnak az elméleti fizikusok mivel (Valamennyi szó azért lesz a kísérletisekről is ) Képletek nem lesznek (nagyon ) 3
Milyen számolások vannak? 4
Milyen számolások vannak? Legyen egy egyszerű áramkörünk: Ha I áram folyik egy R ellenálláson, mekkora a feszültségesés? 5
Milyen számolások vannak? Legyen egy egyszerű áramkörünk: Ha I áram folyik egy R ellenálláson, mekkora a feszültségesés? R = U I 5
Milyen számolások vannak? Legyen egy egyszerű áramkörünk: Ha I áram folyik egy R ellenálláson, mekkora a feszültségesés? R = U I ) U = I R 5
Milyen számolások vannak? Legyen egy egyszerű áramkörünk: Ha I áram folyik egy R ellenálláson, mekkora a feszültségesés? R = U I ) U = I R Ez analitikus számolás 5
Milyen számolások vannak? Legyen egy egyszerű áramkörünk: Ha I áram folyik egy R ellenálláson, mekkora a feszültségesés? R = U I ) U = I R Ez analitikus számolás Ha 1A áram folyik egy 10Ω-os ellenálláson, mekkora a feszültségesés? 5
Milyen számolások vannak? Legyen egy egyszerű áramkörünk: Ha I áram folyik egy R ellenálláson, mekkora a feszültségesés? R = U I ) U = I R Ez analitikus számolás Ha 1A áram folyik egy 10Ω-os ellenálláson, mekkora a feszültségesés? U = I R =1A 10 = 10 V 5
Milyen számolások vannak? Legyen egy egyszerű áramkörünk: Ha I áram folyik egy R ellenálláson, mekkora a feszültségesés? R = U I ) U = I R Ez analitikus számolás Ha 1A áram folyik egy 10Ω-os ellenálláson, mekkora a feszültségesés? U = I R =1A 10 = 10 V Ez numerikus számolás 5
Numerikus munka: Számoló gépeken Analitikus munka: Hol lehet számolásokat végezni? 6
Numerikus munka: Számoló gépeken Analitikus munka: Hol lehet számolásokat végezni? 6
Numerikus munka: Számoló gépeken Analitikus munka: Hol lehet számolásokat végezni? 6
Numerikus munka: Számoló gépeken Analitikus munka: Hol lehet számolásokat végezni? 6
Analitikus számolások 7
Analitikus számolások Papíron egy számolást csak elszúrni lehet De azért lehet nagyon-nagyon pontos is lenni: Charles-Eugène Delaunay, francia csillagász, a Hold mozgását tanulmányozta. Eredményei két kötetben jelentek meg (~ 2000 oldal). Mindent papíron számolt és még így is alig hibázott. 8
Analitikus számolások Manapság a cikkre érett számolások mind számítógépen történnek. De ez nem azt jelenti, hogy papíron nem kell tudni számolni!! Sőt!!!! Nem egyszerű analitikusan számolni számítógépen! A számokkal elbír, de nem ismer szimbólumokat. Spéci program kell, ami nem volt mindig a piacon Martinus J. G. Veltman (Nobel díj: 1999) 1963-ban megalkotja a Schoonschip programot, hogy megoldjon egy számolást, amiben több mint 50000 tag van. A Schoonschip assembly-ben íródott IBM mainframe-re, aztán portolta CDC6600 és Motorola 68000-ra is. Talán nem túlzás: ez volt minden számítógépes algebrai rendszer atyja! 9
Analitikus számolások Jelenleg számtalan általános rendszer elérhető: Mathematica, Maple, Matlab, MathCAD, SymPy, A Mathematica-V1.0 1988-ban jelent meg és forradalmi volt. A megalkotója, Stephen Wolfram, elméleti fizikus 10
Egy tipikus Mathematica jegyzetfüzet: 11
Analitikus számolások A Mathematica olyan mint egy svájci bicska mindenre jó akar lenni. Az elméleti részecskefizika sokat köszönhet a Mathematicának, de a FORM-nak még annál is többet! Jos Vermaseren a FORM rendszer atyja. Az 1980-as években írta először Fortranban, majd átírta C-ben. Jelenleg a 4.2-es verziónál jár. Az elméleti részecskefizika legbonyolultabb számolásait FORM-mal végezték, végzik és fogják végezni! Schoonschip azért készült, hogy elbánjon egy kifejezéssel, amiben 50 ezer tag van. A FORM számára a több száz millió tag sem jelent gondot. 12
Egy tipikus FORM kimenet: 13
Min futnak a számolások? Analitikus számolások Nagyon kevesen használnak Windows-t. Az emberek többsége Linux és Unix környezetben dolgozik. Az emberek nagyrésze OS X-et használ és macbook-ja van. Egyre több számolás készül szervereken ( 24 mag és afelett, linuxot futtatva) és nagy klasztereken ( > 100 mag, ezeken is linux). Tipikus futásidő pár naptól pár hónapig A köztes adatok nagyon nagyok is lehetnek > 1TB (jó lenne beleférni a memóriába ) 14
Numerikus számolások 15
Numerikus számolások Mi a helyzet a numerikus számolásokkal? A nap végén számokat és ábrákat akarunk kapni nem pedig sok száz oldal képletet. Sok számolás van, ami nem végezhető el analitikusan. Ilyenek tipikusan az integrálok. Az integrálás művészet Deriválni egy lovat is meg lehet tanítani, de integrálni senki sem tud. Hogyan lehet numerikusan integrálni? 16
Monte Carlo technikával! Numerikus számolások Határozzuk meg π értékét numerikusan! 17
Numerikus számolások Monte Carlo technikával! Határozzuk meg π értékét numerikusan! Az egységnyi sugarú kör területe pont π! 17
Numerikus számolások Monte Carlo technikával! Határozzuk meg π értékét numerikusan! Az egységnyi sugarú kör területe pont π! 1 17
Numerikus számolások Monte Carlo technikával! Határozzuk meg π értékét numerikusan! Az egységnyi sugarú kör területe pont π! 1 2 17
Numerikus számolások Monte Carlo technikával! Határozzuk meg π értékét numerikusan! Az egységnyi sugarú kör területe pont π! A kör területe π, a négyzeté 4. 1 2 17
Numerikus számolások Monte Carlo technikával! Határozzuk meg π értékét numerikusan! Az egységnyi sugarú kör területe pont π! 1 A kör területe π, a négyzeté 4. Ha a négyzetet véletlenszerűen dobáljuk dart nyilakkal a nyilak mekkora része fog a körön belülre esni? 2 17
Numerikus számolások Monte Carlo technikával! Határozzuk meg π értékét numerikusan! Az egységnyi sugarú kör területe pont π! 1 A kör területe π, a négyzeté 4. Ha a négyzetet véletlenszerűen dobáljuk dart nyilakkal a nyilak mekkora része fog a körön belülre esni? N N = 4 2 17
Numerikus számolások Még egy egyszerű programmal is egész jó eredmény érhető el: 3.2 3.1 3.0 2.9 10 100 1000 10 4 10 5 10 6 10 7 Pontok száma 18
A program tényleg egyszerű: Numerikus számolások 19
Numerikus számolások Minden Monte Carlo integrálás hasonló: Mindig véletlenszámokat dobálunk. Viszont nem mindegy, hogy hogyan! (Hatékonyság!) Amit integrálunk nagyon bonyolult tud lenni (több tízezer, százezer, de akár millió sor is!) Az élvonalbeli számolások mind nagy klasztereken készülnek. Tesztelni lehet laptopon is, integrálni esélytelen. A részecskefizikában nincsenek piaci szoftverek. Az emberek maguk írják a kódjaikat, amit megosztanak másokkal is: - A kódok nyílt forrásúak - Sokan használnak GitHub-ot vagy BitBucket-et 20
Numerikus számolások Miben íródnak a programok? Lényegében számokat adunk össze, nem kell semmi csiri-viri Nincs grafikus interfész sem. Minek? Még mindig a FORTRAN vezet, mai napig sok kód íródik benne. A FORTRAN új változataiban minden megvan, ami a C++-ban. Ami nem számolásigényes munka arra ott van a Python, ha nagyon kis dologról van szó, akkor egy bash szkript is teljesen jó. 21
Numerikus számolások És mi a helyzet a GPU-kkal? Egy tipikus GPU: Sok mag Nagy fizikai memória Kevés regiszter Kis osztott memória Ha bonyolult dolgot kell számolni (nagy kifejezés) az nem fér el az osztott memóriában vagy mindig a fizikai memóriába kell nyúlni vagy nem lehet minden magot használni. Ha sok köztes adatot kell tárolni szintén ez a helyzet. A GPU van, amire szuper és van, amire abszolute alkalmatlan. 22
Numerikus számolások Hogyan lehet egy GPU-t programozni? Régen ( > 10 éve) nagyon bonyolult volt, leginkább assemblyben. Manapság az NVIDIA-nak saját nyelve van rá: CUDA (ez csak NVIDIA kártyákhoz jó). Lényegében C speciális utasításokkal kiegészítve. Lehetséges alternatíva az OpenCL, ez már gyártótól függetlenül használható. A konfigurálás egy rémálom, de ha az megvolt, akkor utána már jól használható. A program paramétereit mindig finomhangolni kell az eszközhöz, amin futni fog. 23
Numerikus számolások A fizikában brutális mennyiségű numerikus számolás történik. A számolások többségét saját program végzi. Nem pusztán nagy mennyiségű adattal tudunk bánni, de tudunk olyan kódot is írni, ami ilyen adatokat hoz létre és kezel. Az ilyen programok megírása nagyon összetett: Ismerni kell a fizikai problémát Azt meg kell tudni oldani A megoldást jól be is kell tudni programozni Tesztelés Helyes eredmény esetén optimalizálás Vegső futások 24
Számítástechnika a kísérleteknél (a részecskefizikában) 25
Kísérleti számítástechnika Részecskék nagy energiával ütköznek és új részecskék spriccelnek szét. Ezeket kell lefotózni. Detektorok 26
Kísérleti számítástechnika A detektorok lényegében nagy fényképezőgépek, amik nagyon gyorsan kattogtatnak másodpercenként. 40 millió ütközés másodpercenként! Ezt mind látni kell, meg kell tudni különböztetni és meg kell tudni mondani, hogy érdekes volt-e egy is vagy sem. 27
Kísérleti számítástechnika 28
Kísérleti számítástechnika A lényeges események minden adatát el kell tudni tárolni. Az elsődleges esemény válogatás során csak nagyon egyszerű tulajdonságokat néznek, másra nem is nagyon van idő. Az események teljes feldolgozása már később, off-line történik. Minden eseményt lehetetlen eltárolni, jól át kell gondolni, mi az, ami tényleg érdekes lehet és mi az, ami nem. A válogatásnál nem lehet egy esemény minden részletét vizsgálni, csak néhány dolgot. Egy új lehetséges feltétel bevételét komoly bizottsági munka előzi meg. 29
Kísérleti számítástechnika Egy észlelt esemény a CMS detektornál: 30
Kísérleti számítástechnika Az események kiértékelése nagyon számításigényes. Nagy központok vannak ilyen feladatokra létrehozva, egy pont Budapesten: A központ teljes fogyasztása 3 MW. Egy paksi blokk maximális leadott teljesítménye 440 MW! 31
Összefoglalás helyett 32
Összefoglalás helyett A fizikában brutális mennyiségű numerikus és analitikus számolás történik. Többségében saját kódok futnak, így érdemi tudás is van, mi folyik a háttérben. Máshol is találunk nagy mennyiségű adatot: bankrendszerek, tőzsde, bioinformatika, statisztika, autóipar, űrkutatás, hadi ipar, Az itt megszerzett tudás máshol is hasznos és értékes! A nagy számítóközpontok fenntartása jó számítástechnikai szakembereket is igényel, akik a legmodernebb technikával dolgozhatnak. Maguk a kísérletek is alkalmaznak ilyen szakembereket. Megírni egy százezer soros programot, ami egy hónap futás után 1000 magon a helyes eredményt adja elég jó ajánlólevél 33
Köszönöm a figyelmet! 34