2.1 Цели проекта "Система автоматизации распараллеливания"
Данная дипломная работа является лишь частью проекта автоматизации распараллеливания программ, поэтому сначала остановимся на проекте.
Рис. 8. Проект: Система автоматизации распараллеливания.
На Рис. 8 схематически показаны составляющие проекта: "Анализ программы", "Эксперт для мультипроцессора" (OpenMP) и "Эксперт для кластера" (DVM).
Пользователь создает последовательную программу на языке Fortran. В итоге работы системы, пользователь получает информацию для анализа:
· дерево циклов; для каждого цикла – его параметры и атрибуты (результаты анализа);
· описания данных;
· описание использования массивов в циклах и найденные зависимости;
· список предложенных (в том числе рассмотренных, но отвергнутых) вариантов распределения (задача "Эксперта");
· созданные и модифицируемые пользователем наборы конфигураций целевой машины и размеров задач;
· для каждого предложенного варианта распараллеливания (всех конфигураций и размеров) и каждого цикла и всей программы, как корня дерева циклов, – оценки времени выполнения и качества распараллеливания для данного варианта (задача "Эксперта");
|
|
Программа, поступая в систему автоматизации распараллеливания, проходит анализ, на основании которого формируется База Данных, в которую входят: дерево циклов; описания массивов, описание использования массивов в циклах; дополнительные комментарии.
С информацией из базы данных "Эксперты" ищут самые оптимальные способы распараллеливания и добавляют информацию о них в базу данных. Код программы на выходе системы не изменяется, а всего лишь добавляются комментарии, где рекомендуется вставить директивы OpenMP или DVM (возможно несколько лучших вариантов), насколько будут эффективны эти вставки, а также информация из анализа.
2.2 Цели "Эксперта для мультипроцессора"
Цель данного диплома – разработка программы, реализующей "Эксперт для мультипроцессора" в проекте. На основании данных, полученных на стадии анализа, и характеристик конкретного мультипроцессора "Эксперт" должен занести в базу данных информацию о комментариях (директивах OpenMP), которые должны быть вставлены в программу, которая получится на выходе системы, а также информацию о прогнозируемой эффективности распараллеливания. Таким образом, "Эксперт" генерирует, оценивает и выбирает лучшие варианты распределения вычислений и локализации данных. Эксперт не изменяет код программы, а лишь вносит в базу данных информацию о "наилучших рекомендациях по распараллеливанию". Эта информация впоследствии и будет выдана пользователю.
|
|
Входные данные
Описание цикла содержит:
· указание на переменную цикла;
· первое, последнее значение;
· наличие в цикле операторов ввода-вывода, побочных выходов и т.п.
· оценка трудоемкости одного витка цикла;
· признак тесной вложенности;
· список обращений к массивам и переменным.
Дерево циклов – множество циклов с отношением " непосредственно вложен в ". Корень "дерева циклов", уровень программы, сам циклом не является, но формально может считаться "циклом" без переменной цикла с однократным выполнением.