Párhuzamos programozás

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Párhuzamos programozás"

Átírás

1 Párhuzamos programozás a gyakorlatban Tódor Balázs cougar@sch.bme.hu

2 Tematika Erről lesz szó 1 PC C++ OpenMP, thread-ek Közös memória Használati technikák, trükkök Erről nem Sok PC (grid, cluster) C#, Java, Python MPI, process-ek Elosztott memóriás modell Mi a mutex, CS, stb.

3 Tartalom Párhuzamosítás 1x1 Eszközök, technikák FP, AP, kommunikáció Tervezés Az eddigiek használata Top-down/Bottom-up Egy lehetséges jövő Stream programming

4 Miért? Hány processzorod van? A GPU számít? 1 CPU 2, 4, 8, mag Moore törvénye: 1,5 évente x2 mag Kihasználtság 50%, 25%, 13%, Core i7 = 8 mag

5 Párhuzamosítás 1x1 Független feladatok azonosítása Megjelenítés + számolás Zene + kezelőfelület Beolvasás + helyesírás Külön szál minden feladatnak Eszközök: Intel TBB, boost Kölcsönös kizárás printf Kommunikáció teljes függetlenség nem szokott lenni

6 Zab és bab Független feladatok Zab Bab Két külön szál Eszközök Boost::thread OpenMP Válogatás Zabmosás Babmosás Hegyezés Hámozás Csomagolás Csomagolás Vége

7 Boost STL++ Platformfüggetlen, ingyenes Mit tud? Array, circular buffer, bitset Graph, FSM File system, függvénypointerek Thread, mutex, stb. Any, variant, konvertálás String algoritmusok

8 Boost::thread Thread Ctor Join ThreadFunc Függvény N paraméter boost::thread zabthread(zabfunc); Zabmosás Hegyezés Válogatás boost::thread babthread(babfunc); Babmosás Hámozás Csomagolás Csomagolás zabthread.join(); babthread.join(); Vége

9 OpenMP Fordítóba beépített Intel, MSVC, gcc Minimális kódmódosítás #pragma omp Multiplatform Linux, Win32, stb. Rugalmas AP, FP, mutex, CS, single/master, stb.

10 OpenMP Parallel OMP engedélyezése Sections Párhuzamos blokk Section Szálak létrehozása Barrier Join_all omp section omp parallel omp sections omp barrier Zabmosás Hegyezés Csomagolás Válogatás omp section Vége Babmosás Hámozás Csomagolás

11 OpenMP vs boost

12 OpenMP

13 boost

14 Funkcionális párhuzamosítás Független funkciók Kölcsönös kizárás Kommunikáció... egyszerű, gyors, rugalmatlan 2x annyi szál?

15 Fizikai szimuláció dspacecollide NearCallback Step Ütköztetés 1. NxN R: objektumok Ütköztetés 2. NxN R: objektumpár W: contact-ok Feloldás N R: objektum W: objektum

16 Fizikai szimuláció Feladatok dspacecollide: (1*N)*N NearCallback: (1*N)*N Step (1*N) Független feladatok (collide+near+step) (collide+near+step) (collide+near+step)... Azonos funkció, sok szál Rugalmas, egyszerű De: csak független adatokon

17 Parallel for fork Ciklusváltozó signed int Összehasonlítás egyszerű Léptetés konstanssal Kiugrás Break, continue, goto join

18 Közös erőforrások Közös változó Írás Olvasá s Az írás-olvasás között más is beleírhat. Kölcsönös kizárás vagy Csak olvasás

19 Explicit saját változó Saját változó

20 Implicit saját változó Saját változó

21 Közös és saját Egy tömb összes elemét akarjuk összeadni Mi legyen a célváltozó? Közös, mert meg akarjuk tartani Saját, mert többen is írnának bele Ha közös? Kölcsönös kizárás (lassú) Ha saját? Eltűnik amit beleírunk!

22 Redukció Közös változó Redukció bekapcs. Explicit: saját változó Implicit: sajátok -> közös

23 Fizika és AP Collide N szál NearCallback Ír a contact-ok listájába -> lock Step N szál máshol keressük a függetlenséget!

24 Fizikai szimuláció: függetlenség A különböző szigetek függetlenek Számolhatjuk őket külön szálakon Collide: N*N PhysX, ODE Legjobb eset egyforma szigetek Legrosszabb eset N, 1, 1, 1 Ez gyakorlatilag egyszálú

25 Fizikai szimuláció: függetlenség A különböző szigetek függetlenek Számolhatjuk őket külön szálakon Collide: N*N PhysX, ODE Legjobb eset egyforma szigetek Legrosszabb eset N, 1, 1, 1 Ez gyakorlatilag egyszálú

