2.2. Параллелизм данных.
Основная идея подхода, основанного на параллелизме данных, заключается в том, что одна операция выполняется сразу над всеми элементами массива данных. Различные фрагменты такого массива обрабатываются на векторном процессоре или на разных процессорах параллельной машины. Распределением данных между процессорами занимается программа. Векторизация или распараллеливание в этом случае чаще всего выполняется уже на этапе компиляции - перевода исходного текста программы в машинные команды. Роль программиста в этом случае обычно сводится к заданию опций векторной или параллельной оптимизации компилятору, директив параллельной компиляции, использованию специализированных языков для параллельных вычислений. Наиболее распространенными языками для параллельных вычислений являются Высокопроизводительный ФОРТРАН (High Performance FORTRAN) и параллельные версии языка C (это, например, C*).
Более детальное описание рассматриваемого подхода к распараллеливанию содержит указание на следующие его основные особенности:
Обработкой данных управляет одна программа;
Пространство имен является глобальным, то есть для программиста существует одна единственная память, а детали структуры данных, доступа к памяти и межпроцессорного обмена данными от него скрыты;
Слабая синхронизация вычислений на параллельных процессорах, то есть выполнение команд на разных процессорах происходит, как правило, независимо и только лишь иногда производится согласование выполнения циклов или других программных конструкций - их синхронизация. Каждый процессор выполняет один и тот же фрагмент программы, но нет гарантии, что в заданный момент времени на всех процессорах выполняется одна и та же машинная команда;
Параллельные операции над элементами массива выполняются одновременно на всех доступных данной программе процессорах.
Видим, таким образом, что в рамках данного подхода от программиста не требуется больших усилий по векторизации или распараллеливанию вычислений. Даже при программировании сложных вычислительных алгоритмов можно использовать библиотеки подпрограмм, специально разработанных с учетом конкретной архитектуры компьютера и оптимизированных для этой архитектуры.
Подход, основанный на параллелизме данных, базируется на использовании при разработке программ базового набора операций:
операции управления данными;
операции над массивами в целом и их фрагментами;
условные операции;
операции приведения;
операции сдвига;
операции сканирования;
операции, связанные с пересылкой данных.
Рассмотрим эти базовые наборы операций.
- Архитектура эвм
- Часть 1
- §1 Введение
- 1.1. Определение.
- 1.2. Обобщенная структура эвм.
- §2. Две парадигмы программирования.
- 2.1. Введение. Последовательная и параллельная модели программирования.
- 2.2. Параллелизм данных.
- Управление данными.
- §3. Архитектурная организация эвм основных классов и типов
- 3.1. Ведение.
- 3.2. Аналоговая вычислительная техника
- 3.3. Гибридная вычислительная техника
- 3.4. Дискретная вычислительная техника
- 3.4.1. Специальные эвм.
- 3.4.2. Микропроцессорные эвм и пк.
- 3.4.3. Эвм общего назначения
- 3.4.4. Супер-эвм
- §4 История развития вт. Поколения эвм.
- 4.1. Первое поколение эвм.
- 4.2. Второе поколение эвм.
- 4.3. Третье поколение эвм.
- 4.4. Четвертое поколение эвм.
- 4.5. Пятое поколение эвм.
- §5 Классификация и основные характеристики эвм.
- 5.1. Характеристики.
- 5.2. Классификация эвм.
- 3. Режимам работы:
- Литература:
- Содержание: