Flynn-féle osztályozás

A Wikipédiából, a szabad enciklopédiából

 

Flynn osztályozása
  Egy utasítás Több utasítás
Egy adatfolyam SISD MISD
Több adatfolyam SIMD MIMD

A Flynn-féle osztályozás számítógép-architektúrák párhuzamosság szerinti osztályozási módja, amit Michael J. Flynn publikált 1966-ban.[1][2]

Osztályozás[szerkesztés | forrásszöveg szerkesztése]

Flynn osztályozási modellje az egyidejű utasítás- (vagy vezérlési), illetve adatfolyamok alapján különbözteti meg az architektúrákat:

Single Instruction, Single Data stream (SISD, „egy utasítás-, egy adatfolyam”)
A klasszikus, szekvenciális számítógép, ami sem adat-, sem utasításszinten nem használ ki párhuzamosságot. Egyetlen vezérlőegység (CU) kéri le az egyetlen utasításfolyamot (IS) a memóriából. A CU azután létrehozza a megfelelő vezérlőjeleket hogy az egyetlen feldolgozó egység (PE) egyetlen adatfolyamon (DS) dolgozhasson. Tehát a végrehajtó egyszerre egy utasítást végez egy adaton. A SISD eszközök közé tartoznak a hagyományos egyprocesszoros gépek, mint a korai PC-k vagy a régi mainframe-ek.
Single Instruction, Multiple Data streams (SIMD, „egy utasítás-, több adatfolyam”)
A számítógép egyetlen utasításfolyamot hajt végre több adatfolyamon egyszerre, a bennük rejlő természetes párhuzamosságot kihasználva. Az ilyen elvű egységeket vektorfeldolgozónak is nevezik. Példa: tömbprocesszor, vektorprocesszor, GPU.
Multiple Instruction, Single Data stream (MISD, „több utasítás-, egy adatfolyam”)
Több utasítás dolgozik ugyanazon az adatfolyamon egyszerre. Szokatlan architektúra, például hibatűrés céljaira értelmezhető. Több rendszer végzi el ugyanazokat a műveletsorokat, és ugyanarra az eredményre kell jutniuk. Például a Space Shuttle repülésirányító számítógépében használták.
Multiple Instruction, Multiple Data streams (MIMD, „több utasítás-, több adatfolyam”)
Több autonóm processzor egy időben végez különböző műveleteket különböző adatokon. MIMD-architektúrának tekinthetők az elosztott rendszerek, akár közös, akár felosztott memóraterületet használnak. Egy többmagos, szuperskalár processzor is MIMD-processzor.

A Flynn-féle osztályozás gyengesége, hogy nem mutatja meg sem a párhuzamosság forrását (adat), sem pedig szintjét (szál/utasítás).

Osztályozásokat összehasonlító ábra[szerkesztés | forrásszöveg szerkesztése]

A fent említett négy architektúra képi ábrája, ahol minden „PU” egy végrehajtó egységnek felel meg:

SISD MISD
SISD.svg MISD.svg
SIMD MIMD
SIMD.svg MIMD.svg

További felosztások[szerkesztés | forrásszöveg szerkesztése]

2006-ban a 10 legnagyobb szuperszámítógép, és a TOP500 szuperszámítógép többsége egyaránt MIMD-architektúrára épült.

Egyesek a MIMD kategóriát kettéosztják,[3][4][5][6][7] mások még további felosztást tartanak szükségesnek.[8]

SPMD[szerkesztés | forrásszöveg szerkesztése]

Single Program, Multiple Data (SPMD, „egy program, több adat”): több autonóm processzor szimultán hajtja végre ugyanazt a programot (de különböző pontokon, nem lockstep üzemmódban, ahogy a SIMD esetben) különböző adatokon. Másik elnevezése az „Egy processz, több adat”[7] – ez az SPMD-re vonatkozó terminológia téves és kerülendő, hiszen az SPMD párhuzamos végrehajtási modell és több, kooperáló processz programvégrehajtását feltételezi. Az SPMD a leggyakoribb párhuzamos programozási stílus.[9] Az SPMD modellt és kifejezést Frederica Darema alkalmazta elsőként.[10] Gregory F. Pfister az RP3 projekt egyik vezetője volt, Darema pedig a csapat tagja.

MPMD[szerkesztés | forrásszöveg szerkesztése]

Multiple Program, Multiple Data (MPMD, „több program, több adat”): több autonóm processzor szimultán hajt végre legalább két, egymástól független programot. Az ilyen rendszerek tipikusan az egyik csomópontot kijelölik a „host” (az explicit host/node programozási modell), „gazda” vagy „menedzser” (a menedzser/dolgozó vagy „Manager/Worker” stratégia) szerepkörre; ez a csomópont olyan programot futtat, ami kiosztja az adatokat az összes többi, egy másik programot futtató csomópont számára. Ezek a csomópontok közvetlenül a menedzsernek küldik vissza az eredményeket. Az MPMD-re példa a Sony PlayStation 3 játékkonzolja a Cell mikroprocesszoron alapuló SPU/PPU processzorarchitektúrájával.

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Flynn, M. (1972.). „Some Computer Organizations and Their Effectiveness”. IEEE Trans. Comput. C-21, 948. o.  
  2. Duncan, Ralph (1990.). „A Survey of Parallel Computer Architectures”. IEEE Computer, 5–16. o.  
  3. http://www.llnl.gov/casc/Overture/henshaw/documentation/App/manual/node36.html
  4. http://www.cisl.ucar.edu/docs/lightning/program.jsp
  5. http://web0.tc.cornell.edu/Services/Education/Topics/Parallel/Design/SPMD.aspx
  6. http://math.nist.gov/~KRemington/Primer/distrib.html
  7. ^ a b http://www.cisl.ucar.edu/docs/ibm/ref/parallel.html
  8. http://www.tc.cornell.edu/Services/Education/Topics/Parallel/Distributed/+9.2+Strategies.htm
  9. http://www.nist.gov/dads/HTML/singleprogrm.html
  10. Darema, Frederica (1988.). „A single-program-multiple-data computational model for epex fortran”. Parallel Computing 7, 11–24. o.  

Fordítás[szerkesztés | forrásszöveg szerkesztése]

  • Ez a szócikk részben vagy egészben a Flynn's taxonomy című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.

További információk[szerkesztés | forrásszöveg szerkesztése]