26 Funkcionális Legrosszabb eset lassú/gyors eljárások külön szálon pl. beolvasás + helyesírásellenőrzés Adat kevés/sok adat: N, 1, 1, 1 Nem egyforma műveletek Statikus kiosztás Hány szál van? Melyik szál mit csinál?

27 A megoldás Skálázhatóság Feladat és végrehajtás külön Dinamikus erőforráskiosztás Szálak közötti feladatmozgatás N, 1, 1, 1 -> N/2, 1+N/2, 1, 1 Lassú, gyors -> gyors+lassú/2, lassú/2

28 Hibrid rendszerek Taszk Funkciórész + valamennyi adat Kicsi: jobb kihasználtság Nagy: kevesebb szinkronizáció Ütemező Taszk-szál összerendelés Egyszálas (gyors legyen) Erőforrás Processzor (szálak) HDD, user (képernyő, billentyűzet)

29 Fizikai szimuláció: gráfban

30 Ütemezés Mikor futhat egy taszk? Bemenet (producer-consumer) Erőforrásigények Olvasás/írás? Gyors, egyszerű Critical section-ben fut Amdahl törvénye

31 Amdahl A varázsképlet : P: párh./soros arány N: CPU-szám Jól gondold meg hol lockolsz!

32 Ütemezés Taszk list<object*> m_apwritelocks; list<const Object*> m_apreadlocks; bool CanRun(const guard&); CanRun() Erőforrások Bemenetek true list.pop_front() UNLOCK Task.Run() LOCK task=list.front() task.canrun() false list.move(task, vége)

33 Hibrid rendszerek A végrehajtás és a feladat független Skálázható Legyen elég taszk Logikus: irányított gráfból hozható létre

34 Párhuzamosítás 1x1 Független feladatok azonosítása Szálak létrehozása Kölcsönös kizárás Olvasás, írás Kommunikáció Közös erőforrások Kommunikáció Producer-consumer

35 Kölcsönös kizárás Olvasás vs írás Olvasni: akárhányan Írni: csak egy Tanulság: olvasni jó HL2 (Source): 95% Eszközök Mutex, Critical Section, stb. Egyik sem biztonságos De mindegyik lassú

36 Kommunikáció Nincs kizárás Atomi műveletek Lockless Hardware-es kölcsönös kizárás Kölcsönös kizárás Mutex, CS, stb. Kettős pufferelés Igazi garázsbaillő megoldás

37 Atomi megoldások Hardverfüggő 1 db aligned read/write mindig atomi ivalue = 0; ++a Beolvasás+növelés+visszaírás = 3 OpenMP: 'atomic' kulcsszó Több atomi művelet?

38 Több atomi művelet Tipikus hiba idata = 5; bvaliddata = true; Ellenségünk: instruction reordering Az MMU blokkokban írja a memóriát Főleg XBox, de PC-n is előfordul Megoldás Critical section Platformfüggő: barrier utasítások

39 Lockless Lock Lock, tárolás, unlock Lassú, ismert, biztonságos Lockless CompareAndSwap utasítás Sok lock megoldás erre épül

40 Lockless Láncolt lista old=null CAS(head, old, new) false -> head=old, újra Tulajdonságok Gyors (hardveres) Végrehajtási idő? Prioritások? ABA-probléma A!= A

41 A probléma Thread1: A->B->A ABA-probléma Thread2: CAS(&p, A, C)=true Mikor jön elő? Az A érték nem a teljes állapotot tárolja (A!=A) Pl. A = pointer A megoldás 32b: DCAS: 64 bit (32b pointer + azonosító) 64b: aligned pointerek + bitbuherálás

42 ABA-probléma: láncolt lista A lista struct { Obj* next; } * Eredetileg: A, B Műveletek Thread1: read A (nincs pop) Next = A.next (B) Thread2: pop A, pop B, push A A.next = NULL Thread1: CAS(head, A, C) true, de C.next = B!

43 Lockless: miért jó? Nincs deadlock (és ez a helyes megoldás?!) Nincs prioritásinverzió Prioritásörökléssel is megoldható Mondjuk itt prioritás sincs Nincs sorbanállás a kamion a leggyorsabb Interrupt handler Malloc, interrupt, a handler-ben malloc? Hatékonyabb, mint a mutex Nagy méretű tömb esetén hogy lockolsz?

44 Szünet Végig maradt Szünetben hazament

