Párhuzamos programozás több szállal

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

Download "Párhuzamos programozás több szállal"

Átírás

1 Párhuzamos programozás több szállal Alapvető fogalmak és koncepció A slide-sorozat az Intel Multi-Core Programming for Windows és az Inroduction to Parallel Programming oktatási anyaga alapján készült

2 Tartalom Bevezetés és alapfogalmak Tervezési szempontok Programhelyességi szempontok Teljesítménynövelési szempontok 2

3 Cél A szálakon alapuló párhuzamos programozás alapfogalmainak megismerése Mi a párhuzamos programozás? Próbálkozás egy adott feladat megoldásának gyorsítására 1. a feladat részekre bontásával 2. a részfeladatok szimultán futtatásával többprocesszoros rendszeren A sikeres próbálkozáshoz szükséges megismerni, hogy hol lehet eredményes a párhuzamosítás hogyan lehet tervezni és implementálni ilyen megoldást 3

4 A Multi-Core technológia kifejlődése Single-threading: Egy feladat (process) fut egy időben. Multitasking és Multithreading: Két vagy több feladat fut egy időben (content switching) HT: Két szál fut egy időben ugyanazon a processzoron. Multi-core: Egy alkalmazás számítási feladatai meg- és szétosztottak több számítási egységet használva. Single Core Processors Thread Level Parallelism Instructional Level Parallelism Data Level Parallelism Hyper Threading Dual-Core Processors Multi-Core Processors 4

5 Hyper-Threading vs. Dual Core Both threads without Hyper-Threading Technology: Both threads with Hyper-Threading Technology: Both threads with Dual Core processors: Time saved Time saved Time 5

6 Mi a szál? A szál (thread): A programon belül a vezérlés egyszerű szekvenciális lefutása Futtatandó utasítások sorozata Ütemezési egység (Windows) 2 x 2 x A programon (processen) belül egy szál fut Több szálas futás 6

7 Független programok Párhuzamos program Application Application Application Application Application Application Threads Process Switch Thread Switch A szálak lehetővé teszik, hogy egy program akár több processzort használjanak 7

8 Miért használunk szálakat? Szálak alkalmazásának előnyei: Megnövelt teljesítmény Jobb erőforrás kihasználás Hatékony adatmegosztás Szálak használatának negatív vonzatai: Verenyhelyzet Holtpont lehetősége Kód komplexitás Portábilitási problémák Nehéz tesztelés és debuggolás 8

9 Mi a folyamat? A modern operációs rendszerek a programot folyamatként töltik be. Az operációs rendszer felé kettős szerepel rendelkezik: Erőforrást birtokol (memória, utasításszámláló regiszter (IP), fájl mutató) Futtatási egység (szál) Definíció: A folyamat (process) rendelkezik egy főszállal, amely inicializálja a folyamatot és elkezdi futtatni az utasításokat 2 x Folyamat Többszálas program 9

10 Folyamatok és szálak Szálak és folyamat kapcsolata: A folyamat fő szála inicializálja a folyamatot és elkezdi futtatni az utasításokat A folyamaton belül minden szál készíthet további szálakat Minden szálnak saját verme van A folyamaton belül minden szál megosztja a kód- és adatszegmenst (közös adattéren dolgoznak) thread2() Stack IP Process Data Code thread1() Stack IP threadn() Stack IP Ellenben az elosztott címzést használó párhuzamossággal: Message Passing Interface (MPI) Szálak a folyamatban 10

11 Szálkezelés Szálak létrehozása és megszüntetése, végrehajtásuk vezérlése Egyidejűleg több szál állapotának nyilvántartása, kezelése Kontextusváltás a szálak között 11

12 Folyamatok és szálak Különbségek a folyamatok és a szálak között: Kategória Memóriaterület Interaktivitás Folyamat A folyamat saját memóriaterülettel rendelkezik, amely elszigetelődik. A folyamatok közötti egyszerű kommunikációra nincs lehetőség. system kernel. Szál A folyamaton belüli szálak megosztják a memóriaterületet. A program szálai az adott programnyelv, vagy szoftverkönyvtár megfelelő elemeinek használatával kommunikálhat a folyamat megosztott memóriaterületén. Kontextusváltás Nehézkes kontextus váltás, mert a teljes folyamatállapotot meg kell őrizni. Az aktuális regiszterállapotot kell menteni + a szálak mikroállapotát. 12

13 Process / Thread Management Example Soros-, többfeladatos-, és többszálú programozás elve Soros prog. Többfeladatos programozás Többszálú programozás P1 exec() P2 P1 fork() P2 fork() P3 T1 P1 CreateThread() Create Process() T2 T3 P2 T4 T5 exec() P3 join() T6 Forrás: Dr. Sima Dezső előadása 13

14 Konkurencia Konkurencia akkor fordul elő, amikor két vagy több szál szimultán van jelen Egyetlen processzoron is előfordulhat konkurens működés Thread 1 Thread 2 Thread 1 Thread 1 Thread 1 Thread 2 Thread 2 Thread 1 Thread 2 Thread 2 Konkurencia többszálas folyamatban 14

