Vektorisering (i parallel computing ) er en type programparallelisering , hvor enkelttrådede applikationer, der udfører en operation ad gangen, modificeres til at udføre flere operationer af samme type på samme tid.
Skalære operationer, der behandler et par operander, erstattes af operationer på arrays (vektorer), der behandler flere elementer i vektoren på et givet tidspunkt.
Vektordatabehandling bruges både i forbrugercomputere og supercomputere .
Automatisk vektorisering er et vigtigt forskningsområde inden for datalogi, hvis mål er at finde metoder, der gør det muligt for compileren automatisk at konvertere skalarprogrammer til vektorprogrammer.
Der vises et programfragment, der elementmæssigt multiplicerer to arrays bestående af tal:
for ( i = 0 ; i < 1024 ; i ++ ) C [ i ] = A [ i ] * B [ i ];Denne løkke kan vektoriseres sådan:
for ( i = 0 ; i < 1024 ; i += 4 ) C [ i : i + 3 ] = A [ i : i + 3 ] * B [ i : i + 3 ];I det andet fragment betyder indgangen C[i:i+3]en vektor af 4 elementer - fra C[i]til C[i+3]inklusive, og under *forstås driften af element-vis multiplikation af vektorer. Vektorprocessoren i dette eksempel vil være i stand til at udføre 4 skalaroperationer med én vektorinstruktion i en tid tæt på at udføre en skalaroperation. Således vil vektoroperationer kræves 4 gange mindre, og programmet vil blive udført hurtigere.
Vektoroperationer kan tilføjes til skalære processorer, så kaldes de vektorinstruktionsudvidelser. Eksempler: MMX , SSE , SSE2 , AltiVec .