45 Párhuzamos problémák Instruction reordering A=5; B=1; -> B=1; A=5; CS, barrier Változók regiszterekben Tudatlan fordítók Volatile kulcsszó False sharing Nem hiba, csak lassú

46 False sharing Struct: A, B elemek Thread1: A-t használja Thread2: B-t használja Helyesen működik Független feladatok Nem kell kölcsönös kizárás Rém lassú miért?

47 False sharing Thread1: A=1; Cache line piszkos Core2: cache line érvénytelen Thread2: ++B L1 Cache line érvénytelen Újraolvasás: RAM->L2->L1->B Megoldás: Egy cache line = egy core

48 Kettős pufferelés Memóriaigényes: két példány Késik egy swap -et Nincs lock Kivéve: swap Hatékony Funkcionálisan párhuzamos rendszerek Erősen összekötött rendszerek

49 Intel Smoke Rendszerek: MI, fizika, grafika, hang, input Az FP a legszebb, de Fizika -> MI, gfx, hang gfx -> MI Input->fizika Change manager Inkább késsen, mint lockoljon Kettős puffer továbbfejlesztve

50 Intel Smoke FP volt, hibrid lett 1 nagy feladat = sok (soros) taszk Egyszerűbb, mint a teljes párhuzamosítás A rendszerenkénti futási idő nem változik De jobb kitöltés -> párhuzamosíthatóbb

51 Intel Smoke Observer: Saját másolat a közös objektumokból Nincs lock, amikor olvasol Cserébe késik az információ Change Controller: per frame szinkronizáció 1 frame késés Sok rendszer?

52 Intel Smoke Fix időnként átviszi a változásokat Clock: game clock (lehet renderfüggetlen)

53 Lock technikák Hol lockolunk? adathoz v. kódhoz közel Lock helyett guard Private változók = nincs lock! Thread Local Storage Multithreaded Singleton A mutex:adat arány 1:1, N:1, 1:N

54 Hol lockoljunk? lock Működik? Igen Bővíthető? Nehezen (Enter/Leave) unlock Skálázható? Nehezen (FP)

55 Hol lockoljunk? nem thread safe Van egy osztály... több szál akarja használni. nem thread safe

56 Hol lockoljunk? Külső lock Majd megoldja valaki +3 nap debuggolás / osztály (~270eFt) Belső lock Az osztály magának elintézi Esetek 90%-a Hívó által biztosított A hívónak bizonyítania kell, hogy lockolt Ez a +10%

57 Belső lock guard guard Biztonságos Teljesen thread safe Idiótabiztos Kívülről láthatatlan Bárki használhatja az osztályt Rugalmatlan Annyi lock, ahány művelet.

58 Hívó által bizonyíték

59 Hívó által Nem az igazi... Mit bizonyít egy lock_guard<mutex>? Kinek a mutexe? Továbbfejlesztési lehetőségek Típusos lock_guard Lock_guard<Type> Fordítási idejű ellenőrzés Pointeres lock_guard Lock_guard<Type>.m_pOwner Futási idejű ellenőrzés

60 1:1 1 adat, 1 mutex Lock: minél közelebb Erre van a Get/Set Tömbök?

61 Modulo N lockolás: pl. páros/páratlan Mitől függ az N? Szálak száma 1:N Egy szál hány elemhez fér hozzá egyszerre

62 Hívó általi lock 1 lock, N művelet Ez is 1:N! Gyorsabb de egyszálúbb explicit lock implicit unlock

63 N:1 Több mutex egy adathoz? A szál lefogja az egyiket... B szál a másikat... Sok-sok debuggolás Intel Thread Checker 1000 USD

64 Tartalom Párhuzamosítás 1x1 Eszközök, technikák FP, AP, kommunikáció Tervezés Az eddigiek használata Top-down/Bottom-up Egy lehetséges jövő Stream programming

65 Hogyan párhuzamosítsunk? Hol kell párhuzamosítani? Leglassabb részek keresése 90/10-es szabály Független feladatok azonosítása Sugárkövetés Videófeldolgozó program

66 Megközelítés Top-down rendszerszinttől, lefelé Bottom-up közvetlenül ott, ahol szükséges Call stack módszer Breakpoint a 10%-ba Melyik szinten érdemes próbálkozni?

67 Példa Független részek Pixelek Leglassabb Sugár-test metszés Top-down Pixelek Bottom-up Testek Sugarak Független részek Pixelek Képkockák Leglassabb Motion blur Top-down Képkockák Bottom-up Pixelek

68 Előre tervezés Milyen új funkciók lehetnek? Mit kéne tudnia egy év múlva? Milyen új adatok lehetnek? Több? Más? Merre fejlődik a hardver? Több mag SIMD, SIMT

