BC/NW 2006, №1, (8) : 17.9
Постановка
задачи подготовки последовательной программы для параллельного выполнения на
заданной многопроцессорной вычислительной системе
И.И. Ладыгин, А.В. Филатов
(Москва, Московский энергетический институт (технический университет), Россия)
Развитие современной науки и техники во многих
направлениях связано со значительным увеличением объёма необходимых вычислений.
Для удовлетворения потребностей в таких вычислениях создаются
высокопроизводительные вычислительные системы, как правило, содержащие от
нескольких единиц до тысяч процессоров и позволяющие организовывать вычисления
в параллельном режиме.
На сегодняшний день ситуация часто складывается таким
образом, что имеется некоторая последовательная программа, по которой производятся
расчёты и её необходимо распараллелить и подготовить к выполнению на имеющейся
многопроцессорной вычислительной системе (МВС). Эта ситуация обусловлена тем,
что имеются большие наработки в области создания последовательных программ, а
также особенностью человеческой деятельности, для которой последовательное
программирование намного более доступно, чем параллельное.
Перед началом работы по подготовки программы, как
правило, имеется следующее:
1. МВС, которая характеризуется, в частности, набором разнообразных
параметров: числом процессоров, параметрами процессоров, используемой
операционной системой, организацией памяти, организацией информационных связей
между процессорами, структурой (топологией) связей, пропускной способностью
каналов, протоколами обмена информацией.
2. Различные механизмы параллельного выполнения программ
на МВС.
3. Модели обмена данными (разделяемая память,
неразделяемая память, распределённая разделяемая память) и режимы обмена
данными как, например: блокирующий и неблокирующий, синхронный и асинхронный.
4. Парадигмы, модели и системы программирования (PVM, MPI, OpenMP, Linda, HPF, mpC). Средства синхронизации.
5. Сама исходная программа для распараллеливания,
характер выполнения которой может сильно зависеть от входных данных.
В результате встаёт задача подготовки параллельной
программы для её выполнения на имеющейся МВС за минимально возможное время. Эта
задача включает в себя ряд подзадач. Среди них, в частности:
1. Выбор параметров МВС, программ и других средств,
необходимых для исследований.
2. Исследование имеющейся МВС и распараллеливаемой
программы с целью выбора парадигм, моделей, механизмов, средств и режимов для
программирования и эффективного выполнения параллельной программы на данной
МВС.
Таким образом, на основании имеющихся входных данных и
их анализа, задача подготовки программы должна включать следующие этапы:
1. Определение уровня детализации МВС и программы.
2. Определение формального представления программы.
3. Выбор механизмов параллельного выполнения программы.
4. Формирование процессов и потоков вычисления.
5. Размещение процессов по процессорам МВС, которое
завершает процедуру подготовки программы для её выполнения в соответствии с
выбранным ранее критерием.
Литература
1. Топорков В.В. Модели распределённых вычислений. –
М.: ФИЗМАТЛИТ, 2004. – 320 с.