15 Párhuzamosság Párhuzamosságról akkor beszélünk, amikor több szál szimultán fut Párhuzamos szálak több processzoron futnak Thread 1 Thread 1 Thread 1 Thread 2 Thread 2 Thread 2 Párhuzamos működés a folyamaton belül 15

16 1. rész Tervezési szempontok Többszálú működés célja A funkcionalitás bővítése A teljesítmény (átbocsátás) növelése Minimális végrehajtási idő elérése Maximális végrehajtási teljesítmény elérése Dekompozíció Feladat felbontása kisebb egységekre Adatok felbontása kisebb egységekre Programhelyességi szempontok Teljesítménynövelési szempontok 16

17 Többszálú működés A funkcionalitás bővítése Az alkalmazás által végzett különböző feladatokhoz egy-egy külön szálat rendelünk Ez a legegyszerűbb módszer, mivel az átfedés valószínűsége kicsi Egyszerű kontrollálni a konkurens funkciókat Példa: házépítés Kőműves, ács, tetőfedő, vízvezetékszerelő 17

18 Többszálú működés A teljesítmény (átbocsátás) növelése Cél: a végrehajtási idő csökkentése (vagy a teljesítmény növelése) Példák: Autógyár futószalagja Minden dolgozónak külön feladata van Eltűnt személy keresése Az átfésülendő terület felosztása Posta Postahivatalok, levélszortírozó gépek, kézbesítők 18

19 Többszálú működés Minimális végrehajtási idő elérése Cél: egyetlen feladat végrehajtása a lehető legrövidebb idő alatt Példa: Vacsoraasztal megterítése Egy ember felteszi a tányérokat Egy ember hajtogatja és elhelyezi a szalvétákat Egy ember elhelyezi az evőeszközöket Kanál, villa, kés Egy ember kihelyezi a poharakat 19

20 Többszálú működés Maximális végrehajtási teljesítmény elérése Cél: a lehető legtöbb munka elvégzése a rendelkezésre álló idő alatt Példa: Asztalterítés banketthez Minden asztalt több pincér terít meg külön-külön Tányérokra, poharakra, evőeszközökre stb. szakosodott pincérek 20

21 Dekompozíció A dekompozíció önálló részekre történő logikai szétbontást jelent, ahol az egyes részek közötti kapcsolódásokat is azonosítjuk Dekompozíciós módszerek, tervezési stratégiák és implementációs területek: Adat Dekompozíció Tervezés Megjegyzés Feladat Pipelining (speciális feladat dekompozíció) Különböző szálak ugyanazt a feladatot oldják meg, de más adaton Különböző feladatok különböző szálakhoz rendelése Különböző adathalmazokon Hang és képfeldolgozás, tudományos számítások Olyan alkalmazásokra jellemző, amely számos független funkcióból épül fel Gyakran hardveres Azonos idejű állapotok 21

22 Dekompozíció Adatok felbontása kisebb egységekre Nagy adathalmazokon dolgozunk, amelyek elemei egymástól függetlenül számíthatók ki Adatok és a hozzájuk rendelt számítások elosztása a szálak között Példa: Zárthelyi dolgozatok javítása Több javító dolgozik, mindenkinél van egy javítókulcs de mi történik, ha több különböző javítókulcsra van szükség? 22

23 Dekompozíció Feladat felbontása kisebb egységekre A számítási feladatot egymástól független, természetesen adódó alfeladatokra bontjuk Minden alfeladat szükség szerint kapja az adatokat 3 Példa: Számozott színmezők kifestése Egy adott színnel történő festés egy alfeladat Alfeladatok száma = színek száma Ha két festő 3 dolgozik a munkán, egyikük festheti 9 a páros, másikuk a páratlan mezőket

24 Adat dekompozíció Első részfeladat: miként lehet az adatokat felosztani (a szálak között) Második részfeladat: ugyanazt a feladatot hajtják végre a szálak Példa: két nagyméretű vektor összeadása 24

25 Adat dekompozíció Tömb legnagyobb elemének megkeresése 25

26 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 26

27 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 27

28 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 28

29 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 29

30 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 30

31 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 31

32 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 32

33 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 33

34 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 34

35 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 35

36 Adat dekompozíció Tömb legnagyobb elemének megkeresése Szál 0 Szál 1 Szál 2 Szál 3 36

37 Feladat (funkció) dekompozíció Első részfeladat: a feladatokat szétosztjuk (a szálak között) Második részfeladat: annak eldöntése, hogy az egyes adatelemeket mely szálak használják (olvassák/írják) 37

38 Feladat dekompozíció f() g() h() q() r() s() 38

39 Feladat dekompozíció Szál 1 Szál 0 f() g() h() Szál 2 q() r() s() 39

40 Feladat dekompozíció Szál 1 Szál 0 f() g() h() Szál 2 q() r() s() 40

41 Feladat dekompozíció Szál 1 Szál 0 f() g() h() Szál 2 q() r() s() 41

42 Feladat dekompozíció Szál 1 Szál 0 f() g() h() Szál 2 q() r() s() 42

43 Feladat dekompozíció Szál 1 Szál 0 f() g() h() Szál 2 q() r() s() 43