69 Előre tervezés Általában több adat kerül be mint funkció Videófeldolgozás A frame-ek száma gyorsabban nő, mint a pixeleké Raytracer Szebb képhez több sugár/test ütközés kell Kompromisszum? FP mellett OpenMP-s AP Mindegy mit csinálsz, az OpenMP még belefér

70 Párhuzamos optimalizáció Ami gyors egy szálon, az nem biztos, hogy párhuzamosítható is. Mátrixszorzás: Triviális: O(n 3 ) Strassen: O(n 2,81 )

71 Mátrixszorzás Triviális 4 szál Azonos terhelés Strassen 7 szál, aztán 4 Eltérő terhelés Soros rész!

72 Tartalom Párhuzamosítás 1x1 Eszközök, technikák FP, AP, kommunikáció Tervezés Az eddigiek használata Top-down/Bottom-up Egy lehetséges jövő Stream programming

73 A jövő Intel core i7 8 mag GPU 8800 GTS = 112 mag (GTX 280: 240) Nem csak grafikára Hogyan programozzuk? HLSL, BrookGPU CUDA / AMD Stream OpenCL C++ (Larrabee)

74 Stream programming HLSL, Brook Pixel shader, adat=textúra, kimenet=rendertarget 1 helyre írás CUDA/Stream Scatter write Gyártófüggő OpenCL AMD, Apple, nvidia, stb Larrabee > 25 db P54C C++ Linux a videókártyán

75 Stream programming (olvas, feldolgoz, ír)xn Sok, független adat (N>1000) Teljesen azonos feldolgozás (SIMT) Divergencia? Mi hiányzik? Rekurzió Pointerek Össze-vissza írás/olvasás Feltételek/ugrások

76 CUDA Szálkezelés Buta, gyors (~1000) SIMT Adatkezelés Tömb (textúra) Konstans tömb Háromszintű memória Kommunikáció Barrier ( syncthreads) CPU-s emuláció printf

77 ThreadID adat index Közös memória Local: blokkon belül Global: grid-en belül Barrier Blokkon belül Kernel float *pin, *pout (stream!) Adat: pin[threadid] CUDA

78 CUDA példa Thread ID Kernelhívás

79 Összefoglalás Funkcionális vagy adatpárhuzamosítás FP: ha független funkciók vannak AP: ha sok független adat van N~1000 -> stream Hibrid rendszerek Adatfolyamgráfból -> Taszk + ütemező OpenMP-vel FP/AP együtt Kommunikáció, lock Atomi/Lockless/lock adathoz közel

80 Elérhetőség Letöltés Kérdések Tódor Balázs,

81 Köszönöm a figyelmet! A. Alexandrescu: Multithreading and the C++ Type System T. Refenes: How to Start a Multi-Threading RelationShip C. Breshears: 8 Simple Rules for Designing Threaded Applications T. Mattson, L. Meadows: A Hands-on Introduction to OpenMP Intel: Designing the Framework of a Parallel Game Engine T. Leonard (Valve): Dragged Kicking and Screaming: Source Multicore Bruce Dawson (XNA): Multicore Memory Coherence: The Hidden Perils of Sharing Data Cyril Zeller(nVidia): CUDA Tutorial Jon Olick (id): Current Generation Parallelism In Games Ian Buck (nvidia): Programming CUDA Intel: Smoke demo ODE: Open Dynamics Engine Boost C++ libraries Khronos Group: OpenMP, OpenCL Geoff Langdale: Lock-Free Programming Wikipedia: Strassen algorithm

OpenCL - The open standard for parallel programming of heterogeneous systems

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:

Részletesebben

Párhuzamos és Grid rendszerek

Párhuzamos és Grid rendszerek Párhuzamos és Grid rendszerek (10. ea) GPGPU Szeberényi Imre BME IIT Az ábrák egy része az NVIDIA oktató anyagaiból és dokumentációiból származik. Párhuzamos és Grid rendszerek BME-IIT

Részletesebben

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)

Részletesebben

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)

Részletesebben

Magas szintű optimalizálás

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

Részletesebben

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 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

Részletesebben

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)

Részletesebben

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

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

Részletesebben

Grafikus csővezeték 1 / 44

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

Részletesebben

Bevezetés a párhuzamos programozási koncepciókba

Bevezetés a párhuzamos programozási koncepciókba Bevezetés a párhuzamos programozási koncepciókba Kacsuk Péter és Dózsa Gábor MTA SZTAKI Párhuzamos és Elosztott Rendszerek Laboratórium E-mail: kacsuk@sztaki.hu Web: www.lpds.sztaki.hu Programozási modellek

Részletesebben

Számítógépek felépítése

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

Részletesebben

GPGPU. GPU-k felépítése. Valasek Gábor

GPGPU. GPU-k felépítése. Valasek Gábor GPGPU GPU-k felépítése Valasek Gábor Tartalom A mai órán áttekintjük a GPU-k architekturális felépítését A cél elsősorban egy olyan absztrakt hardvermodell bemutatása, ami segít megérteni a GPU-k hardveres

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

Videókártya - CUDA kompatibilitás: CUDA weboldal: Példaterületek:

Videókártya - CUDA kompatibilitás:   CUDA weboldal:   Példaterületek: Hasznos weboldalak Videókártya - CUDA kompatibilitás: https://developer.nvidia.com/cuda-gpus CUDA weboldal: https://developer.nvidia.com/cuda-zone Példaterületek: http://www.nvidia.com/object/imaging_comp

Részletesebben

GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási

GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási GPGPU-k és programozásuk írta Dezső, Sima és Sándor, Szénási Szerzői jog 2013 Typotex Kivonat A processzor technika alkalmazásának fejlődése terén napjaink

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Számítógép Architektúrák

Számítógép Architektúrák Multiprocesszoros rendszerek Horváth Gábor 2015. május 19. Budapest docens BME Híradástechnikai Tanszék ghorvath@hit.bme.hu Párhuzamosság formái A párhuzamosság milyen formáit ismerjük? Bit szintű párhuzamosság

Részletesebben

LabView Academy. 4. óra párhuzamos programozás

LabView Academy. 4. óra párhuzamos programozás LabView Academy 4. óra párhuzamos programozás Ellenőrző kérdések Hogyan lehet letiltani az automatikus hibakezelés funkciót? a) Engedélyezzük az Execution highlighting ot b) A subvi error out cluster-jét

Részletesebben

9. MPI

9. MPI 9. MPI kertesz.gabor@nik.uni-obuda.hu MPI Message Passing Interface Elosztott memóriájú párhuzamos programozási API Gyk. folyamatok közötti kommunikáció de facto ipari standard Több száz előre definiált

Részletesebben

Szenzorhálózatok programfejlesztési kérdései. Orosz György

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

Részletesebben

Párhuzamos programozási platformok

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

Részletesebben

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI Az MTA Cloud a tudományos alkalmazások támogatására Kacsuk Péter MTA SZTAKI Kacsuk.Peter@sztaki.mta.hu Tudományos alkalmazások és skálázhatóság Kétféle skálázhatóság: o Vertikális: dinamikusan változik

Részletesebben

Párhuzamos programozási platformok

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

Részletesebben

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 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

Részletesebben

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

GPGPU programozás lehetőségei. Nagy Máté Ferenc Budapest ALICE ELTE TTK Fizika MSc 2011 e-science Café

GPGPU programozás lehetőségei. Nagy Máté Ferenc Budapest ALICE ELTE TTK Fizika MSc 2011 e-science Café GPGPU programozás lehetőségei Nagy Máté Ferenc Budapest ALICE ELTE TTK Fizika MSc 2011 e-science Café Vázlat Egy, (kettő,) sok. Bevezetés a sokszálas univerzumba. A párhuzamosok a végtelenben találkoznak,

Részletesebben

Operációs rendszerek III.

Operációs rendszerek III. A WINDOWS NT memóriakezelése Az NT memóriakezelése Memóriakezelő feladatai: Logikai-fizikai címtranszformáció: A folyamatok virtuális címterének címeit megfelelteti fizikai címeknek. A virtuális memóriakezelés

Részletesebben

Matematikai és Informatikai Intézet. 4. Folyamatok

Matematikai és Informatikai Intézet. 4. Folyamatok 4. Folyamatok A folyamat (processzus) fogalma Folyamat ütemezés (scheduling) Folyamatokon végzett "mûveletek" Folyamatok együttmûködése, kooperációja Szálak (thread) Folyamatok közötti kommunikáció 49

Részletesebben

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism) Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

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)

Részletesebben

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja. 5-6-7. előadás Memóriakezelés

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja. 5-6-7. előadás Memóriakezelés Processzus Operációs rendszerek MINB40 5-6-7. előadás Memóriakezelés Egy vagy több futtatható szál Futáshoz szükséges erőforrások Memória (RAM) Program kód (text) Adat (data) Különböző bufferek Egyéb Fájlok,

Részletesebben

Párhuzamos és Grid rendszerek

