Модель
параллелизм данных также является часто используемой
моделью параллельного программирования. Название модели происходит
оттого, что она эксплуатирует параллелизм, который заключается
в применении одной и той же операции к множеству элементов структур
данных. Например, "умножить все элементы массива M
на значение x", или "снизить цену автомобилей
со сроком эксплуатации более 5-ти лет". Программа с параллелизмом
данных состоит из последовательностей подобных операций. Поскольку
операции над каждым элементом данных можно рассматривать как
независимые процессы, то степень детализации таких вычислений
очень велика, а понятие "локальности" (распределения
по процессам) данных отсутствует. Следовательно, компиляторы языков
с параллелизмом данных часто требуют, чтобы программист предоставил
информацию относительно того, как данные должны быть распределены
между процессорами, другими словами, как программа должны быть
разбита на процессы.
Компилятор транслирует программу с параллелизмом данных
в SPMD программу, генерируя коммуникационный код автоматически.