44 Pipelining Speciális feladat dekompozíció Fútószalag párhuzamosság Példa: 3D renderelés grafikában Modellezés Vetítés Vágás Raszterizálás Input Output 44

45 Egy adathalmaz feldolgozása (1. lépés) Modellezés Vetítés Vágás Raszterizálás 45

46 Egy adathalmaz feldolgozása (2. lépés) Modellezés Vetítés Vágás Raszterizálás 46

47 Egy adathalmaz feldolgozása (3. lépés) Modellezés Vetítés Vágás Raszterizálás 47

48 Egy adathalmaz feldolgozása (4. lépés) Modellezés Vetítés Vágás Raszterizálás pipeline 1 adathalmazt 4 lépésben dolgoz fel 48

49 Két adathalmaz feldolgozása (1. lépés) Modellezés Vetítés Vágás Raszterizálás 49

50 Két adathalmaz feldolgozása (2. időpont) Modellezés Vetítés Vágás Raszterizálás 50

51 Két adathalmaz feldolgozása (3. lépés) Modellezés Vetítés Vágás Raszterizálás 51

52 Két adathalmaz feldolgozása (4. lépés) Modellezés Vetítés Vágás Raszterizálás 52

53 Két adathalmaz feldolgozása (5. lépés) Modellezés Vetítés Vágás Raszterizálás A pipeline 2 adathalmazt 5 lépésben dolgoz fel 53