Párhuzamos és Grid rendszerek Párhuzamos és Grid rendszerek (7. ea) szálak, openmp Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 Párhuzamos és Grid rendszerek BME-IIT Sz.I. 2013.03.25. - 1 - Áttekintés Eddig

Részletesebben

Párhuzamos és Grid rendszerek. Áttekintés. Szálak. Eddig általános eszközöket láttunk, melyek

Párhuzamos és Grid rendszerek. Áttekintés. Szálak. Eddig általános eszközöket láttunk, melyek Párhuzamos és Grid rendszerek (7. ea) szálak, openmp Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 Párhuzamos és Grid rendszerek BME-IIT Sz.I. 2013.03.25. - 1 - Áttekintés Eddig

Részletesebben

Az interrupt Benesóczky Zoltán 2004

Az interrupt Benesóczky Zoltán 2004 Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

Számítógép Architektúrák

Számítógép Architektúrák Cache memória Horváth Gábor 2016. március 30. Budapest docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Már megint a memória... Mindenről a memória tehet. Mert lassú. A virtuális

Részletesebben

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

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.

Részletesebben

Dr. Illés Zoltán zoltan.illes@elte.hu

Dr. Illés Zoltán zoltan.illes@elte.hu Dr. Illés Zoltán zoltan.illes@elte.hu Operációs rendszerek kialakulása Op. Rendszer fogalmak, struktúrák Fájlok, könyvtárak, fájlrendszerek Folyamatok Folyamatok kommunikációja Kritikus szekciók, szemaforok.

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás:2011. 09. 29. 1 2 4 5 MMU!= fizikai memóriaillesztő áramkör. Az utóbbinak a feladata a memória modulok elektromos alacsonyszintű vezérlése, ez sokáig a CPU-n kívül a chipset északi hídban

Részletesebben

Smalltalk 2. Készítette: Szabó Éva

Smalltalk 2. Készítette: Szabó Éva Smalltalk 2. Készítette: Szabó Éva Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x :=

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

Operációs rendszerek. Az NT folyamatok kezelése

Operációs rendszerek. Az NT folyamatok kezelése Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás:2010. 09. 15. 1 2 Kicsit konkrétabban: az utasítás hatására a belső regiszterek valamelyikének értékét módosítja, felhasználva regiszter értékeket és/vagy kívülről betöltött adatot. A

Részletesebben

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei Kutató Intézet kisszámítógépes rendszerekben Tudományos számításokban gyakran nagy mennyiségű aritmetikai művelet elvégzésére van

Részletesebben

Operációs rendszerek Memóriakezelés 1.1

Operációs rendszerek Memóriakezelés 1.1 Operációs rendszerek Memóriakezelés 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK Operációs rendszerek p. A memóriakezelő A

Részletesebben

Győri HPC kutatások és alkalmazások

Győri HPC kutatások és alkalmazások Győri HPC kutatások és alkalmazások dr. Horváth Zoltán dr. Környei László Fülep Dávid Széchenyi István Egyetem Matema5ka és Számítástudomány Tanszék 1 HPC szimulációk az iparban Feladat: Rába- futómű terhelés

Részletesebben

Diplomamunka. Miskolci Egyetem. GPGPU technológia kriptográfiai alkalmazása. Készítette: Csikó Richárd VIJFZK mérnök informatikus

Diplomamunka. Miskolci Egyetem. GPGPU technológia kriptográfiai alkalmazása. Készítette: Csikó Richárd VIJFZK mérnök informatikus Diplomamunka Miskolci Egyetem GPGPU technológia kriptográfiai alkalmazása Készítette: Csikó Richárd VIJFZK mérnök informatikus Témavezető: Dr. Kovács László Miskolc, 2014 Köszönetnyilvánítás Ezúton szeretnék

Részletesebben

Párhuzamos programok futásának kiértékelése Scalasca profiler segítségével

Párhuzamos programok futásának kiértékelése Scalasca profiler segítségével Párhuzamos programok futásának kiértékelése segítségével 2014. Április 24. Pécs, Networkshop 2014 Rőczei Gábor roczei@niif.hu Főbb témák Miért használjunk szuperszámítógépet?! Alapfogalmak Miért van szükség

Részletesebben

Számítógép Architektúrák

Számítógép Architektúrák A virtuális memória Horváth Gábor 2016. március 30. Budapest docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Virtuális tárkezelés Motiváció: Multitaszking környezet Taszkok

Részletesebben

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Egy gépi kódú utasítás általános formája: MK Címrész MK = műveleti kód Mit? Mivel? Az utasítás-feldolgozás általános folyamatábrája: Megszakítás?

Részletesebben

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1 Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó

Részletesebben

HLSL programozás. Grafikus játékok fejlesztése Szécsi László t06-hlsl

HLSL programozás. Grafikus játékok fejlesztése Szécsi László t06-hlsl HLSL programozás Grafikus játékok fejlesztése Szécsi László 2013.02.16. t06-hlsl RESOURCES PIPELINE STAGES RENDER STATES Vertex buffer Instance buffer Constant buffers and textures Index buffer Constant

Részletesebben

Hatékony memóriakezelési technikák. Smidla József Operációkutatási Laboratórium január 16.

Hatékony memóriakezelési technikák. Smidla József Operációkutatási Laboratórium január 16. Hatékony memóriakezelési technikák Smidla József Operációkutatási Laboratórium 2014. január 16. 1 Tartalom A cache áthidalása Cache optimalizálás Adatszerkezetek tervezése A programkód szerkezete Prefetch

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,

Részletesebben

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával SAT probléma kielégíthetőségének vizsgálata masszív parallel mesterséges neurális hálózat alkalmazásával Tajti Tibor, Bíró Csaba, Kusper Gábor {gkusper, birocs, tajti}@aries.ektf.hu Eszterházy Károly Főiskola

Részletesebben

(kernel3d vizualizáció: kernel245_graph.mpg)

(kernel3d vizualizáció: kernel245_graph.mpg) (kernel3d vizualizáció: kernel245_graph.mpg) http://www.pabr.org/kernel3d/kernel3d.html http://blog.mit.bme.hu/meszaros/node/163 1 (ml4 unix mérés boot demo) 2 UNIX: folyamatok kezelése kiegészítő fóliák

Részletesebben

Grafikus kártyák, mint olcsó szuperszámítógépek - I.

Grafikus kártyák, mint olcsó szuperszámítógépek - I. (1) Grafikus kártyák, mint olcsó szuperszámítógépek - I. tanuló szeminárium Jurek Zoltán, Tóth Gyula SZFKI, Röntgendiffrakciós csoport (2) Vázlat I. Motiváció Beüzemelés C alapok CUDA programozási modell,

Részletesebben

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

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

Részletesebben

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

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

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

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

Részletesebben

Tematika. MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework

Tematika. MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework MONGODB Tematika MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework Koncepció párhuzamosítás: hardver infrastruktúra adta lehetőségeket kihasználni (sok szerver, sok

Részletesebben

Operációs rendszerek. UNIX fájlrendszer

Operációs rendszerek. UNIX fájlrendszer Operációs rendszerek UNIX fájlrendszer UNIX fájlrendszer Alapegység: a file, amelyet byte-folyamként kezel. Soros (szekvenciális) elérés. Transzparens (átlátszó) file-szerkezet. Link-ek (kapcsolatok) létrehozásának

Részletesebben

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb Input és Output 1 Bevitel-Kivitel Eddig a számítógép agyáról volt szó Processzusok, memória, stb Szükség van eszközökre Adat bevitel és kivitel a számitógépből, -be Perifériák 2 Perifériákcsoportosításá,

Részletesebben

Plakátok, részecskerendszerek. Szécsi László

Plakátok, részecskerendszerek. Szécsi László Plakátok, részecskerendszerek Szécsi László Képalapú festés Montázs: képet képekből 2D grafika jellemző eszköze modell: kép [sprite] 3D 2D képével helyettesítsük a komplex geometriát Image-based rendering

Részletesebben

GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre

GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre szolgál. Nagyobb memória+grafika nélkül (nincs kijelzőre kimenet)

Részletesebben

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

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

Részletesebben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor

Részletesebben

Programozási nyelvek (ADA)

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)

Részletesebben

OpenCL Kovács, György

OpenCL Kovács, György OpenCL Kovács, György OpenCL Kovács, György Szerzői jog 2013 Typotex Tartalom Bevezetés... xii 1. Az OpenCL története... xii 2. Az OpenCL jelene és jövője... xvii 3. OpenCL a Flynn-osztályokban... xviii

