Flynn taxonómiája

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. december 24-én felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek . Flynn osztályozás
  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] .  

Leírás

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.

SISD

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 .

SIMD

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.

SM-SIMD (megosztott memória SIMD)

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.

DM-SIMD (elosztott memória SIMD)

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.

MISD

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.

MIMD

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.

SM-MIMD (megosztott memória MIMD)

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.

DM-MIMD (elosztott memória MIMD)

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 .

SPMD és MPMD

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.

Jellemzők

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.

Jegyzetek

  1. Flynn M. J.   Nagyon nagy sebességű számítógépek // Proc IEEE, 1966, 54 . - P. 1901-1901.
  2. Flynn M. J.   Néhány számítógépes szervezet és hatékonyságuk // IEEE Transactions on Computers, 1972, 21 (9). - P. 948-960.
  3. Padova, 2011 , p. 689.
  4. 12. Padova , 2011 , p. 689-697.
  5. Severance_Dowd, 1998 , p. 258.
  6. Stallings, 2009 , p. 630.
  7. Patterson_Hennessy, 2011 , p. 649.
  8. Valentin Sedykh / Multiprocessing ma. 2004 . Letöltve: 2013. október 18. Az eredetiből archiválva : 2013. október 19..
  9. A LEGÚJABB SZUPERSZÁMÍTÓGÉPEK ÁTTEKINTÉSE: A fő építészeti osztályok (lefelé irányuló kapcsolat) . Letöltve: 2013. október 8. Az eredetiből archiválva : 2013. december 31.. 
  10. Severance_Dowd, 1998 , p. 259-267.
  11. SSE
  12. 3DNow!
  13. 1 2 Patterson_Hennessy, 2011 , p. 7.14.
  14. RS/6000SP, 1996 , p. 3.
  15. Gyakorlati MPI programozás, 1999 , p. 7.

Irodalom