„Párhuzamos számítástechnika” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
aNincs szerkesztési összefoglaló |
aNincs szerkesztési összefoglaló |
||
29. sor:
[[Fájl:AmdahlsLaw.svg|jobbra|bélyegkép|300x300px|[[Amdahl-törvény|Amdahl törvényének]] grafikus ábrázolása. A program párhuzamosítástól való felgyorsítását korlátozza az, hogy a program mekkora részét lehet párhuzamosítani. Például ha a program 90%-a párhuzamosítható, akkor az elméleti maximális sebesség a párhuzamos számítás használatával tízszeres lesz, függetlenül attól, hogy hány processzort használunk.]]
[[Fájl:Optimizing-different-parts.svg|bélyegkép|300x300px|Tegyük fel, hogy egy feladatnak két független része van: ''A'' és ''B''. A ''B'' rész a teljes számítás idejének körülbelül 25%-át veszi igénybe. Nagyon kemény munkával előfordulhat, hogy ez a rész ötször gyorsabb lesz, de ez csak kicsit csökkenti a teljes számításhoz szükséges időt. Ezzel szemben lehet, kevesebb munkát kell elvégezni, hogy az ''A'' rész kétszer gyorsabb legyen. Ez sokkal gyorsabbá teszi a számítást
Optimális esetben a párhuzamosítástól való [[Gyorsulás (számítástechnika)|gyorsulás]] lineáris lenne – a feldolgozóelemek számának megkétszerezésével a futási időt a felére, második alkalommal történő megkétszerezésére pedig ismét a felére kellene csökkenteni. Azonban nagyon kevés párhuzamos algoritmus éri el az optimális gyorsulást. Legtöbbjüknél csaknem lineáris sebességnövekedés tapasztalható kisszámú feldolgozóelem esetében, amely állandó értékké válik nagyszámú feldolgozóelem esetén.
47. sor:
[[Fájl:Gustafson.png|jobbra|bélyegkép|300x300px|[[Gustafson-törvény|Gustafson törvényének]] grafikus ábrázolása]]
Amdahl törvénye csak azokra az esetekre vonatkozik, amikor a probléma nagysága rögzítve van. A gyakorlatban, mivel egyre több számítási erőforrás válik elérhetővé, hajlamosak nagyobb problémákhoz (nagyobb adatkészletekhez) szokni, és a párhuzamosítható részben eltöltött idő gyakran sokkal gyorsabban növekszik
: <math>S_\text{latency}(s) = 1 - p + sp.</math>
55. sor:
=== Függőségek ===
Az [[adatfüggőség]]ek megértése alapvető fontosságú a [[párhuzamos algoritmus]]ok megvalósításában. Egyik program sem futhat gyorsabban
Legyen <math>P_i</math> és <math>P_j</math> két programszegmens. Bernstein feltételei<ref>{{cite journal |last=Bernstein |first=A. J. |title=Analysis of Programs for Parallel Processing |journal=IEEE Transactions on Electronic Computers |date=1 October 1966 |volume=EC-15 |issue=5 |pages=757–763 |doi=10.1109/PGEC.1966.264565}}</ref> leírják, mikor a kettő független és párhuzamosan végrehajtható. <math>P_i</math> számára legyen <math>I_i</math> az összes bemeneti és <math>O_i</math> a kimeneti változó, és ugyanígy a <math>P_j</math> esetében. <math>P_i</math> és <math>P_j</math> függetlenek, ha teljesülnek a következők:
140. sor:
A párhuzamos programozási nyelveknek és a párhuzamos számítógépeknek rendelkezniük kell [[konzisztenciamodell]]el (más néven memóriamodellel). A konzisztenciamodell meghatározza a [[Memória (számítástechnika)|számítógépes memóriában]] végrehajtott műveleteket és az eredmények előállításának szabályait.
Az egyik első konzisztenciamodell [[Leslie Lamport]] [[szekvenciális konzisztencia]]modellje volt. A szekvenciális konzisztencia egy párhuzamos program olyan tulajdonsága, hogy annak párhuzamos végrehajtása ugyanazokat az eredményeket adja
A [[tranzakciós memória]] a konzisztenciamodell általános típusa. A tranzakciós memória kölcsönveszi az [[adatbázis]]-elméletből az [[Atomic commit|atomi tranzakciók]] fogalmát, és alkalmazza azokat a memóriaelérésekre.
160. sor:
=== Bitszintű párhuzamosság ===
A [[VLSI]] ''(Very Large Scale Integration)'' számítógépes chipgyártási technológiának az 1970-es években történő megjelenéséig, mintegy 1986-ig
A [[4 bites architektúra|4 bites]] mikroprocesszorokról történelmileg 8, 16, majd 32 bites mikroprocesszorokra váltottak. Ez a tendencia általánosságban véget ért a 32 bites processzorok bevezetésével, amely két évtizede az általános célú számítástechnika szabványa. Csak a 2000-es évek elején, az [[x86-64]]-es architektúrák megjelenésével váltak a [[64 bites architektúra|64 bites]] processzorok köznapivá.
190. sor:
=== Memória és kommunikáció ===
A párhuzamos számítógép főmemóriája vagy [[Közös memóriahasználat|közös memória]] (az összes feldolgozóelem között megosztva egyetlen [[címtér]]ben), vagy [[Elosztott memóriahasználat|elosztott memória]] (amelyben minden feldolgozóelemnek megvan a saját helyi címtere).'''<ref name="PH713">Patterson and Hennessy, p. 713.</ref>''' Az elosztott memória arra a tényre utal, hogy a memória logikailag van elosztva, de gyakran azt jelenti, hogy fizikailag is eloszlik. Az [[osztott közös memória]] és a [[memóriavirtualizáció]] kombinálja a két megközelítést, ahol a feldolgozóelemnek saját helyi memóriája van, és a memóriahoz nem helyi processzorok férhetnek hozzá. A helyi memória elérése általában gyorsabb
[[Fájl:Numa.svg|jobbra|bélyegkép|400x400px|A [[Non-uniform memory access|nem egységes memória-hozzáférésű]] (NUMA) architektúra logikai nézete. Az egyik könyvtárban lévő processzorok kevesebb késleltetéssel férhetnek hozzá a könyvtár memóriájához
Azokat a számítógép-architektúrákat, amelyekben a főmemória minden eleméhez azonos [[Memóriakésleltetés|késleltetéssel]] és [[sávszélesség]]gel lehet hozzáférni, [[Uniform memory access|egységes memória-hozzáférésű]] (UMA) rendszereknek nevezzük. Általában ezt csak egy [[Közös memóriahasználat|közösmemória]]-rendszerrel lehet elérni, amelyben a memória fizikailag nincs elosztva. Azt a rendszert, amely nem rendelkezik ezzel a tulajdonsággal, [[Non-uniform memory access|nem egységes memória-hozzáférésű]] (NUMA) architektúrának nevezik. Az elosztottmemória-rendszerek nem egységes memória-hozzáféréssel rendelkeznek.
A számítógépes rendszerek [[gyorsítótár]]akat használnak – a processzor közelében található kis és gyors memóriákat, amelyek ideiglenes memóriaértékeket tárolnak (fizikai és logikai értelemben is egyaránt közel vannak). A párhuzamos számítógépes rendszereknek nehézségeik vannak olyan gyorsítótárakkal, amelyek ugyanazt az értéket egynél több helyen tárolhatják, a program helytelen végrehajtásának lehetőségével. Ezeknek a számítógépeknek [[Gyorsítótár-koherencia|gyorsítótárkoherencia]]-rendszerre van szükségük, amely nyomon követi a gyorsítótárazott értékeket, és stratégiailag megtisztítja azokat, garantálva ezzel a program helyes végrehajtását. A [[Bus snooping|buszfigyelés]] az egyik leggyakoribb módszer annak nyomon követésére, hogy mely értékekhez férnek hozzá (és ezért meg kell tisztítani). Nagy teljesítményű gyorsítótárkoherencia-rendszerek tervezése nagyon nehéz probléma a számítógép-architektúrában. Ennek eredményeként a közös memória számítógép-architektúrái nem olyan nagy léptékűek
A processzor–processzor és a processzor–memória kommunikációt sokféle módon megvalósíthatjuk a hardverben, többek között közös (multiportált vagy [[Multiplexelés|multiplexelt]]) memória, [[Crossbar switch|keresztkapcsoló]], megosztott [[Busz (informatika)|busz]] vagy összekapcsolt hálózat révén számos [[Hálózati topológia|topológiával]], beleértve a [[Csillagtopológia|csillagot]], [[Gyűrűtopológia|gyűrűt]], [[Fa (gráfelmélet)|fát]], [[Hiperkockagráf|hiperkockát]], kövér hiperkockát (egy csomóponton egynél több processzort tartalmazó hiperkocka) vagy [[Mesh networking|n dimenziós hálót]].
236. sor:
[[Fájl:BlueGeneL_cabinet.jpg|jobbra|bélyegkép|Egy szekrény az [[IBM]] [[IBM Blue Gene|Blue Gene/L]] tömegesen párhuzamos [[szuperszámítógép]]éből]]
A tömegesen párhuzamos processzor (MPP) egyetlen számítógép sok hálózati processzorral. Az MPP-k ugyanolyan tulajdonságokkal rendelkeznek mint a fürtök, de speciális összekapcsolási hálózatokkal rendelkeznek (míg a fürtök kereskedelmi forgalomban kapható hardvert használnak a hálózathoz). Az MPP-k általában nagyobbak is mint a fürtök, jellemzően „sokkal több”
A TOP500 rangsor szerint 2009 júniusában a világon az ötödik leggyorsabb [[szuperszámítógép]] az [[IBM]] [[IBM Blue Gene|Blue Gene/L]] volt, mely egy MPP.
274. sor:
Számos [[alkalmazásspecifikus integrált áramkör]]i (ASIC) megközelítést dolgoztak ki a párhuzamos alkalmazások kezelésére.<ref>Maslennikov, Oleg (2002). [[doi:10.1007/3-540-48086-2_30|„Systematic Generation of Executing Programs for Processor Elements in Parallel ASIC or FPGA-Based Systems and Their Transformation into VHDL-Descriptions of Processor Element Control Units”]] ''Lecture Notes in Computer Science'', '''2328/2002:''' p. 272.</ref><ref>{{cite journal |last=Shimokawa |first=Y. |author2=Fuwa, Y. |author3=Aramaki, N. |title=A parallel ASIC VLSI neurocomputer for a large number of neurons and billion connections per second speed |journal=International Joint Conference on Neural Networks |date=18–21 November 1991 |volume=3 |pages=2162–2167 |doi=10.1109/IJCNN.1991.170708 |isbn=978-0-7803-0227-3 |s2cid=61094111}}</ref><ref>{{cite journal |last=Acken |first=Kevin P. |author2=Irwin, Mary Jane |author3=Owens, Robert M. |title=A Parallel ASIC Architecture for Efficient Fractal Image Coding |journal=The Journal of VLSI Signal Processing |date=July 1998 |volume=19 |issue=2 |pages=97–113 |doi=10.1023/A:1008005616596 |s2cid=2976028}}</ref>
Mivel az ASIC (definíció szerint) egy adott alkalmazásra jellemző, ezért teljes mértékben optimalizálható az adott alkalmazás számára. Ennek eredményeként egy adott alkalmazás esetén az ASIC általában jobb
===== Vektorprocesszorok =====
308. sor:
== Algoritmikus módszerek ==
Ahogy a párhuzamos számítógépek egyre nagyobbá és gyorsabbá válnak, most már képesek vagyunk megoldani azokat a problémákat, amelyek futása korábban túl sokáig tartott. Az olyan változatos területek
* sűrű [[lineáris algebra]],
343. sor:
A SIMD párhuzamos számítógépek az 1970-es évekre vezethetők vissza. A korai SIMD számítógépek mögött a motiváció az volt, hogy a processzor [[vezérlőegység]]ének [[Terjedési késés|kapukésését]] több utasítás felett csökkentsék.'''<ref>Patterson and Hennessy, p. 749.</ref>''' 1964-ben Slotnick javaslatot tett egy tömegesen párhuzamos számítógép felépítésére a [[Lawrence Livermore National Laboratory|Lawrence Livermore Nemzeti Laboratórium]] számára.'''<ref name="G_Wilson" />''' Tervezését az [[Az Amerikai Egyesült Államok Légiereje|amerikai légierő]] támogatta, amely a legkorábbi SIMD párhuzamos számítástechnikai erőfeszítés volt, [[ILLIAC IV]] néven.'''<ref name="G_Wilson" />''' A tervezés kulcsa egy meglehetősen nagy párhuzamosság volt, akár 256 processzorral, amely lehetővé tette a gép számára, hogy nagy adatkészleteken dolgozzon, amit később [[Vektorprocesszor|vektorfeldolgozásnak]] neveznek. Az ILLIAC IV-et azonban „a szuperszámítógépek leghírhedtebbikének” nevezték, mivel a projekt csak egynegyede fejeződött be, de 11 évig tartott, és az eredeti becslés majdnem négyszeresébe került.'''<ref name="infamous">Patterson and Hennessy, pp. 749–50: „Noha az ILLIAC IV sikeresen alkalmazta a későbbi projektekben hasznos technológiákat, az ILLIAC IV számítógépes hibaként jelent meg. A költségek az 1966-ban becsült 8 millió dollárról 1972-re 31 millió dollárra növekedtek, annak ellenére, hogy a tervezett gép mindössze egynegyedét építették meg. Ez talán a szuperszámítógépek leghírhedtebbike volt. A projekt 1965-ben indult, és első valódi alkalmazását 1976-ban futatta.”</ref>''' Amikor 1976-ban végre készen állt az első valódi alkalmazás futtatására, azt a meglévő kereskedelmi szuperszámítógépek, mint például a [[Cray-1]], felülmúlták.
== Biológiai agy
Az 1970-es években, az [[MIT Computer Science and Artificial Intelligence Laboratory|MIT Számítástudományi és Mesterséges Intelligencia Laboratóriumban]] [[Marvin Minsky]] és [[Seymour Papert]] fejlődésnek indította a ''[[Society of Mind]]'' elméletet, amely a biológiai agyat
Hasonló modelleket (amelyek ugyancsak a biológiai agyat tömegesen párhuzamos számítógépnek tekintik, azaz az agy független vagy részben független ágensekből áll) írnak le:
|