Részletesebben

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Gyakorlat: SSE utasításkészlet Szántó Péter BME MIT, FPGA Laboratórium Vektorizáció Inline assembly Minden fordító támogatja (kivéve VS x64

Részletesebben

Operációs rendszerek. A Windows NT felépítése

Operációs rendszerek. A Windows NT felépítése Operációs rendszerek A Windows NT felépítése A Windows NT 1996: NT 4.0. Felépítésében is új operációs rendszer: New Technology (NT). 32-bites Windows-os rendszerek felváltása. Windows 2000: NT alapú. Operációs

Részletesebben

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter molnarp@ilab.sztaki.hu

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter molnarp@ilab.sztaki.hu Riak Pronounced REE-ahk Elosztott adattároló eszköz Molnár Péter molnarp@ilab.sztaki.hu Mi a Riak? A Database A Data Store A key/value store A NoSQL database Schemaless and data-type agnostic Written (primarily)

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

Google Summer of Code OpenCL image support for the r600g driver

Google Summer of Code OpenCL image support for the r600g driver Google Summer of Code 2015 OpenCL image support for the r600g driver Képek: http://www.google-melange.com a Min szeretnék dolgozni? Kapcsolatfelvétel a mentorral Project proposal Célok Miért jó ez? Milestone-ok

Részletesebben

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK

Részletesebben

OSZTOTT 2D RASZTERIZÁCIÓS MODELL TÖBBMAGOS PROCESSZOROK SZÁMÁRA

OSZTOTT 2D RASZTERIZÁCIÓS MODELL TÖBBMAGOS PROCESSZOROK SZÁMÁRA Multidiszciplináris tudományok, 3. kötet. (2013) sz. pp. 259-268. OSZTOTT 2D RASZTERIZÁCIÓS MODELL TÖBBMAGOS PROCESSZOROK SZÁMÁRA Mileff Péter Adjunktus, Miskolci Egyetem, Informatikai Intézet, Általános

Részletesebben

webalkalmazások fejlesztése elosztott alapon

webalkalmazások fejlesztése elosztott alapon 1 Nagy teljesítményű és magas rendelkezésreállású webalkalmazások fejlesztése elosztott alapon Nagy Péter Termékmenedzser Agenda Java alkalmazás grid Coherence Topológiák Architektúrák

Részletesebben

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális

Részletesebben

Hozzáférés a HPC-hez, kezdő lépések (előadás és demó)

Hozzáférés a HPC-hez, kezdő lépések (előadás és demó) Hozzáférés a HPC-hez, kezdő lépések (előadás és demó) 2013.04.16. Rőczei Gábor roczei@niif.hu Főbb témák Hozzáférés a HPC-hez (Linux/Windows) Programok elindítása a különböző HPC gépeken Vizualizáció (kapcsolódás

Részletesebben

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék Programozás alapjai 6. előadás Wagner György Általános Informatikai Tanszék Record A valós életben a nyilvántartásra kerülő adatok nem azonos típusúak. Pl.: Név Cím Telefon GySz Fiz Kis Béla Miskolc Török

Részletesebben

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra

Részletesebben

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása A verem (stack) A verem egy olyan struktúra, aminek a tetejére betehetünk egy új (vagy sorban több) elemet a tetejéről kivehetünk egy (vagy sorban több) elemet A verem felhasználása Függvény visszatérési

Részletesebben

Generikus Típusok, Kollekciók

Generikus Típusok, Kollekciók Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

Máté: Számítógép architektúrák 2010.12.01.

Máté: Számítógép architektúrák 2010.12.01. Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes

Részletesebben

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

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

Részletesebben

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés Bemutatkozás Molnár Gábor Ukatemi Technologies IT biztonsági szakértő gmolnar@ukatemi.com Áttekintés JavaScript Firefox JS sebezhetőség Adober

Részletesebben

Operációs rendszerek. Bemutatkozás

Operációs rendszerek. Bemutatkozás Bevezetés az operációs rendszerek világába dr. Benyó Balázs benyo@sze.hu Bemutatkozás www.sze.hu/~benyo 1 Számítógép HW-SW felépítése felhasználó felhasználó felhasználó Operációs rendszer Operációs rendszer

Részletesebben

Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter

Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter 1 Mai témák ZFS NTFS 2 ZFS Új koncepció, nem továbbgondolás Pooled storage modell Minden művelet copy-on-write

Részletesebben

Eichhardt Iván GPGPU óra anyagai

Eichhardt Iván GPGPU óra anyagai OpenCL modul 1. óra Eichhardt Iván iffan@caesar.elte.hu GPGPU óra anyagai http://cg.inf.elte.hu/~gpgpu/ OpenCL API és alkalmazása Gyakorlati példák (C/C++) Pl.: Képfeldolgozás Párhuzamos tervezési minták

Részletesebben

Python tanfolyam Python bevezető I. rész

Python tanfolyam Python bevezető I. rész Python tanfolyam Python bevezető I. rész Mai tematika Amiről szó lesz (most): Interpretált vs. fordított nyelvek, GC Szintakszis Alaptípusok Control flow: szekvencia, szelekció, iteráció... Függvények

Részletesebben