Vectorizarea (în calculul paralel ) este un tip de paralelizare a programelor în care aplicațiile cu un singur thread care efectuează o operație la un moment dat sunt modificate pentru a efectua mai multe operații de același tip în același timp.
Operațiile scalare care procesează o pereche de operanzi sunt înlocuite cu operații pe tablouri (vectori) care procesează mai multe elemente ale vectorului la un moment dat.
Procesarea datelor vectoriale este utilizată atât în computerele de consum, cât și în supercomputere .
Vectorizarea automată este un domeniu important de cercetare în informatică, al cărui scop este găsirea unor metode care să permită compilatorului să convertească automat programele scalare în programe vectoriale.
Un fragment de program este arătat că element-wise multiplică două tablouri formate din numere:
pentru ( i = 0 ; i < 1024 ; i ++ ) C [ i ] = A [ i ] * B [ i ];Această buclă poate fi vectorizată astfel:
pentru ( i = 0 ; i < 1024 ; i += 4 ) C [ i : i + 3 ] = A [ i : i + 3 ] * B [ i : i + 3 ];În al doilea fragment, intrarea C[i:i+3]înseamnă un vector de 4 elemente - de la C[i]până la C[i+3]inclusiv, iar sub *este înțeleasă operația de multiplicare pe elemente a vectorilor. Procesorul vectorial din acest exemplu va putea efectua 4 operații scalare cu o instrucțiune vectorială într-un timp apropiat de efectuarea unei operații scalare. Astfel, operațiile vectoriale vor fi necesare de 4 ori mai puțin, iar programul va fi executat mai rapid.
Operațiunile vectoriale pot fi adăugate la procesoarele scalare, apoi se numesc extensii de instrucțiuni vectoriale. Exemple: MMX , SSE , SSE2 , AltiVec .