54 Öt adathalmaz feldolgozása (1. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 54

55 Öt adathalmaz feldolgozása (2. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 55

56 Öt adathalmaz feldolgozása (3. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 56

57 Öt adathalmaz feldolgozása (4. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 57

58 Öt adathalmaz feldolgozása (5. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 58

59 Öt adathalmaz feldolgozása (6. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 59

60 Öt adathalmaz feldolgozása (7. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 60

61 Öt adathalmaz feldolgozása (8. lépés) Data set 0 Szál 0 Szál 1 Szál 2 Szál 3 Data set 1 Data set 2 Data set 3 Data set 4 61

62 Függőségi gráf Gráf = (csomópontok, irányított élek) Csomópont lehet: Változó hozzárendelés (kivétel index) Konstans Operátor, vagy függvényhívás Az élek a változók vagy a konstansok használatát jelölik: Adat folyamokban (adat függőség: egyik adat új értéke, a másik adattól) Vezérlési folyamatban (vezérlés függőség: if (a < b) a = b; ) 62

63 Függőségi gráf 1. példa for (i = 0; i < 3; i++) a[i] = b[i] / 2.0; b[0] 2 b[1] 2 b[2] 2 / / / a[0] a[1] a[2] 63

64 Függőségi gráf 1. példa for (i = 0; i < 3; i++) a[i] = b[i] / 2.0; Lehetséges adat dekompozíció b[0] 2 b[1] 2 b[2] 2 / / / a[0] a[1] a[2] 64

65 Függőségi gráf 2. példa for (i = 1; i < 4; i++) a[i] = a[i-1] * b[i]; a[0] b[1] b[2] b[3] * * * a[1] a[2] a[3] 65

66 Függőségi gráf 2. példa for (i = 1; i < 4; i++) a[i] = a[i-1] * b[i]; Nincs adat dekompozíció a[0] b[1] b[2] b[3] * * * a[1] a[2] a[3] 66

67 Függőségi gráf 3. példa a = f(x, y, z); b = g(w, x); t = a + b; c = h(z); s = t / c; w x y z g f h b a c t / s 67

68 Függőségi gráf 3. példa a = f(x, y, z); b = g(w, x); t = a + b; c = h(z); s = t / c; w x y z g f h Feladat dekompozíció 3 szálra b t a / c s 68

69 Függőségi gráf 4. példa for (i = 0; i < 3; i++) a[i] = a[i] / 2.0; a[0] 2 a[1] 2 a[2] 2 / / / a[0] a[1] a[2] 69

70 Függőségi gráf 4. példa for (i = 0; i < 3; i++) a[i] = a[i] / 2.0; Adat dekompozíció a[0] 2 a[1] 2 a[2] 2 / / / a[0] a[1] a[2] 70

71 Függőségi gráf 5. példa for (i = 0; i < 3; i++) { a[i] = a[i] / 2.0; if (a[i] < 1.0) break; } a[0] 2 a[1] 2 a[2] 2 / 1 / 1 / a[0] < a[1] < a[2] 71

72 2. rész Tervezési szempontok Programhelyességi szempontok Versenyhelyzet és szinkronizáció Holtpont Teljesítménynövelési szempontok 72

73 Versenyhelyzet A szálak egymással versenyeznek az erőforrásokért A végrehajtás sorrendjét feltételezzük, de garantálni nem tudjuk Leggyakoribb eset: versengés a tárhelyért Több szál egyszerre kíván azonos memóriacímhez hozzáférni Ezek közül legalább egy írási céllal Példa: Székfoglaló játék 73

74 Kölcsönös kizárás Kritikus szakasz (régió) Olyan kódrészlet, amely megosztva használt változókhoz fér hozzá (olvasási és írási műveletek) Kölcsönös kizárás Biztosítja, hogy a kritikus szakaszba egyszerre csak egy szál léphessen be Szemantikailag helyes programozási struktúrát biztosít a versenyhelyzetek elkerüléséhez Példa: Banki széf Az ügyintézők gondoskodnak a kölcsönös kizárásról 74

75 Szinkronizáció kölcsönös kizárással Kölcsönös kizárás biztosítására használt szinkronizációs objektumok típusai és használatuk Zár (lock), szemafor (semaphore), kritikus szakasz (critical section), feltételváltozó (condition variable), esemény (event), atomi végrehajtás (atomic/interlocked) Egy szál magánál tartja a szinkronizációs objektumot, a többi szál kénytelen várakozni Amikor elkészült a feladatával, a fenti szál elengedi az objektumot, amelyet az egyik várakozó szál kaphat meg Példa: Könyvtári kölcsönzés Könyvtártag kikölcsönöz egy könyvet A többieknek meg kell várniuk, amíg visszahozza 75

76 Szinkronizáció adott végrehajtási ponton (randevú) A szálak a végrehajtás adott pontján bevárják egymást A várakozó szálak nem végeznek hasznos munkát veszteség Amikor minden szál megérkezett a randevú helyszínére, mindegyikük továbbléphet Példa: Rajtvonal, pl. futóversenyen 9 76

77 Holtpont A szálak olyan eseményre (vagy feltételre) várnak, amely sosem következik be Példa: Forgalmi dugó kereszteződésben Egyik kocsi sem tud be- vagy visszafordulni Élőpont Példa: A szálak egymásra reagálva oda-vissza váltanak állapotot Malomjátékban a csiki-csuki lépés Két harcos küzd egymással 77

78 3. rész Tervezési szempontok Programhelyességi szempontok Teljesítménynövelési szempontok Gyorsulás és hatékonyságnövekedés Szemcsézettség és terheléskiegyenlítés 78

79 Gyorsulás (egyszerű eset) Annak mértéke, hogy a számítás mennyivel gyorsabb az elképzelhető leggyorsabb soros végrehajtású kódnál Soros végrehajtás ideje / párhuzamos végrehajtás ideje Példa: Léckerítés lefestése 30 perc előkészület (soros) Egy léc lefestése 1 percet igényel 30 perc takarítás (soros) Eszerint 300 léc lefestése 360 percig tart (soros végrehajtás esetén) 79

80 Gyorsulás kiszámítása Festők száma Időszükséglet Gyorsulás = X = X = X = X Végtelen = X Amdahl törvénye: A gyorsítási lehetőséget a soros szakasz ideje határolja be 80

81 Amdahl törvény A párhuzamos végrehajtás gyorsításának határát írja le T serial (1-P) n = (1-P) P P/2 P/ T parallel = {(1-P) + P/n} T serial n = number of processors Speedup = T serial / T 1.0/ /0.75 = = parallel A soros rész határozza meg a gyorsíthatóság mértékét 81

82 Maximális gyorsítás Amdahl t S (a) Egy processzor pt S Soros (1 p)t S Párhuzamosítható (b) Több processzor n processzor t P (1 p)t S /n 82

83 Amdahl törvénye (1967) Adott részszámítás felgyorsításának eredő gyorsító hatása: 1 1 P P S ahol P: a számítás felgyorsított szakasza S: P gyorsulásának mértéke Speciális eset (párhuzamosítás): F 1 F 1 N ahol F: a számítás soros szakasza N: processzorok száma 83

84 Gyorsítás a processzorok számának függvényében 20 p = 0% Gyorsítás p = 5% p = 10% p = 20% Processzorok száma 84

85 Maximális gyorsítás Maximális gyorsítás n, ha a processzorok száma n (lineáris gyorsítás) Ha gyorsítás nagyobb mint n, akkor szuper lineáris gyorsításnak nevezzük. 85

86 Szuper lineáris gyorsítás (a) Keresés minden altérben sorosan Start idő t S t S / n altér keresés Dt x t S / n Itt van a keresett elem x. altér 86

87 (b) Párhuzamos keresés minden altérben Dt megoldás 87

88 Gyorsulás kiszámítása Festők száma Időszükséglet Gyorsulás = X = X = X = X végtelen = X Amdahl törvénye A gyorsítási lehetőséget a soros szakasz ideje határolja be Mi lenne, ha a tulajdonos szórópisztollyal egy óra alatt lefestené a 300 lécet? Hatékonyabb soros algoritmus Ha a többi munkásnak nincs szórópisztolya, legfeljebb mekkora gyorsulás érhető el a párhuzamosítással? 88

89 Hatékonyság Annak mértéke, hogy a számítási erőforrások (szálak) milyen arányban végeznek hasznos tevékenységet Gyorsulás / szálak száma [%] A hasznos tevékenység idejének százalékában szokás kifejezni Festők száma Időszükséglet Gyorsulás Hatékonyság X 100% = X 85% = X 40% = X 5.7% végtelen = X igen rossz 89

90 Szemcsézettség Gondoskodni kell arról, hogy minden szálnak jusson elég munka A túl kevés munka és a túl sok szál kezelése egyaránt rontja a teljesítményt Két ember fel tudja osztani egymás között a fűnyírást És három? Négy? Tíz? 90

91 Terheléskiegyenlítés A felosztás akkor a leghatékonyabb, ha a szálak mindegyike egyenlő mennyiségű munkát végez A feladatukat már elvégzett szálak tétlenül várakoznak A szálaknak tehát célszerű közel egyidőben befejezni a munkát Példa: Felszolgálás, ill. asztalbontás bankettnél Legjobb, ha minden pincérhez kb. ugyanannyi asztal tartozik 91

92 Összefoglaló A szál egymással kapcsolatban álló utasítások diszkrét sorozata, párhuzamos végrehajtási egység, függetlenül fut. A programon belül az ütemezés alapegysége (Windowsnál) A szálak használatának előnye a növekvő teljesítmény, a jobb erőforrás kihasználás és a hatékony adatmegosztás lehetősége A szálak használatából adódó lehetséges problémák: versenyhelyzet, holtpont, a kód komplexitás növekedése, portábilitási problémák, tesztelési és debuggolási nehézségek Minden folyamat legalább egy szálat birtokol, amely a főszál. Ez inicializálja a folyamatot és elkezdi futtatni az utasításokat A folyamaton belül minden szál megosztja a kód- és az adatszegmenst Konkurens szálak egy magon is futhatnak, párhuzamossághoz több mag szükséges 92

93 Összefoglaló (folytatás) A párhuzamos működés célja lehet egy feladat leggyorsabb végrehajtása, vagy az időegység alatt elvégzendő feladatok mennyiségének maximalizálása A program dekompozíciónak azt a módját, amely a futtatandó funkciók típusán és számán alapszik funkcionális dekompozíciónak nevezzük Nagy adathalmazok szétvágásával és a részek független kezelésével, azaz külön szálakhoz történő rendelésével végzett számítást adat dekompozíciónak nevezzük a többszálú alkalmazásban Azon alkalmazásokat, amelyek számos független funkcióból épülnek fel általában funkcionális dekompozícióval célszerű párhuzamosítani, míg a független adatokkal skálázható alkalmazásokat adat dekompozícióval Versenyhelyzet akkor alakulhat ki, amikor a programozó feltételezi a futás valamilyen sorrendjét, de nem biztosít ehhez megfelelő szinkronizációt 93

94 Összefoglaló (folytatás) Az élőpont olyan helyzetre utal, amikor a szálak nem tudnak előrelépni a számításban, de nem várakoznak valamilyen esemény bekövetkezésére A gyorsítás azt jellemzi, hogy a párhuzamos számítás relatíve mennyivel gyorsabb a megvalósítható leggyorsabb szoroshoz képest A párhuzamos hatékonyság annak a mértéke, hogy a szálak mennyire tevékenyek (mennyire végeznek munkát) a párhuzamos számítások során A szemcsézettség a számítások és a szinkronizációk arányát jellemzi A terheléskiegyenlítés a munka olyan megosztását jelenti a szálak között, hogy hozzávetőlegesen ugyanannyi feladatot oldjanak meg 94

95 Irodalom S. Akhter, J. Roberts: Multi-Core Programming (Increasing Performance through Software Multi-threading), Intel Press, 2006 A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction to Parallel Computing, 2nd edition Addison-Wesley, 2003, ISBN Iványi A.: Párhuzamos algoritmusok, ELTE Eötvös Kiadó, Budapest, Introduction to Parallel Computing Albert I. (szerk.): A.NET Framework és programozása, Szak Kiadó, Budapest, 2004 J. Albahari: Threading in C#, F. Rasheed: Programmer's Heaven C# School Book (ingyenes és szabad felhasználású) 95

Párhuzamos programozás több szállal

Párhuzamos programozás több szállal Párhuzamos programozás több szállal Alapvető fogalmak és koncepciók A slide-sorozat sorozat az Intel Multi-Core Programming for Windows éss az Inroduction to Parallel Programming oktatási anyaga alapján

Részletesebben

Párhuzamos programozás több szállal

Párhuzamos programozás több szállal Párhuzamos programozás több szállal Alapvető fogalmak és koncepciók A slide-sorozat sorozat az Intel Multi-Core Programming for Windows és s az Inroduction to Parallel Programming oktatási anyaga alapján

Részletesebben

Párhuzamos algoritmusok tervezési lehetőségei és módszerei

Párhuzamos algoritmusok tervezési lehetőségei és módszerei Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Párhuzamos algoritmusok tervezési lehetőségei és módszerei A párhuzamos működés célkitűzései Teljesítménynövelés

Részletesebben

Bevezetés. Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar

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

Részletesebben

Párhuzamos algoritmusok tervezésének alapjai

Párhuzamos algoritmusok tervezésének alapjai Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Párhuzamos algoritmusok tervezésének alapjai Bevezetés Részfeladatok és dekompozíció Processzek és leképzé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

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Kereső algoritmusok a diszkrét optimalizálás problémájához A diszkrét optimalizálási probléma Soros megoldás

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

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

Számítógép architektúra

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

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

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

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

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

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

egy szisztolikus példa

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

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

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

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

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

Részletesebben

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20 Teljesítmény Mérés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 1 / 20 Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt

Részletesebben

Párhuzamos és Grid rendszerek

Párhuzamos és Grid rendszerek Párhuzamos és Grid rendszerek (2. ea) párhuzamos algoritmusok tervezése Szeberényi Imre BME IIT Az ábrák egy része Ian Foster: Designing and Building Parallel Programs (Addison-Wesley)

Részletesebben

Előadás_# Az első ZH megírása

Előadás_# Az első ZH megírása Előadás_#05. 1. Az első ZH megírása 2. Szinkronizáció [OR_02_Folyamatok_zs.ppt az 57-114. diáig / nem minden diát érintve] Azok a folyamatok, melyek egymástól nem függetlenek, azaz valamilyen függőség

Részletesebben

Operációs rendszerek MINB240

Operációs rendszerek MINB240 Processzusok, szálak Operációs rendszerek MINB240 2. előadás Szálak, IPC Egy processzus Saját címtartomány Egyetlen vezérlési szál Hasznos lehet több kvázi párhuzamos vezérlési szál használata egy címtartományban

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

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

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat

Részletesebben

Operációkutatás példatár

Operációkutatás példatár 1 Operációkutatás példatár 2 1. Lineáris programozási feladatok felírása és megoldása 1.1. Feladat Egy gazdálkodónak azt kell eldöntenie, hogy mennyi kukoricát és búzát vessen. Ha egységnyi földterületen

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

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

Objektumorientált Programozás III.

Objektumorientált Programozás III. Objektumorientált Programozás III. Vezérlési szerkezetek ismétlés Matematikai lehetőségek Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő

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

Dinamikus programozás - Szerelőszalag ütemezése

Dinamikus programozás - Szerelőszalag ütemezése Dinamikus programozás - Szerelőszalag ütemezése A dinamikus programozás minden egyes részfeladatot és annak minden részfeladatát pontosan egyszer oldja meg, az eredményt egy táblázatban tárolja, és ezáltal

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

alkalmazásfejlesztő környezete

alkalmazásfejlesztő környezete A HunGrid infrastruktúra és alkalmazásfejlesztő környezete Gergely Sipos sipos@sztaki.hu MTA SZTAKI Hungarian Academy of Sciences www.lpds.sztaki.hu www.eu-egee.org egee EGEE-II INFSO-RI-031688 Tartalom

Részletesebben

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron

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

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

Képfeldolgozás és párhuzamosíthatóság

Képfeldolgozás és párhuzamosíthatóság Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Képfeldolgozás és párhuzamosíthatóság A képfeldolgozás olyan alkalmazási terület, amely számos lehetőséget

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

PÁRHUZAMOS SZÁMÍTÁSTECHNIKA MODUL AZ ÚJ TECHNOLÓGIÁKHOZ KAPCSOLÓDÓ MEGKÖZELÍTÉSBEN

PÁRHUZAMOS SZÁMÍTÁSTECHNIKA MODUL AZ ÚJ TECHNOLÓGIÁKHOZ KAPCSOLÓDÓ MEGKÖZELÍTÉSBEN PÁRHUZAMOS SZÁMÍTÁSTECHNIKA MODUL AZ ÚJ TECHNOLÓGIÁKHOZ KAPCSOLÓDÓ MEGKÖZELÍTÉSBEN PARALLEL COMPUTING MODULE BASED ON THE NEW TECHNOLOGIES Vámossy Zoltán 1, Sima Dezső 2, Szénási Sándor 3, Rövid András

Részletesebben

Párhuzamos algoritmusok tervezésének alapjai

Párhuzamos algoritmusok tervezésének alapjai Párhuzamos algoritmusok tervezésének alapjai A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003 könyv anyaga alapján Vázlat Bevezetés Részfeladatok és

Részletesebben

A LabVIEW 8.5 támogatja a többmagos processzorok lehetőségeinek kihasználását

A LabVIEW 8.5 támogatja a többmagos processzorok lehetőségeinek kihasználását A LabVIEW 8.5 támogatja a többmagos processzorok lehetőségeinek kihasználását A processzorok sebességének növelése az elmúlt évek során elérte határait. Moore törvénye, amely kimondja, hogy a chip-ekbe

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

TÖBBSZÁLÚ/TÖBBMAGOS PROCESSZORARCHITEKTÚRÁK PROGRAMOZÁSA

TÖBBSZÁLÚ/TÖBBMAGOS PROCESSZORARCHITEKTÚRÁK PROGRAMOZÁSA Írta: Vámossy Zoltán, Miklós Árpád, Szénási Sándor Lektorálta: oktatói munkaközösség TÖBBSZÁLÚ/TÖBBMAGOS PROCESSZORARCHITEKTÚRÁK PROGRAMOZÁSA PÁRHUZAMOS SZÁMÍTÁSTECHNIKA MODUL PROAKTÍV INFORMATIKAI MODULFEJLESZTÉS

Részletesebben

Alkalmazások típusai Szoftverismeretek

Alkalmazások típusai Szoftverismeretek Alkalmazások típusai Szoftverismeretek Prezentáció tartalma Szoftverek csoportjai Operációs rendszerek Partíciók, fájlrendszerek Tömörítés Vírusok Adatvédelem 2 A szoftver fogalma A szoftver teszi használhatóvá

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

Folyamatok. 6. előadás

Folyamatok. 6. előadás Folyamatok 6. előadás Folyamatok Folyamat kezelése, ütemezése folyamattábla új folyamat létrehozása átkpcsolás folyamatok elválasztása egymástól átlátszó Szál szálkezelő rendszer szálak védése egymástól

Részletesebben

Párhuzamos programozási modellek

Párhuzamos programozási modellek Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Párhuzamos programozási modellek Osztályozás Párhuzamos rendszerek Flynn-féle osztályozása Párhuzamos

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc - OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc - koczka.ferenc@ektf.hu KÖVETELMÉNYEK GYAKORLATI JEGY: Két zárthelyi dolgozat eredményes megírása. Forrás: http://wiki.koczka.hu ELMÉLETI VIZSGA Az előadások

Részletesebben

Operációs Rendszerek II.

Operációs Rendszerek II. Operációs Rendszerek II. Második előadás Első verzió: 2004/2005. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter Visszatekintés Visszatekintés Operációs rendszer a számítógép hardver elemei és az

Részletesebben

Utolsó módosítás:

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

Részletesebben

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna Processzusok 1 Uniprogramozás Program A futás várakozás futás várakozás Idő A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna 2 Multiprogramozás Program A futás vár futás

Részletesebben

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum. Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi

Részletesebben

Operációs rendszerek. Az NT memóriakezelése

Operációs rendszerek. Az NT memóriakezelése Operációs rendszerek MS Windows NT (2000) memóriakezelés Az NT memóriakezelése 32-bites virtuális memóriakezelés: 4 GB-os címtartomány, alapesetben: a fels! 2 GB az alkalmazásoké, az alsó 2 GB az OPR-é.

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

I.3 ELOSZTOTT FOLYAMATSZINTÉZIS BERTÓK BOTOND. Témavezetői beszámoló

I.3 ELOSZTOTT FOLYAMATSZINTÉZIS BERTÓK BOTOND. Témavezetői beszámoló infokommunikációs technológiák infokommunikációs technológiák I.3 ELOSZTOTT FOLYAMATSZINTÉZIS BERTÓK BOTOND Témavezetői beszámoló Pannon Egyetem 2015. január 7. A KUTATÁSI TERÜLET RÖVID MEGFOGALMAZÁSA

Részletesebben

Operációs rendszerek Folyamatok 1.1

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

Részletesebben

Konkurens TCP Szerver

Konkurens TCP Szerver A gyakorlat célja: Konkurens TCP Szerver Megismerkedni a párhuzamos programozás és a konkurens TCP szerver készítésének az elméleti és gyakorlati alapjaival és egy egyidejűleg több klienst is kiszolgáló

Részletesebben

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

Részletesebben

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Csoportos üzenetszórás optimalizálása klaszter rendszerekben Csoportos üzenetszórás optimalizálása klaszter rendszerekben Készítette: Juhász Sándor Csikvári András Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Automatizálási

Részletesebben

Függvények növekedési korlátainak jellemzése

Függvények növekedési korlátainak jellemzése 17 Függvények növekedési korlátainak jellemzése A jellemzés jól bevált eszközei az Ω, O, Θ, o és ω jelölések. Mivel az igények általában nemnegatívak, ezért az alábbi meghatározásokban mindenütt feltesszük,

Részletesebben

Dr. habil. Maróti György

Dr. habil. Maróti György infokommunikációs technológiák III.8. MÓDSZER KIDOLGOZÁSA ALGORITMUSOK ÁTÜLTETÉSÉRE KIS SZÁMÍTÁSI TELJESÍTMÉNYŰ ESZKÖZÖKBŐL ÁLLÓ NÉPES HETEROGÉN INFRASTRUKTÚRA Dr. habil. Maróti György maroti@dcs.uni-pannon.hu

Részletesebben

Párhuzamosítás adatbáziskezelő rendszerekben

Párhuzamosítás adatbáziskezelő rendszerekben Párhuzamosítás adatbáziskezelő rendszerekben Erős Levente, 2018. 1 Párhuzamos műveletvégzés Miért? Nagy adatmennyiségek Nagyságrendileg nő a keletkező/feldolgozandó/tárolandó adat mennyisége Célhardver

Részletesebben

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása PM-06 p. 1/28 Programozási módszertan Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

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

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék Ütemezési problémák Kis Tamás 1 1 MTA SZTAKI valamint ELTE, Operációkutatási Tanszék ELTE Problémamegoldó Szeminárium, 2012. ősz Kivonat Alapfogalmak Mit is értünk ütemezésen? Gépütemezés 1 L max 1 rm

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

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott jáva programok automatikus tesztelése Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott alkalmazások Automatikus tesztelés Tesztelés heurisztikus zaj keltés Tesztelés genetikus

Részletesebben

Számítógép architektúrák záróvizsga-kérdések február

Számítógép architektúrák záróvizsga-kérdések február Számítógép architektúrák záróvizsga-kérdések 2007. február 1. Az ILP feldolgozás fejlődése 1.1 ILP feldolgozási paradigmák (Releváns paradigmák áttekintése, teljesítmény potenciáljuk, megjelenési sorrendjük

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 5. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE Algoritmusokfelülnézetből 1. ELŐADÁS Sapientia-EMTE 2015-16 Algoritmus Az algoritmus kifejezés a bagdadi arab tudós, al-hvárizmi(780-845) nevének eltorzított, rosszul latinra fordított változatából ered.

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

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Előadás_#02. Előadás_02-1 -

Előadás_#02. Előadás_02-1 - Előadás_#02. 1. Folyamatok [OR_02_Folyamatok_zs.ppt az 1-12. diáig / Előadás_#02 (dinamikusan)] A multiprogramozott rendszerek előtt a tiszta szekvenciális működés volt a jellemző. Egy program (itt szándékosan

Részletesebben

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása 1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június

Részletesebben

III. Alapfogalmak és tervezési módszertan SystemC-ben

III. Alapfogalmak és tervezési módszertan SystemC-ben III. Alapfogalmak és tervezési módszertan SystemC-ben A SystemC egy lehetséges válasz és egyben egyfajta tökéletesített, tovább fejlesztett tervezési módszertan az elektronikai tervezés területén felmerülő

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

Operációs rendszerek. Folyamatok ütemezése

Operációs rendszerek. Folyamatok ütemezése Operációs rendszerek Folyamatok ütemezése Alapok Az ütemezés, az események sorrendjének a meghatározása. Az ütemezés használata OPR-ekben: az azonos erőforrásra igényt tartó folyamatok közül történő választás,

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

SzA19. Az elágazások vizsgálata

SzA19. Az elágazások vizsgálata SzA19. Az elágazások vizsgálata (Az elágazások csoportosítása, a feltételes utasítások használata, a műveletek eredményének vizsgálata az állapottér módszerrel és közvetlen adatvizsgálattal, az elágazási

Részletesebben

Párhuzamosság a modern operációs rendszerekben

Párhuzamosság a modern operációs rendszerekben Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Párhuzamosság a modern operációs rendszerekben Bevezetés Folyamatok nyilvántartása Folyamatok életciklusa

Részletesebben

Operációs Rendszerek II.

Operációs Rendszerek II. Operációs Rendszerek II. Harmadik előadás Első verzió: 2004/2005. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter Visszatekintés: folyamatok Programok és erőforrások dinamikus összerendelése a program

Részletesebben

Dinamikus programozás párhuzamosítási lehetőségekkel

Dinamikus programozás párhuzamosítási lehetőségekkel 8. tavasz Dinamikus programozás párhuzamosítási lehetőségekkel A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, könyv, valamint Michael Goodrich (Univ. California)

Részletesebben

Informatika Rendszerek Alapjai

Informatika Rendszerek Alapjai Informatika Rendszerek Alapjai Dr. Kutor László Alapfogalmak Információ-feldolgozó paradigmák Analóg és digitális rendszerek jellemzői Jelek típusai Átalakítás rendszerek között http://uni-obuda.hu/users/kutor/

Részletesebben

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

Részletesebben

Programtervezés. Dr. Iványi Péter

Programtervezés. Dr. Iványi Péter Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű

Részletesebben

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007 Hálózatok II 2007 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Szerda 17:00 18:30 Gyakorlat: nincs Vizsga írásbeli Honlap: http://people.inf.elte.hu/lukovszki/courses/g/07nwii

Részletesebben

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

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

Részletesebben

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Keresés képi jellemzők alapján Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Lusta gépi tanulási algoritmusok Osztályozás: k=1: piros k=5: kék k-legközelebbi szomszéd (k=1,3,5,7)

Részletesebben

11. előadás. Párhuzamosság. Több szálon futó algoritmusok, logikai párhuzamosság. Adatszerkezetek és algoritmusok előadás április 30.

11. előadás. Párhuzamosság. Több szálon futó algoritmusok, logikai párhuzamosság. Adatszerkezetek és algoritmusok előadás április 30. 11. előadás Több szálon futó algoritmusok, logikai párhuzamosság Adatszerkezetek és algoritmusok előadás 2019. április 30.,, és Debreceni Egyetem Informatikai Kar 11.1 Általános tudnivalók Ajánlott irodalom:

Részletesebben

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor A szotverarchitektúra fogalma A szoftverarchitektúra nagyon fiatal diszciplína. A fogalma még nem teljesen kiforrott. Néhány definíció: A szoftverarchitektúra

Részletesebben

Hálózati Folyamok Alkalmazásai. Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék

Hálózati Folyamok Alkalmazásai. Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék Hálózati Folyamok Alkalmazásai Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék Maximális folyam 7 7 9 3 2 7 source 8 4 7 sink 7 2 9 7 5 7 6 Maximális folyam feladat Adott [N, A] digráf (irányított

Részletesebben

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben