A párhuzamos számítási rendszerek fizikai számítógépes rendszerek, valamint szoftverrendszerek, amelyek valamilyen módon párhuzamos adatfeldolgozást valósítanak meg számos számítási csomóponton. [egy]
Például egy tömb gyors rendezéséhez egy kétprocesszoros gépen feloszthatja a tömböt, és mindegyik felét külön processzoron rendezheti. Az egyes felek rendezése eltérő időt vehet igénybe, ezért szinkronizálásra van szükség .
A számítások párhuzamosításának gondolata azon a tényen alapul, hogy a legtöbb feladat felosztható kisebb feladatok halmazára, amelyek egyidejűleg megoldhatók. A párhuzamos számítás általában a cselekvések összehangolását igényli. A párhuzamos számítástechnika többféle formában létezik: bitszintű párhuzamosság, utasításszintű párhuzamosság, adatpárhuzamosság és feladat-párhuzamosság. A párhuzamos számítástechnikát hosszú évek óta főleg a nagyteljesítményű számítástechnikában alkalmazzák, de az utóbbi időben megnőtt az érdeklődés a processzorok órajelének növelésére vonatkozó fizikai korlátozások miatt. A párhuzamos számítástechnika a számítógép-architektúra uralkodó paradigmájává vált , többnyire többmagos processzorok formájában . [2]
Párhuzamos rendszerekre programokat írni nehezebb, mint szekvenciális rendszerekhez [3] , mivel az erőforrásokkal való versengés a potenciális szoftverhibák ( bug ) új osztályát képviseli , amelyek között a versenyfeltétel a leggyakoribb. A folyamatok közötti kommunikáció és szinkronizálás nagy akadályt jelent a párhuzamos rendszerekben történő nagy teljesítmény elérésében. Az utóbbi években elkezdődött a párhuzamos számítógépek energiafogyasztásának kérdése is. [4] A párhuzamosítás következtében a program sebességnövekedésének természetét Amdahl és Gustavson törvényei magyarázzák .
A párhuzamosság ezen formája a gépi szó méretének növelésén alapul . A gépi szó méretének növelése csökkenti azoknak a műveleteknek a számát, amelyekre a processzornak szüksége van ahhoz, hogy olyan változókkal működjön, amelyek mérete nagyobb, mint a gépi szó mérete. Például: egy 8 bites processzoron két 16 bites egész számot kell hozzáadnia. Ehhez először hozzá kell adnia a számok alsó 8 bitjét, majd hozzáadnia kell a magasabb 8 bitet, és hozzáadnia kell a carry flag értékét az összeadás eredményéhez . Összesen 3 utasítás. A 16 bites processzorral ezt a műveletet egyetlen utasítással végrehajthatja.
A történelem során a 4 bites mikroprocesszorokat felváltották a 8 bitesek, majd megjelentek a 16 bitesek és a 32 bitesek. A 32 bites processzorok régóta a szabványok a mindennapi számítástechnikában. Az x86-64 technológia megjelenésével 64 bites processzorokat kezdtek használni ezekre a célokra.
A számítógépes program lényegében a processzor által végrehajtott utasítások folyama. De megváltoztathatja ezeknek az utasításoknak a sorrendjét, csoportokba oszthatja őket, amelyek párhuzamosan fognak végrehajtódni, anélkül, hogy a teljes program eredményét megváltoztatnák. Ezt a technikát utasításszintű párhuzamosságnak nevezik. Az utasításszintű párhuzamosság fejlesztése a számítógép-architektúrában az 1980-as évek közepétől az 1990-es évek közepéig történt.
A modern processzorok többlépcsős utasításfolyamattal rendelkeznek . A folyamat minden egyes szakasza megfelel egy bizonyos műveletnek, amelyet a processzor ebben az utasításban ebben a szakaszban hajt végre. Egy N folyamatszakaszos processzor egyidejűleg akár N különböző utasítással is rendelkezhet különböző teljességi szinten. A csővezetékes processzor klasszikus példája egy RISC processzor , amelynek 5 fokozata van: utasítás lekérése a memóriából (IF), utasítás dekódolása (ID), utasítás végrehajtása (EX), memória elérése (MEM), eredmény írása regiszterekbe (WB). ) . A Pentium 4 processzor 31 fokozatból áll [5] .
Egyes processzorok a csővezetékek használata mellett több utasítás egyidejű végrehajtására is képesek, ami további párhuzamosságot biztosít az utasítások szintjén. Ezt a módszert szuperskalárral is megvalósíthatjuk , amikor az utasítások csoportosíthatók párhuzamos végrehajtáshoz (ha nincs adatfüggőségük (adatfüggőségük)). Explicit utasítás szintű párhuzamosságot használó megvalósítások is lehetségesek: VLIW és EPIC .
Az adatpárhuzamosságon alapuló megközelítés fő gondolata az, hogy egy műveletet azonnal végrehajtanak az adattömb minden elemén. Egy ilyen tömb különböző töredékeit egy vektorprocesszoron vagy egy párhuzamos gép különböző processzorain dolgozzák fel . A program felelős az adatok feldolgozók közötti elosztásáért. A vektorizálás vagy párhuzamosítás ebben az esetben leggyakrabban már a fordítási szakaszban történik - a program forráskódjának gépi utasításokká fordítása. A programozó szerepe ebben az esetben általában a fordító vektor- vagy párhuzamos optimalizálási beállításaiban , párhuzamos fordítási direktíváiban, valamint speciális nyelvek párhuzamos számításokhoz való használatában rejlik.
A feladatok párhuzamosságán alapuló programozási stílus azt jelenti, hogy egy számítási feladat több, viszonylag független részfeladatra van felosztva, és mindegyik processzort a saját részfeladata tölti be.
Az elosztott operációs rendszer azáltal, hogy dinamikusan és automatikusan hozzárendeli a munkát a rendszer különböző gépeihez feldolgozás céljából, egy sor hálózatba kapcsolt gépet kényszerít az információ párhuzamos feldolgozására. Az elosztott operációs rendszer felhasználója általában nem ismeri azt a gépet, amelyen a munkáját végzi. [6]
Az elosztott operációs rendszer egyetlen operációs rendszerként létezik a számítástechnikai rendszerben. Az elosztott operációs rendszert futtató hálózat minden számítógépe ellátja a globális operációs rendszer funkcióinak egy részét. Az elosztott operációs rendszer a hálózat összes számítógépét egyesíti abban az értelemben, hogy szorosan együttműködnek egymással a számítógépes hálózat összes erőforrásának hatékony felhasználása érdekében.
Az USA-ban és a Szovjetunióban a párhuzamos számítási rendszerek létrehozása irányába irányuló munka az 1960-as évek óta intenzív . A párhuzamos adatfeldolgozási technológia fejlesztését és párhuzamos elektronikus számítástechnikai rendszerek létrehozását az Egyesült Államokban a US Defense Advanced Research Projects Agency megbízásából vállalatok és egyetemek kutatási osztályai végezték : [7]
A munkát a virginiai Pentagonban működő ARPA Számítástechnikai és Információfeldolgozási Iroda és a New York-i Rómában található amerikai légierő kutatóközpontja felügyelte .
A Szovjetunióban hasonló jellegű munkát az Állami Rádióelektronikai Bizottság (később Rádióipari Minisztériummá alakult ), a Védelmi Minisztérium és a Szovjetunió Tudományos Akadémia intézményei végeztek : [8]
Az 1970-es évek elején az MIT Mesterséges Intelligencia Laboratóriumában Marvin Minsky és Seymour Papert elkezdték kidolgozni azt az elméletet, amelyet „ Elme Társaságának ” neveztek, és amely a biológiai agyat egy masszívan párhuzamos számítástechnikai gépnek tekintette . 1986-ban Minsky kiadta a The Society of Mind című népszerű könyvet, amelyben azt állítja, hogy "az agy elméje sok kis ágensből alakul ki, amelyeknek nincs saját elméjük". [9] Az elmélet megkísérelte megmagyarázni, hogy az, amit intelligenciának nevezünk, hogyan lehet egyszerű, ágenseknek nevezett részek interakciójának eredménye, amelyek maguk is intelligensek. Minsky azt állította, hogy a "lelki társadalom" elméletével kapcsolatos ötletek legnagyobb forrása egy olyan gép megalkotása volt, amely robotkar, videokamera és számítógép segítségével babablokkokat állít össze. [10] A Society of Mind elméleti könyve a nagyközönség számára készült, ellentétben Minsky legtöbb korábban megjelent munkájával.
Hasonló modellek (amelyek a biológiai agyat egy masszívan párhuzamos számítástechnikai gépnek tekintik, azaz az agyat sok független vagy félig független ágensből állónak tekintik) szintén leírták:
![]() | |
---|---|
Bibliográfiai katalógusokban |