A vektorprocesszor olyan processzor , amelyben egyes utasítások operandusai adatvektor- tömbökbe rendezhetők . Eltér a skalár processzoroktól , amelyek egyszerre csak egy operanduson működnek. A processzorok túlnyomó többsége skaláris vagy ahhoz közeli. A vektorprocesszorok gyakoriak voltak a tudományos számítástechnikában, ahol az 1980-as évektől az 1990-es évekig ezek képezték a legtöbb szuperszámítógép alapját. A teljesítmény drámai növekedése és az új processzorok aktív fejlesztése azonban a vektorprocesszorok kiszorulásához vezetett a mindennapi processzorok köréből .
A legtöbb modern mikroprocesszornak van vektorkiterjesztése (lásd SSE ). Ezenkívül a modern videokártyák és fizikai gyorsítók vektortárs processzorokként is felfoghatók .
A vektor és a skalárprocesszor közötti különbség szemléltetésére vegyünk egy egyszerű példát két 10 számból álló halmaz páronkénti összeadására. A "normál" programozás során egy hurkot használnak , amely számpárokat vesz fel egymás után, és összeadja őket:
ismételje meg a ciklust 10-szer olvassa el a következő utasítást és dekódolja megkapja az első ciklust megkapja a második kifejezést hajtogatni mentse el az eredményt ciklus végeA vektorprocesszor esetében az algoritmus jelentősen eltérő lesz:
olvassa el a következő utasítást és dekódolja kapja meg az első 10 kifejezést kap 10 másodperces feltételeket hajtogatni mentse el az eredménytA Cray -implementáció kibővítette a számítási lehetőségeket azáltal, hogy lehetővé tette több különböző művelet egyidejű végrehajtását. Vegyük például azt a kódot, amely 2 számkészletet ad össze és megszoroz egy harmaddal, a Cray esetében ezek a műveletek a következőképpen történnének:
olvassa el a következő utasítást és dekódolja kap 10 számot kap 10 számot kap 10 számot összeadjuk és szorozzuk őket mentse el az eredménytÍgy a matematikai műveletek sokkal gyorsabban hajthatók végre, a fő korlátozó tényező az adatok memóriából való előhívásához szükséges idő.
Különféle gépeket terveztek hagyományos és vektorprocesszorokkal is, mint például a Fujitsu AP1000 és AP3000. Az ilyen heterogén gépekre való programozás nehézkes lehet, mivel a különböző processzorok jellemzőit legjobban kihasználó programok fejlesztése megnöveli a programozó terheit. Ez megnöveli a kód összetettségét és csökkenti a hordozhatóságát , mivel az egyes processzorokhoz szükséges kódszakaszok a programban átlapolva lesznek [1] . Problémás lehet az alkalmazások munkaterhelésének kiegyensúlyozása a processzorok között, különös tekintettel arra, hogy általában eltérő teljesítményjellemzőkkel rendelkeznek. Különféle elvi modellek léteznek ennek a problémának a kezelésére, mint például a koordinációs nyelv és a programozási építőelemek ( könyvtárak és/vagy magasabb rendű függvények ) használata. Minden egyes blokknak különböző natív megvalósításai lehetnek minden processzortípushoz. A programozó egyszerűen ezt az absztrakciót használja, és az intelligens fordító a kontextus alapján kiválasztja a legjobb megvalósítást [2] .
processzortechnológiák | Digitális|||||||||
---|---|---|---|---|---|---|---|---|---|
Építészet | |||||||||
Instruction Set Architecture | |||||||||
gépszó | |||||||||
Párhuzamosság |
| ||||||||
Megvalósítások | |||||||||
Alkatrészek | |||||||||
Energiagazdálkodás |