Egyetlen utasításfolyam |
Több utasításfolyam | |
---|---|---|
Egyetlen adatfolyam (egyetlen adat) |
SISD (OKOD) |
MISD (MISD) |
Több adatfolyam |
SIMD (JMD) |
MIMD (MKMD) |
A Flynn -féle taxonómia ( Osztályozás ) a számítógépes architektúrák általános osztályozása, amely a parancs- és adatfolyamok párhuzamosságán alapul . Michael Flynn javasolta 1966-ban [1] , majd 1972-ben bővítették [2] [3] .
A számítógép-architektúrák teljes választéka ebben a Flynn-féle taxonómiában négy osztályra redukálódik [4] :
Mivel a taxonómiában a párhuzamosságot használják fő kritériumként, a Flynn-féle taxonómia leggyakrabban szerepel a szakirodalomban [5] [6] [7] [4] [8] a párhuzamos számítási rendszerek osztályozása során . A MISD egy ritkán használt architektúra, főként a meghibásodások elleni védelem céljából (például számítógépek forró redundanciájához olyan repülési rendszerekben, mint a " Space Shuttle " vagy az " Energy-Buran ", a SCADA -ban, kritikus a hibák stb.) . Mivel a SISD gép nem párhuzamos gép, és a MISD nem egy tipikus párhuzamos architektúra, minden párhuzamos számítási rendszer a SIMD vagy a MIMD osztályába tartozik.
A technológia fejlődésével a SIMD és MIMD osztályok túl sok olyan gépet kezdtek lefedni, amelyek gyökeresen különböznek egymástól. E tekintetben a szakirodalomban [9] [10] egy további kritériumot használnak - a memóriával való munkavégzés módját a programozó szemszögéből. E kritérium szerint a rendszereket "osztott memóriával rendelkező rendszerekre" ( eng. shared memory , SM) és "osztott memóriával rendelkező rendszerekre" ( eng. elosztott memória , DM) osztják. Ennek megfelelően minden osztály - SIMD és MIMD - alosztályokra oszlik: SM-SIMD/DM-SIMD és SM-MIMD/DM-MIMD.
Különös figyelmet kell fordítani a "programozói szemszögből" való pontosításra. A tény az, hogy vannak számítástechnikai rendszerek, ahol a memória fizikailag el van osztva a rendszer csomópontjai között, de a rendszer összes processzora számára ez mind közös, egységes globális címtérként látható. Erről lásd alább.
A SISD architektúra egy hagyományos Neumann architektúrájú számítógép , egyetlen processzorral, amely sorban hajtja végre az egyik utasítást a másik után, egyetlen adatfolyamon működik. Ez az osztály nem használ sem adat-, sem utasítás-párhuzamot, ezért a SISD-gép nem párhuzamos. A Pipeline , a szuperskalár és a VLIW processzorokat is általában ebbe az osztályba sorolják .
A SIMD tipikus képviselői a vektorprocesszorok , a közönséges modern processzorok, amikor a vektorbővítési utasítások végrehajtási módjában dolgoznak, valamint egy speciális alfaj nagyszámú processzorral - mátrix processzorok. A SIMD gépekben egy processzor egy utasítást, egy adathalmazt tölt be rájuk, és az ebben az utasításban leírt műveletet egyszerre hajtja végre a teljes adatsoron.
Ez az alosztály magában foglalja a vektorprocesszorokat . A tudományos számítástechnikában a legtöbb művelet egyetlen műveletet tartalmaz nagy mennyiségű adatra. Sőt, ez a művelet az egyes adatelemeken egymástól függetlenül is végrehajtható, azaz adatpárhuzam volt, aminek felhasználására vektorprocesszorokat hoztak létre.
A vektorprocesszorok a 70-es évek elején terjedtek el, elsősorban az akkori szuperszámítógépekben (CDC STAR-100, Cray-1 ). Az 1970-es évek közepétől az 1980-as évek végéig minden szuperszámítógép vektorgép volt, és a szuperszámítógép akkoriban vektorgépet jelentett. A vektoros szuperszámítógépeket továbbra is használják az iparban és a tudományos számítástechnikában, és továbbra is szinte az összes vezető szuperszámítógép-gyártó terméklistáján szerepelnek: NEC , Fujitsu , Hitachi , Cray . A miniatürizálás fejlődése a számítástechnikában lehetővé tette egy vektoros adatfeldolgozási módszer hozzáadását a modern mikroprocesszorokhoz, ahol azokat az assembler speciális utasítás-kiterjesztéseinek halmaza képviseli [11] [12] . Ezek végrehajtásával a processzor vektor módba kapcsol, és erre az időre SM-SIMD géppé válik.
Az úgynevezett " mátrix processzorok " tartoznak ebbe az alosztályba . Ezek egy sor processzor, amelyeket egyetlen vezérlőprocesszor vezérel, és parancsára egyetlen műveletet hajt végre a helyi memóriában tárolt adatok saját részén. Mivel a processzorok között nincs kommunikáció, nincs szükség szinkronizálásra, ami lehetővé teszi óriási számítási sebesség elérését és a rendszer egyszerű bővítését a processzorok számának növelésével. A mátrixprocesszor munkájának megértéséhez elég elképzelni a reggeli aerobik órákat a televízióban, ahol egy színész állít be mozdulatokat a stúdióban, és nézők milliói ismétlik egyszerre ütemre országszerte.
Mivel a mátrix processzorok csak korlátozott számú feladatra használhatók, sokáig csak kísérleti, magasan specializált gépek formájában léteztek. Emellett előállításukhoz speciális feldolgozók létrehozására volt szükség. Az első (meglehetősen sikertelen) kísérlet a mátrixprocesszor felépítésére az ILLIAC IV13] a hetvenes évek elején, a második híres kísérlet a Thinking Machines CM-1 és CM-2 gépei, valamint a MasPar szuperszámítógépei voltak a korai években. 80-as évek [13] . A miniatürizálás fejlesztése a számítástechnikában lehetővé tette, hogy visszatérjünk a mátrix processzorok gondolatához, és újjáéledjünk a grafikus kártyákban ( GPPU ), amelyeket nagy teljesítményű számítástechnikára használnak.
Számos kutató szállítószalagos számítógépeket is tartalmaz a MISD osztályba , de ez nem talált végleges elismerésre. A MISD rendszereket is lehet hot standby rendszernek tekinteni. Ezenkívül egyesek a MISD architektúrát a processzorok szisztolés tömbjeként említik.
A MIMD osztály többprocesszoros rendszereket foglal magában , ahol a processzorok több adatfolyamot dolgoznak fel. Ide tartoznak a hagyományos többprocesszoros gépek , többmagos és többszálú processzorok , valamint számítógép-fürtök .
A memóriával való munka során ez az osztály alosztályokra oszlik.
Ebbe a csoportba tartoznak a többprocesszoros gépek megosztott memóriával , többmagos processzorok osztott memóriával.
A klasszikus és leggyakoribb példa a többprocesszoros - többprocesszoros SMP - kiszolgálók. Az ilyen gépeken a memória minden processzor számára közös címtérként látható , és a processzorok közös címbuszon keresztül kommunikálnak egymással megosztott változókon keresztül . Minden processzor esetében azonos a hozzáférés bármely memóriahelyhez (lásd UMA ).
Mint fentebb említettük, a memória, amely a programozó számára egyetlen közös címtérként látható, fizikailag elosztható a rendszer csomópontjai között. A gépek egy ilyen alosztályát DSM-MIMD- nek ( elosztott megosztott memória MIMD ) hívják. A gépek ezen alosztályában minden processzornak saját helyi memóriája van, és a processzor nagy sebességű kapcsolaton keresztül éri el a memória más területeit. Mivel a megosztott memória különböző részeihez való hozzáférés nem egyforma (gyorsabb a helyi részhez, lassabb a többihez), az ilyen rendszereket NUMA -nak (a Non-Uniform Memory Access szóból) nevezik . Mivel a memória fizikailag el van osztva, az egyes processzorok számára nehéz lesz látni a többi processzor által a memóriában végrehajtott változtatásokat. Ezt a problémát többféleképpen is meg lehet oldani: a gyorsítótár koherenciájával - ccNUMA , gyorsítótár koherenciája nélkül - nccNUMA.
A NUMA rendszerek nagyobb skálázhatósággal rendelkeznek, lehetővé téve masszívan párhuzamos számítási rendszerek létrehozását, ahol a processzorok száma eléri a több ezret.
A programozási modell az ilyen rendszerekben ugyanaz marad – a végrehajtási szálak megosztott változókon keresztül adatokat cserélnek egymással.
Előnyök: Viszonylag könnyen programozható, az SMP -támogatás már régóta elérhető minden nagyobb operációs rendszeren .
Ezeknek a gépeknek a hátránya az alacsony skálázhatóság : minél több processzor van a rendszerben, annál nagyobb lesz a közös busz terhelése . Az ilyen rendszerek kereskedelmi verzióiban a processzorok maximális száma nem haladja meg a 64-et.
Ez az alosztály magában foglalja az elosztott memóriás többprocesszoros MIMD-gépeket.
Minden processzornak saját helyi memóriája van, amely más processzorok számára nem látható. Egy ilyen rendszerben minden processzor saját adatkészletével látja el a feladatát a helyi memóriájában. Ha egy processzornak szüksége van egy másik processzor memóriájából származó adatokra, akkor ez a processzor üzeneteket cserél egy másik processzorral, vagyis az ilyen rendszerekben az Üzenetátadás programozási modellt alkalmazzák a Párhuzamos Virtuális Gép (PVM) vagy az Message Passing valamilyen implementációja segítségével. Interfész (MPI).
A DM-MIMD gépek fő előnye a nagy skálázhatóság , amely lehetővé teszi, hogy több százezer processzorból álló, masszívan párhuzamos rendszereket hozzanak létre.
A Beowulfhoz hasonló számítógép-fürtök munkaállomás -hálózatként is ebbe az osztályba tartoznak .
A szakirodalomban [14] [15] a MIMD osztály ilyen alosztályai is megtalálhatók: SPMD ( egy program, több adat ) és MPMD ( több program, több adat ).
SPMD (single program, multiple data) - olyan rendszert ír le, ahol egy MIMD gép összes processzorán csak egyetlen program fut, és minden processzoron különböző adatblokkokat dolgoz fel.
MPMD (multiple programs, multiple data) - olyan rendszert ír le, a) ahol a MIMD gép egyik processzorán a mesterprogram, a másikon a slave program fut, amelynek munkáját a mesterprogram (principle master / rabszolga vagy mester / munkás ); b) ahol a MIMD gép különböző csomópontjain különböző programok futnak, amelyek ugyanazt az adattömböt különböző módon dolgozzák fel (a csatolt elemzés elve ), többnyire egymástól függetlenül működnek, de időről időre adatot cserélnek lépjen a következő lépésre.
Az egyes gépek egy adott osztályhoz viszonyított aránya nagymértékben függ a kutató nézőpontjától. Tehát a szállítószalagos gépek hozzárendelhetők a SISD osztályhoz (csővezeték - egyetlen processzor), és a SIMD osztályhoz (vektor adatfolyam csővezetékes processzorral), valamint a MISD osztályhoz (sok csővezeték processzor egy adatfolyamot dolgoz fel egymás után), és a MIMD osztályba - különböző parancsok sorozatának végrehajtásaként (folyamatszakaszok műveletei) többszörös skaláris adatfolyammal (vektorral).
Az integráltság különböző szintjein lévő számítási komplexumot tekintve különböző osztályokhoz köthető: például az ASCI Blue Pacific nagy teljesítményű, masszívan párhuzamos szuperszámítógép egy DM-MIMD gép volt, ahol minden csomópont üzenettovábbítással kommunikált a másikkal, de mindegyik node ebben a szuperszámítógépben pedig egy többprocesszoros RS/6000 SMP szerver volt, vagyis egy SM-MIMD gép volt. Ugyanakkor az ASCI Blue Mountain High-Performance Massively Parallel Supercomputer SMP-kiszolgálók (SM-MIMD) rendszere volt, amelyek egy megosztott elosztott megosztott memóriagépbe (azaz DSM-MIMD-be) voltak kapcsolva.