Vektorisering (i parallell beräkning ) är en typ av programparallellisering där enkeltrådade applikationer som utför en operation i taget modifieras för att utföra flera operationer av samma typ samtidigt.
Skalära operationer som bearbetar ett par operander ersätts av operationer på arrayer (vektorer) som bearbetar flera element i vektorn vid varje given tidpunkt.
Vektordatabehandling används i både konsumentdatorer och superdatorer .
Automatisk vektorisering är ett viktigt forskningsområde inom datavetenskap, vars mål är att hitta metoder som gör det möjligt för kompilatorn att automatiskt konvertera skalära program till vektorprogram.
Ett programfragment visas som elementvis multiplicerar två arrayer som består av tal:
för ( i = 0 ; i < 1024 ; i ++ ) C [ i ] = A [ i ] * B [ i ];Denna loop kan vektoriseras så här:
för ( i = 0 ; i < 1024 ; i += 4 ) C [ i : i + 3 ] = A [ i : i + 3 ] * B [ i : i + 3 ];I det andra fragmentet betyder posten C[i:i+3]en vektor med 4 element - från C[i]till och med C[i+3], och under *förstås driften av elementvis multiplikation av vektorer. Vektorprocessorn i detta exempel kommer att kunna utföra 4 skalära operationer med en vektorinstruktion under en tid nära att utföra en skalär operation. Således kommer vektoroperationer att krävas 4 gånger mindre, och programmet kommer att exekveras snabbare.
Vektoroperationer kan läggas till skalära processorer, då kallas de vektorinstruktionstillägg. Exempel: MMX , SSE , SSE2 , AltiVec .