Párhuzamos programozás több szállal
|
|
- Emília Barna
- 5 évvel ezelőtt
- Látták:
Á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 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észletesebbenPá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észletesebbenPá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észletesebbenBevezeté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észletesebbenPá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észletesebbenProcesszusok (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észletesebbenKereső 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észletesebbenPá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észletesebbenC# 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észletesebbenProcesszusok (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észletesebbenSzá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észletesebbenGrafikus 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észletesebbenSzenzorhá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észletesebbenPá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észletesebbenFlynn 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észletesebbenKereső 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észletesebbenLabView 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észletesebbenegy 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észletesebbenSzimulá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észletesebbenAz 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észletesebbenPá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észletesebbenSAT 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észletesebbenKereső 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észletesebbenTeljesí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észletesebbenPá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észletesebbenElő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észletesebbenOperá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észletesebbenKé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észletesebbenOpenCL 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.
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észletesebbenOperá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észletesebbenOperá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észletesebbenProgramozá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észletesebbenObjektumorientá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észletesebbenBevezeté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észletesebbenDinamikus 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észletesebbenSzá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észletesebbenalkalmazá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észletesebbenAz 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észletesebbenOperá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észletesebbenOperá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észletesebbenKé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észletesebbenOccam 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észletesebbenPÁ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észletesebbenPá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észletesebbenA 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észletesebbenPá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észletesebbenTÖ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észletesebbenAlkalmazá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észletesebben5-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észletesebbenFolyamatok. 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észletesebbenPá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észletesebbenTö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észletesebbenOPERÁ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észletesebbenOperá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észletesebbenUtolsó 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észletesebbenUniprogramozá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észletesebben9. 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észletesebbenOperá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észletesebbenSzá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észletesebbenI.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észletesebbenOperá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észletesebbenKonkurens 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észletesebbenElő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észletesebbenCsoportos ü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észletesebbenFü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észletesebbenDr. 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észletesebbenPá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észletesebbenProgramozá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észletesebbenAdatok á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észletesebben9. 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 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észletesebbenOperá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észletesebbenOsztott 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észletesebbenSzá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észletesebbenBevezeté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észletesebbenAlgoritmusokfelü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észletesebbenSzá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észletesebbenProgramozá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észletesebbenElő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észletesebbenInformá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észletesebbenIII. 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észletesebbenOsztá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észletesebbenOperá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észletesebbenOsztá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észletesebbenSzA19. 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észletesebbenPá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észletesebbenOperá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észletesebbenDinamikus 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észletesebbenInformatika 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észletesebbenAlgoritmusok 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észletesebbenProgramtervezé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észletesebben1: 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észletesebbenA 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észletesebbenKeresé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észletesebben11. 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észletesebbenSzoftverarchitektú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észletesebbenHá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észletesebben1. 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észletesebbenWebprogramozá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