Flynn-féle osztályozás
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:
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]- ↑ Flynn, M. (1972). „Some Computer Organizations and Their Effectiveness”. IEEE Trans. Comput. C-21, 948. o.
- ↑ Duncan, Ralph (1990). „A Survey of Parallel Computer Architectures”. IEEE Computer, 5–16. o.
- ↑ Archivált másolat. [2004. június 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. május 1.)
- ↑ Archivált másolat. [2006. szeptember 1-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. május 1.)
- ↑ http://web0.tc.cornell.edu/Services/Education/Topics/Parallel/Design/SPMD.aspx
- ↑ Archivált másolat. [2013. december 13-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. május 1.)
- ↑ a b Archivált másolat. [2007. február 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. május 1.)
- ↑ http://www.tc.cornell.edu/Services/Education/Topics/Parallel/Distributed/+9.2+Strategies.htm
- ↑ http://www.nist.gov/dads/HTML/singleprogrm.html
- ↑ 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.