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]

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 rendszerű 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óriaterü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]

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

SISD MISD
SIMD MIMD

További felosztások[szerkesztés]

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]

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]

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]

  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. Archivált másolat. [2004. június 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. május 1.)
  4. Archivált másolat. [2006. szeptember 1-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. május 1.)
  5. http://web0.tc.cornell.edu/Services/Education/Topics/Parallel/Design/SPMD.aspx
  6. Archivált másolat. [2013. december 13-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. május 1.)
  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]

  • 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. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

További információk[szerkesztés]