GPU Lab. 1. fejezet. Bevezetés. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
|
|
- Zsombor Dobos
- 6 évvel ezelőtt
- Látták:
Átírás
1 1. fejezet Bevezetés Grafikus Processzorok Tudományos Célú Programozása
2 Bemutatkozás MTA Wigner Fizikai Kutatóközpont GPU labor: Párhuzamos és elosztott számítások Numerikus differenciálegyenlet megoldók Vizualizáció GPU Nap évente (gpuday.com), idén várhatóan Június Modern Tudományos Programozás Előadássorozat gpu (kukac) wigner.mta.hu
3 Az előadással kapcsolatos információk Weboldal, aktuális információk: gpu.wigner.mta.hu -> Labor -> Oktatás Github: Jegyszerzés: Programozási beadandó feladatok + szóbeli vizsga
4 Az előadással kapcsolatos információk Tematika: Modern hardverek működése, felépítése Assembly létminimum C++ példákon keresztül az alapoktól az új standardokig Párhuzamosítás C++-ban GPU API-k és használatuk Párhuzamos szimulációk és esettanulmányok Majd folytatás a 2. félévben: Funkcionális Programozás és még több GPU szimuláció
5 Bevezetés
6 Bevezetés Miről lesz szó? Hardverek alapvető működése Programozási nyelvek alapvető építőkövei Párhuzamosság elemei C++ (11, 14, 17, 20) OpenCL (1.2, 2.0) SYCL (1.2, 2.2) Hogyan írjunk a fentiek segítségével hatékony szimulációkat?
7 Bevezetés Miért pont ezekről akarunk előadást tartani? Kutatók (fizikusok, vegyészek, orvosok ): hatalmas kísérletek, bonyolult szimulációk, rengeteg adat Nem programozók, nem informatikusok! Eredmény: a hardver kihasználatlan Következmény: egyre gyakoribb, hogy pályázatokat dobnak emiatt vissza versenyhátrány a jobb kihasználókkal szemben
8 Bevezetés Miért pont ezekről akarunk előadást tartani? A tudományág: Szerteágazó (sok nyelv, API és platform) Gyorsan változik (új hw, új standardek, új verziók évente többször is) Az információ szétszórt (blogok, fórumbejegyzések, prezentációk, youtube előadások) nincs idő rendszerezni, leírni könyvbe az információkat
9 Bevezetés: Programozás
10 Bevezetés: Programozás Program: utasítások sorozata a gépnek (végső soron) Programozás: utasítások kiosztása
11 Bevezetés: Programozás Program: utasítások sorozata a gépnek (végső soron) Programozás: utasítások kiosztása nem egészen A tudományág neve: Programming Language Theory Programozási nyelv: logikai rendszer, amiben megfogalmazunk egy problémát Logikai rendszer?..ez inkább matematika és ez nem véletlen!
12 Bevezetés: Programozás Típusrendszer (type system): A programozási nyelvnek azon része, amely a nyelvi elemekhez (kifejezések, változók, függvények) tulajdonságokat (típus) rendel, és az elemek kombinációit ellenőrzi, hogy az előírt szabályoknak megfelelnek-e.
13 Bevezetés: Programozás Példa: nyelvtan Ez értelmes: Kati elment a boltba paradicsomért. Ez kevésbé: Bolt paradicsomot Katiért elmenne a a. A nyelvtani rendszer által lesznek a mondataink értelmesek.
14 Bevezetés: Programozás Típusrendszer (type system): A típusrendszer garantálja, hogy a benne megfogalmazott program eleget tesz a nyelvi rendszer szabályainak. Következmény: kevesebb bug. A szabályok ellenőrzése: type checking A típus rendszerek elméletét vizsgáló tudományág: type theory
15 Bevezetés: Programozás Típusrendszer és Logika Curry-Howard korrespondencia (dióhéjban): Logika Bizonyítás Tétel Hipotézisek Program Program Típus Argumentumok
16 Bevezetés: Programozás Típusrendszer és Logika Curry-Howard korrespondencia (dióhéjban): Logika Program C++ Konjunkció Szorzat típus struct Diszjunkció Összeg típus union+enum 1 Implikáció Függvény típus R f( A ) Implikáció bevezetése Implikáció eliminálása Függvény definíció R f(a a, A b){ return a*b; } Függvényhívás f(a, b); 1 Az igazi összegtípus a tagged union lenne, ami nem létezik C++-ban.
17 Bevezetés: Programozás Az analógiák itt nem érnek véget:
18 Bevezetés: Típusrendszerek A típusrendszer segít kiszűrni a bugokat. Jó típus rendszer: Minél több rossz programot képes kiszűrni, Minél kevesebb helyes programot tesz kifejezhetetlenné. Összes lehetséges program Helyes programok halmaza A típusrendszerben kifejezhető programok halmaza
19 Bevezetés: Programozási nyelvek A programozási nyelvek eszköztára és a bennük megvalósított típusrendszer szorosan összefügg. Egy fejlettebb, magasabb szintű nyelvtől az ember több biztosítékot, garanciát vár el, mint egy alacsonyabb szintűtől.
20 Bevezetés: Programozási nyelvek Gépi kód: azok az utasítások, amit a hardver végre tud hajtani. Ha hibás utasításkódot adunk meg, a hw megáll, halt állapotba kerül, stb. Semmilyen más ellenőrzés nincs.
21 Bevezetés: Programozási nyelvek Assembly: A gépi kódú utasításokat pár betűs rövidítések jelölik. Az utasítások argumentumainak számát és méretét ellenőrzi az assembler. De simán összeszorozhatunk egy karaktersorozatot és egy lebegőpontos számot úgy, mint két egész számot
22 Bevezetés: Programozási nyelvek C: A változók típusai ellenőrizve vannak a műveleteken keresztül, de: overflow-k, undefined behavior, A magasabb szintű absztrakciókat csak macro-k segítségével lehet megvalósítani, amiken nincs semmilyen típusellenőrzés
23 Bevezetés: Programozási nyelvek C++: C-ből sok rossz örökség (de javul) A class rendszer számos absztrakciót összemos A magasabb szintű absztrakciókat a templatek segítik. De nincs memória biztonság, magasabb szintű kvantifikáció, stb.
24 Bevezetés: Programozási nyelvek Haskell: Garantálja a memóriakezelés helyességét A típusrendszer letisztult, a fordító több, magasabb szintű ellenőrzést tud megtenni, erősebb invariánsokat lehet bevezetni és garantálni
25 Bevezetés: Programozási nyelvek Agda, Idris, Coq, Isabelle: Dependens típusok, azaz a futásidejű értékek is visszahathatnak a típusokra! Matematikai bizonyítások
26 Bevezetés: elkerülhető hibák A megfelelő nyelvekkel és típusrendszerekkel számos, esetenként katasztrofális hiba is megelőzhető lett volna.
27 Bevezetés: elkerülhető hibák Intel Pentium bug (1994): FDIV (lebegőpontos osztás) Néhány speciális esetben az osztáshoz tartozó look-up table nem tartalmazott értékeket. A presztízsveszteség 475M USD-be került az Intelnek Pl.: / Másik hasonló: Pentium F00F bug
28 Bevezetés: elkerülhető hibák ESA Ariane 5 (1996): 64-bit float -> 16-bit int conversion overflow 370M USD
29 Bevezetés: elkerülhető hibák NASA Mars Climate Orbiter (1999) metric-imperial eltérés, két szoftver rész között. 327M USD
30 Bevezetés: elkerülhető hibák Therac-25 sugárterápiás készülék ( ) race condition (bővebben itt, itt) legalább 6 esetben súlyos sugárterhelés a betegekre
31 Bevezetés: elkerülhető hibák 2003-as áramszünet az Észak USAban és Kanadában, 55 millió embert érintett A vezérlőközpont nem értesült időben a probléma mértékéről, mert egy race-condition miatt nem működött a riasztó rendszer
32 Bevezetés: elkerülhető hibák A fentiek elkerülhetőek ma már megfelelő nyelvek és típusrendszerek használatával. Pl. a hardvereket már automatikus proof-assistantokkal ellenőrzik, hogy bizonyítottan helyes és teljes legyen a működésük A mindennapi szimulációknak látszólag nincs szükségük ezekre.
33 Bevezetés: szimulációk Szimulációk: Kompromisszumok: fejlesztési idő vs. hibák rizikója vs. Teljesítmény (hardver kihasználtság) vs. karbantarthatóság (maintainability) Nem mindegy, hogy mennyit vesztünk a kompromisszumokkal. Sok múlik a nyelven / típusrendszeren.
34 Bevezetés: szimulációk Szimulációk: Absztrakció: ne írjuk meg ugyanazt újra, paraméterezzük a megoldásokat. (De deduplikáció, macro-k) Magasabb szint: több információ a problémáról, könnyebb optimalizálni. Bevezető példa itt.
35 Bevezetés: szimulációk Ne írjuk meg kétszer a hasonló dolgokat Lineáris algebra Numerikus Módszerek Különböző hardver (GPU/CPU) Különböző párhuzamomsítás Különböző API-k
36 Bevezetés: szimulációk Párhuzamosítás A megfelelő absztrakciókban gondolkozva egyszerűbb érvelni a párhuzamos feldolgozás helyessége mellett. Pl. rust concurrency 1. 2.
37 Bevezetés: Sapir Whorf hipotézis Másnéven: nyelvi relativitás A (beszélt/írott) nyelvi struktúrák befolyással vannak a világról alkotott képünkre. A nyelvi kategóriák limitálják, meghatározzák a kognitív (gondolati) kategóriákat. A beszámolók alapján ez a programozási nyelvekre is igaz
38 Bevezetés: blub paradoxon Paul Graham: the blub paradox Tegyük fel, hogy van egy számegyenese a programozási nyelveknek: A B C D F G H I J K L
39 Bevezetés: blub paradoxon Paul Graham: the blub paradox Ha egy tetszőleges nyelvet ismerő programozó lefelé néz, tudja, hogy azok kevésbé jó nyelvek, mert csomó dolgot nem tudnak, amit az övé tud! A B C D F G H I J K L
40 Bevezetés: blub paradoxon Paul Graham: the blub paradox Amikor azonban a programozónk felfelé néz a spektrumban, csak fura érthetetlen krix-kraxokat lát, és el sem tudja képzelni mire jók, hiszen ő mindent meg tud oldani a saját nyelvének eszközeivel is! A B C D F G H I J K L
41 Bevezetés: párhuzamosság Miért kell nekünk párhuzamosság?
42 Bevezetés: párhuzamosság Sources: 1., 2.
43 Bevezetés: párhuzamosság Sources: 1., 2.
44 Bevezetés: miért C++? Nyelvválasztás = kompromisszum Nem fizetünk azért a nyelvi szolgáltatásért, amit nem használunk Egyszerre kellően alacsonyszintű, hogy hatékony programokat lehessen benne írni, de Meglepően magasszintű absztrakciók is építhetőek benne Dinamikusan fejlődő, az egész ipar által támogatott nyelv
45 Bevezetés: miért OpenCL / SYCL? Bizonyítottan a fontos a hordozhatóság Számos esetben demonstrálódott, hogy az egyetlen megoldáshoz kötődés csapdahelyzetet teremthet Széles ipari összefogás áll ezeknek a fejlesztése mögött is (Khronos) Ezekben is le lehet menni kellően alacsony szintre, hogy maximálisan kihasználjuk a hardver nyújtotta képességeket
46 Az előadással kapcsolatos információk Hét Időpont Óra 2. Február Óra 3. Február 21. Elmarad 4. Február Óra 5. Március Óra 6. Március Óra 7. Március Óra 8. Március 28. Tavaszi szünet 9. Április Óra 10. Április Óra 11. Április Óra 12. Április Óra 13. Május Óra 14. Május Óra 15. Május Óra Tavaszi szünet: Március 28. Április 3., Eötvös-Pázmány nap: Május
Kaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest 2015. január 6.
Bizonyítás és programozás Kaposi Ambrus University of Nottingham Functional Programming Lab Hackerspace Budapest 2015. január 6. Bizonyítás, érvelés Példa: sáros a csizmám ha vizes a föld, esett az eső
GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell
A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok
A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)
Készítette: Trosztel Mátyás Konzulens: Hajós Gergely
Készítette: Trosztel Mátyás Konzulens: Hajós Gergely Monte Carlo Markov Chain MCMC során egy megfelelően konstruált Markov-lánc segítségével mintákat generálunk. Ezek eloszlása követi a céleloszlást. A
Szenzorhálózatok programfejlesztési kérdései. Orosz György
Szenzorhálózatok programfejlesztési kérdései Orosz György 2011. 09. 30. Szoftverfejlesztési alternatívák Erőforráskorlátok! (CPU, MEM, Energia) PC-től eltérő felfogás: HW közeli programozás Eszközök közvetlen
Kaposi Ambrus. Informatikai Kar. Pannonhalmi Bencés Gimnázium november 24.
Bizonyítás és programozás Kaposi Ambrus Eötvös Loránd Tudományegyetem Informatikai Kar Pannonhalmi Bencés Gimnázium 2017. november 24. A tökéletes operációs rendszer (i) BeOS Plan9 2 / 22 A tökéletes operációs
IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata
IKP-9010 Számítógépes számelmélet 1. EA IK Komputeralgebra Tsz. IKP-9011 Számítógépes számelmélet 2. EA IK Komputeralgebra Tsz. IKP-9021 Java technológiák IK Prog. Nyelv és Ford.programok Tsz. IKP-9030
Programok értelmezése
Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése
sallang avagy Fordítótervezés dióhéjban Sallai Gyula
sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }
Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson
egy szisztolikus példa
Automatikus párhuzamosítás egy szisztolikus példa Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus
Matematikai logika és halmazelmélet
Matematikai logika és halmazelmélet Wettl Ferenc előadása alapján 2015-09-07 Wettl Ferenc előadása alapján Matematikai logika és halmazelmélet 2015-09-07 1 / 21 Tartalom 1 Matematikai kijelentések szerkezete
Számítógépek felépítése
Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák
Bevezetés. Dr. Iványi Péter
Bevezetés Dr. Iványi Péter Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza.
Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?
Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii
Programozási nyelvek 6. előadás
Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan
Programozási nyelvek a közoktatásban alapfogalmak I. előadás
Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
SZÁMÍTÓGÉP ARCHITEKTÚRÁK Az utasítás-pipeline szélesítése Horváth Gábor, Belső Zoltán BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-05-19 1 UTASÍTÁSFELDOLGOZÁS
Osztályozóvizsga és javítóvizsga témakörei Matematika 9. évfolyam
Osztályozóvizsga és javítóvizsga témakörei Matematika 9. évfolyam 1. félév Gondolkozás, számolás - halmazok, műveletek halmazokkal, intervallumok - racionális számok, műveletek racionális számokkal, zárójel
I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI
I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI 1 A digitális áramkörökre is érvényesek a villamosságtanból ismert Ohm törvény és a Kirchhoff törvények, de az elemzés és a tervezés rendszerint nem ezekre épül.
Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés
Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;
Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók
Haskell 1. Alapok tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók elég jól elkerülhetők így a mellékhatások könnyebben
Párhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
Programozás alapjai gyakorlat. 2. gyakorlat C alapok
Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel
5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix
2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.
Bevezetés. Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar
Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Bevezetés Motiváció Soros és párhuzamos végrehajtás, soros és párhuzamos programozás Miért? Alapfogalmak
Nemlineáris optimalizálási problémák párhuzamos megoldása grafikus processzorok felhasználásával
Nemlineáris optimalizálási problémák párhuzamos megoldása grafikus processzorok felhasználásával 1 1 Eötvös Loránd Tudományegyetem, Informatikai Kar Kari TDK, 2016. 05. 10. Tartalom 1 2 Tartalom 1 2 Optimalizálási
C++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
4. Programozási nyelvek osztályozása. Amatőr és professzionális
4. Programozási nyelvek osztályozása. Amatőr és professzionális programozási nyelvek. Számítási modellek (Neumann-elvű, automataelvű, funkcionális, logikai). Programozási nyelvekkel kapcsolatos fogalmak
GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai
GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu
Párhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
Funkcionális Nyelvek 2 (MSc)
Funkcionális Nyelvek 2 (MSc) Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Tematika A (tervezett) tematika rövid összefoglalása
A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai
A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási
Digitális technika VIMIAA hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA02 14. hét Fehér Béla BME MIT Rövid visszatekintés, összefoglaló
Magas szintű optimalizálás
Magas szintű optimalizálás Soros kód párhuzamosítása Mennyi a várható teljesítmény növekedés? Erős skálázódás (Amdahl törvény) Mennyire lineáris a skálázódás a párhuzamosítás növelésével? S 1 P 1 P N GPGPU
Programozás alapjai (ANSI C)
Programozás alapjai (ANSI C) 1. Előadás vázlat A számítógép és programozása Dr. Baksáné dr. Varga Erika adjunktus Miskolci Egyetem, Informatikai Intézet Általános Informatikai Intézeti Tanszék www.iit.uni-miskolc.hu
Számítógép architektúra
Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek
Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás
Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált
Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok
Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int
Digitális technika VIMIAA hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA02 14. hét Fehér Béla BME MIT Digitális technika
Podoski Péter és Zabb László
Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő
OpenCL - The open standard for parallel programming of heterogeneous systems
OpenCL - The open standard for parallel programming of heterogeneous systems GPU-k általános számításokhoz GPU Graphics Processing Unit Képalkotás: sok, általában egyszerű és független művelet < 2006:
MATEMATIK A 9. évfolyam. 2. modul: LOGIKA KÉSZÍTETTE: VIDRA GÁBOR
MATEMATIK A 9. évfolyam 2. modul: LOGIKA KÉSZÍTETTE: VIDRA GÁBOR Matematika A 9. évfolyam. 2. modul: LOGIKA Tanári útmutató 2 MODULLEÍRÁS A modul célja Időkeret Ajánlott korosztály Modulkapcsolódási pontok
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA Szoftver Verifikáció és Validáció, 2015 Ősz Vaitkus Márton Tartalom Motiváció Maple MiniMaple MiniMaple típusellenőrzése MiniMaple formális specifikációja MiniMaple
Bizonyítási módszerek ÉV ELEJI FELADATOK
Bizonyítási módszerek ÉV ELEJI FELADATOK Év eleji feladatok Szükséges eszközök: A4-es négyzetrácsos füzet Letölthető tananyag: Emelt szintű matematika érettségi témakörök (2016) Forrás: www.mozaik.info.hu
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
BEÁGYAZOTT RENDSZEREK TERVEZÉSE Részletes Hardver- és Szoftvertervezés
BEÁGYAZOTT RENDSZEREK TERVEZÉSE 1 A beágyazott szoftver- és hardver integrálásának a folyamata jól felkészült szakemberek munkáját igényli, amelyek gyakorlottak hibakeresési és felderítési metódusok alkalmazásában.
Osztályozóvizsga követelményei
Osztályozóvizsga követelményei Képzés típusa: Tantárgy: Nyolcosztályos gimnázium Matematika Évfolyam: 5 Emelt óraszámú csoport Emelt szintű csoport Vizsga típusa: Írásbeli Követelmények, témakörök: Gondolkodási
SULINOVA PROGRAMTANTERVÉHEZ ILLESZKEDŐ TANMENET 9. ÉVFOLYAM SZÁMÁRA
1 SULINOVA PROGRAMTANTERVÉHEZ ILLESZKEDŐ TANMENET 9. ÉVFOLYAM SZÁMÁRA Heti óraszám: 3 Éves óraszám: 37 x 3 = 111 A tanmenet 101 óra beosztását tartalmazza. A dolgozatok írása és javítása 10 órát foglal
HELYI TANTERV MATEMATIKA (emelt szintű csoportoknak) Alapelvek, célok
HELYI TANTERV MATEMATIKA (emelt szintű csoportoknak) Alapelvek, célok Az iskolai matematikatanítás célja, hogy hiteles képet nyújtson a matematikáról mint tudásrendszerről és mint sajátos emberi megismerési,
EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 2. sz. melléklet 2.2.03. Matematika az általános iskolák 5 8.
EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 2. sz. melléklet 2.2.03 Matematika az általános iskolák 5 8. évfolyama számára Alapelvek, célok Az iskolai matematikatanítás célja, hogy hiteles képet
Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 5. előadás Tömbök átméretezése public static void Resize( ref T[] array, int newsize ) Példa: int[] a=new int[20]; Array.Resize(ref a, 22); 2016. 10. 19.
Egyenletek, egyenlőtlenségek X.
Egyenletek, egyenlőtlenségek X. DEFINÍCIÓ: (Logaritmus) Ha egy pozitív valós számot adott, 1 - től különböző pozitív alapú hatvány alakban írunk fel, akkor ennek a hatványnak a kitevőjét logaritmusnak
Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD
M5-. A lineáris algebra párhuzamos algoritmusai. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak
Matematikai programok
Matematikai programok Mátrixalapú nyelvek MatLab Wettl Ferenc diái alapján Budapesti M szaki Egyetem Algebra Tanszék 2017.11.07 Borbély Gábor (BME Algebra Tanszék) Matematikai programok 2017.11.07 1 /
Az Excel táblázatkezelő
Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. Dr.Dudás László 4./1. Az Excel táblázatkezelő How to Give a Presentation on the Financial Information of a Company by Dave Samuels, Demand Media http://smallbusiness.chron.com/give-presentation-financial-information-company-61420.html
Követelmény az 5. évfolyamon félévkor matematikából
Követelmény az 5. évfolyamon félévkor matematikából Gondolkodási és megismerési módszerek Néhány elem kiválasztása adott szempont szerint. Néhány elem sorba rendezése, az összes lehetséges sorrend felsorolása.
ÖSSZEVONT ÓRÁK A MÁSIK CSOPORTTAL. tartósság, megerősítés, visszacsatolás, differenciálás, rendszerezés. SZÁMTANI ÉS MÉRTANI SOROZATOK (25 óra)
Tantárgy: MATEMATIKA Készítette: KRISTÓF GÁBOR, KÁDÁR JUTKA Osztály: 12. évfolyam, fakultációs csoport Vetési Albert Gimnázium, Veszprém Heti óraszám: 6 Éves óraszám: 180 Tankönyv: MATEMATIKA 11 és MATEMATIKA
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
A matematika nyelvéről bevezetés
A matematika nyelvéről bevezetés Wettl Ferenc 2006. szeptember 19. Wettl Ferenc () A matematika nyelvéről bevezetés 2006. szeptember 19. 1 / 17 Tartalom 1 Matematika Kijelentő mondatok Matematikai kijelentések
Modellező eszközök, kódgenerálás
Modellező eszközök, kódgenerálás Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
1. Logikailag ekvivalens
Informatikai logikai alapjai Mérnök informatikus 4. gyakorlat 1. Logikailag ekvivalens 1. Az alábbi formulák közül melyek logikailag ekvivalensek a ( p p) formulával? A. ((q p) q) B. (q q) C. ( p q) D.
Összeállította Horváth László egyetemi tanár
Óbudai Egyetem Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek Intézet Intelligens Mérnöki Rendszerek Szakirány a Mérnök informatikus alapszakon Összeállította Horváth László Budapest, 2011
erettsegizz.com Érettségi tételek
erettsegizz.com Érettségi tételek Az informatika fejlődéstörténete, jogi ismeretek Információ és társadalom Az informatika fejlődéstörténete a XX. Században, napjainkban Jogi ismeretek, szerzőjog, szoftver
Grafikus csővezeték 1 / 44
Grafikus csővezeték 1 / 44 Grafikus csővezeték Vertex feldolgozás A vertexek egyenként a képernyő térbe vannak transzformálva Primitív feldolgozás A vertexek primitívekbe vannak szervezve Raszterizálás
IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata
IKP-9010 Számítógépes számelmélet 1. EA IK Komputeralgebra Tsz. IKP-9011 Számítógépes számelmélet 2. EA IK Komputeralgebra Tsz. IKP-9021 Java technológiák IK Prog. Nyelv és Ford.programok Tsz. IKP-9030
Feldspar: Nyelv digitális jelfeldolgozáshoz
Feldspar: Nyelv digitális jelfeldolgozáshoz Eötvös Loránd Tudományegyetem, Budapest Támogatja: Ericsson, KMOP-1.1.2-08 Feldspar funkcionális beágyazott nyelv Feldspar digitális jelfeldolgozáshoz párhuzamossághoz
Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):
B Motiváció B Motiváció Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver): Helyesség Felhasználóbarátság Hatékonyság Modern számítógép-rendszerek: Egyértelmű hatékonyság (például hálózati hatékonyság)
Adatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
Programozási Nyelvek: C++
Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();
http://www.physicsbox.com/indexrobotprogen.html http://www.kongregate.com/games/coolio_niato/lighbot-2-0?ref=search
INFORMATIKA Az informatika tantárgy ismeretkörei, fejlesztési területei hozzájárulnak ahhoz, hogy a tanuló az információs társadalom aktív tagjává válhasson. Az informatikai eszközök használata olyan eszköztudást
Matematikai programok
Matematikai programok Mátrixalapú nyelvek octave Wettl Ferenc Algebra Tanszék B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Wettl
2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 2. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? Követelmények, osztályozás Programozási
A TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
A matematika nyelvér l bevezetés
A matematika nyelvér l bevezetés Wettl Ferenc 2012-09-06 Wettl Ferenc () A matematika nyelvér l bevezetés 2012-09-06 1 / 19 Tartalom 1 Matematika Matematikai kijelentések 2 Logikai m veletek Állítások
reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése. A tanulóktól megkívánjuk a szaknyelv életkornak
MATEMATIKA Az iskolai matematikatanítás célja, hogy hiteles képet nyújtson a matematikáról mint tudásrendszerről és mint sajátos emberi megismerési, gondolkodási, szellemi tevékenységről. A matematika
Szoftver karbantartási lépések ellenőrzése
Szoftverellenőrzési technikák (vimim148) Szoftver karbantartási lépések ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/
Matematikai alapok. Dr. Iványi Péter
Matematikai alapok Dr. Iványi Péter Számok A leggyakrabban használt adat típus Egész számok Valós számok Bináris számábrázolás Kettes számrendszer Bitek: 0 és 1 Byte: 8 bit 128 64 32 16 8 4 2 1 1 1 1 1
Adatszerkezetek 1. előadás
Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk
C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:
C++ referencia Izsó Tamás 2017. február 17. 1. Bevezetés A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: Sokan összetévesztik a pointerrel. Keveset alkalmazzák
Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat
Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,
Matematika helyi tanterv 5 8. évfolyam számára Alapelvek, célok
Matematika helyi tanterv 5 8. évfolyam számára Alapelvek, célok Az iskolai matematikatanítás célja, hogy hiteles képet nyújtson a matematikáról mint tudásrendszerről és mint sajátos emberi megismerési,
Egyenletek, egyenlőtlenségek V.
Egyenletek, egyenlőtlenségek V. DEFINÍCIÓ: (Másodfokú egyenlet) Az ax + bx + c = 0 alakban felírható egyenletet (a, b, c R; a 0), ahol x a változó, másodfokú egyenletnek nevezzük. TÉTEL: Az ax + bx + c
A Szekszárdi I. Béla Gimnázium Helyi Tanterve
A Szekszárdi I. Béla Gimnázium Helyi Tanterve Négy évfolyamos gimnázium Informatika Készítette: a gimnázium reál munkaközössége 2015. Tartalomjegyzék Alapvetés...3 Egyéb kötelező direktívák:...6 Informatika
Utolsó módosítás:
Utolsó módosítás: 2012. 09. 06. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 Forrás: Gartner Hype Cycle for Virtualization, 2010, http://premierit.intel.com/docs/doc-5768
tantárgy E GY E GY Matematikai alapok I. kötelező - kollokvium 30 3 Matematikai alapok I.
TELJES IDEJŰ (NAPPALI) MUNKARENDŰ KÉPZÉS TANTERVE I. félév tárgy kódja tantárgy neve tantárgy számonkérés óraszám kredit előfeltétel típusa formája E GY E GY Matematikai alapok I. kötelező - kollokvium
Matematika. 5-8. évfolyam. tantárgy 2013.
Matematika tantárgy 5-8. évfolyam 2013. Matematika az általános iskolák 5 8. évfolyama számára Alapelvek, célok Az iskolai matematikatanítás célja, hogy hiteles képet nyújtson a matematikáról, mint tudásrendszerről
FUNKCIONÁLIS PROGRAMOZÁS
FUNKCIONÁLIS PROGRAMOZÁS A funkcionális programozás néhány jellemzője Funkcionális programozás 1-2 Funkcionális, más néven applikatív programozás Funkcionális = függvényalapú, függvényközpontú Applikatív
Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)
Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök Dr. Bécsi Tamás 4. Előadás A?: operátor Nézzük meg a következő kifejezést: if (a>b) z=a; else z=b; Ez felírható
Osztályozóvizsga követelményei
Osztályozóvizsga követelményei Képzés típusa: Tantárgy: Nyolcosztályos gimnázium Matematika Évfolyam: 10 Emelt óraszámú csoport Emelt szintű csoport Vizsga típusa: Írásbeli Követelmények, témakörök: Gondolkodási
Matematika B/1. Tartalomjegyzék. 1. Célkit zések. 2. Általános követelmények. 3. Rövid leírás. 4. Oktatási módszer. Biró Zsolt. 1.
Matematika B/1 Biró Zsolt Tartalomjegyzék 1. Célkit zések 1 2. Általános követelmények 1 3. Rövid leírás 1 4. Oktatási módszer 1 5. Követelmények, pótlások 2 6. Program (el adás) 2 7. Program (gyakorlat)
Osztályozóvizsga követelményei
Osztályozóvizsga követelményei Képzés típusa: Tantárgy: Nyolcosztályos gimnázium Matematika Évfolyam: 7 Emelt óraszámú csoport Emelt szintű csoport Vizsga típusa: Írásbeli Követelmények, témakörök: Gondolkodási
FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. május 17. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
Java programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék
Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék
Programozás Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 11. Tantárgy célja, szükséges ismeretek Tantárgy célja,
5.26 Informatika a 6-8. évfolyam számára
5.26 Óraterv Évfolyam 6. 7. 8. Heti óraszám 1 1 1 Éves óraszám 37 37 37 Bevezetés A helyi tanterv A kerettantervek kiadásának és jogállásának rendjéről szóló 51/2012. (XII. 21.) számú EMMI rendelet 2.