Составители:
Рубрика:
11
•
предтрансляторы
,
которые
выполняют
предварительный
анализ
логической
структуры
программы
,
проверку
зависимостей
и
ограниченную
параллельную
оптимизацию
;
•
распараллеливающие
трансляторы
,
которые
выявляют
параллелизм
в
исходном
коде
программы
и
выполняют
его
преобразование
в
параллельные
конструкции
.
Для
того
чтобы
упростить
преобразование
,
в
исходный
текст
программы
могут
добавляться
специальные
директивы
трансляции
.
Параллелизм задач
Петли
,
образованные
в
информационном
графе
«
толстыми
стрелками
»,
соответствуют
параллелизму
задач
,
идея
которого
основана
на
разбиении
вычислительной
задачи
на
несколько
относительно
самостоятельных
подзадач
.
Каждая
подзадача
выполняется
на
своем
процессоре
.
Данный
подход
ориентирован
на
архитектуру
MIMD.
В
рамках
подхода
,
основанного
на
параллелизме
задач
,
для
каждой
подзадачи
пишется
своя
собственная
программа
на
обычном
языке
программирования
,
чаще
всего
это
Fortran
и
С
.
Подзадачи
должны
обмениваться
результатами
своей
работы
,
получать
исходные
данные
.
Практически
такой
обмен
осуществляется
вызовом
процедур
специализированной
библиотеки
.
Программист
может
контролировать
распределение
данных
между
различными
процессорами
и
различными
подзадачами
,
а
также
обмен
данными
.
Проблемы
,
связанные
с
данным
подходом
:
•
повышенная
трудоемкость
разработки
программы
и
ее
отладки
;
•
на
программиста
ложится
вся
ответственность
за
равномерную
и
сбалансированную
загрузку
процессоров
параллельного
компьютера
;
•
программисту
приходится
минимизировать
обмен
данными
между
задачами
,
так
как
затраты
времени
на
пересылку
данных
обычно
относительно
велики
;
•
опасность
возникновения
тупиковых
ситуаций
,
когда
отправленное
одной
программой
сообщение
не
приходит
к
месту
назначения
.
Привлекательные
особенности
:
•
большая
гибкость
и
большая
свобода
,
предоставляемая
программисту
в
разработке
программы
,
эффективно
использующей
ресурсы
параллельного
компьютера
;
•
возможность
достижения
максимального
быстродействия
.
Основными
инструментами
программирования
являются
специализированные
библиотеки
(MPI - Message Passing Interface, PVM - Parallel Virtual Machines).
Разработка параллельного алгоритма
Выделяют
следующие
этапы
разработки
параллельного
алгоритма
1.
Декомпозиция
.
На
этом
этапе
выполняются
анализ
задачи
и
оценка
возможности
распараллеливания
.
Задача
и
связанные
с
ней
данные
разделяются
на
более
мелкие
части
подзадачи
и
фрагменты
структур
данных
.
Особенности
архитектуры
конкретной
вычислительной
системы
на
данном
этапе
могут
не
учитываться
.
2.
Проектирование
коммуникаций
(
обменов
данными
)
между
задачами
.
Определяются
коммуникации
,
необходимые
для
пересылки
исходных
данных
,
промежуточных
результатов
выполнения
подзадач
,
а
также
коммуникации
,
необходимые
для
управления
работой
подзадач
.
Выбираются
методы
коммуникации
.
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »