Векторизация (параллельные вычисления)Векторизация (в параллельных вычислениях) — вид распараллеливания программы, при котором однопоточные приложения, выполняющие одну операцию в каждый момент времени, модифицируются для выполнения нескольких однотипных операций одновременно. Скалярные операции, обрабатывающие по паре операндов, заменяются на операции над массивами (векторами), обрабатывающие несколько элементов вектора в каждый момент времени. Векторная обработка данных используется как в бытовых компьютерах, так и в суперкомпьютерах. Автоматическая векторизация — это важная область исследований в информатике, цель которой — поиск методов, которые бы позволили компилятору автоматически преобразовывать скалярные программы в векторные. ПримерПоказан фрагмент программы, который поэлементно перемножает два массива, состоящие из чисел: for (i = 0; i < 1024; i++)
C[i] = A[i] * B[i];
Данный цикл может быть векторизован так: for (i = 0; i < 1024; i+=4)
C[i:i+3] = A[i:i+3] * B[i:i+3];
Во втором фрагменте запись Векторные расширенияВекторные операции могут добавляться в скалярные процессоры, тогда они называются векторными расширениями команд. Примеры: MMX, SSE, SSE2, AltiVec. Примечания
Information related to Векторизация (параллельные вычисления) |