ВВЕДЕНИЕ 5
1. Q-ЭФФЕКТИВНАЯ РЕАЛИЗАЦИЯ 8
1.1. Концепция Q-детерминанта 8
1.2. Проектирование параллельных программ на основе Q-детерминанта ... 10
2. ОБЗОР ТЕХНОЛОГИЙ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ. 11
2.1. Технология программирования OpenMP 11
2.2. Технология программирования MPI 12
3. ПРОЕКТИРОВАНИЕ И ПРОГРАММИРОВАНИЕ Q-ЭФФЕКТИВНОЙ
РЕАЛИЗАЦИИ МЕТОДА ПРОСТОЙ ИТЕРАЦИИ 15
3.1. Постановка задачи 15
3.2. Проектирование параллельной программы для Q-эффективной
реализации алгоритма 16
3.2.1. Этап 1 16
3.2.2. Этап 2 16
3.2.3. Этап 3 17
3.3. Программирование Q-эффективной реализации алгоритма 18
3.3.1. Последовательная программа 22
3.3.2. Q-эффективная программа для общей памяти 26
3.3.3. Q-эффективная программа для распределенной памяти 28
4. ТЕСТИРОВАНИЕ И ЭКСПЕРИМЕНТЫ 29
4.1. Тестирование 29
4.2. Эксперименты 29
4.2.1. Характеристики системы 30
4.2.2. Результаты запуска Q-эффективной программы для общей памяти 32
4.2.3. Результаты запуска Q-эффективной программы для распределенной
памяти 34
ЗАКЛЮЧЕНИЕ 37
ЛИТЕРАТУРА 38
ПРИЛОЖЕНИЯ 41
В современном мире вычислительные комплексы развиваются сверхбыстрыми темпами и для того, чтобы программы могли использовать возможные ресурсы целиком, необходимо также развивать и параллельные вычисления.
В настоящее время существует концепция Q-детерминанта, с помощью которой становится возможным узнать ресурс распараллеливания каждого алгоритма, учитывая при этом ограничения и характеристики вычислительной системы, на которой будет исполняться конкретный алгоритм. После этого возможно получить максимально параллельную реализацию алгоритма.
Для детального изучения концепции Q-детерминанта необходимо было изучить существующие научные работы по данной тематике. В [1] описан подход к распараллеливанию алгоритмов на основе их представления в форме Q-детерминанта. Этот подход позволяет для любого численного алгоритма разработать программу, которая будет полностью использовать ресурс параллелизма алгоритма. Выявить ресурс параллелизма численных алгоритмов позволяет концепция Q-детерминанта [2]. Одними из значимых работ по распараллеливанию алгоритмов и программ являются [3, 4]. Среди работ по синтезу параллельных программ необходимо отметить [5], в которой описан метод синтеза параллельных программ, и последующие работы, использующие этот метод. В [6] описана разработка принципов выполнения Q- эффективных реализаций численных алгоритмов на параллельных вычислительных системах. В работе [7] описана расширенная модель концепции Q- детерминанта. Показано ее применение для реализации ресурса параллелизма численных алгоритмов на параллельных вычислительных системах с общей и распределенной памятью. В [8] построен Q-детерминант для решения СЛАУ методом Якоби, описана Q-эффективная реализация метода, разработаны Q-эффективные программы для общей и распределенной памяти и выполнено исследование их динамических характеристик.
Целью данной работы является разработка Q-эффективной программы для решения пятиточечных разностных уравнений методом простой итерации и исследование ее динамических характеристик.
Для того, чтобы достигнуть поставленную цель, в ходе работы необходимо было решить следующие задачи:
1) изучить концепцию Q-детерминанта;
2) изучить метод проектирования параллельных программ на основе концепции Q-детерминанта;
3) изучить программные средства, необходимые для разработки параллельной программы, реализующей метод простой итерации;
4) реализовать программу для систем с общей памятью, используя метод проектирования параллельных программ на основе Q-детерминанта;
5) реализовать программу для систем с распределенной памятью, используя метод проектирования параллельных программ на основе Q- детерминанта;
6) провести анализ динамических характеристик разработанных программ.
Работа включает в себя введение, четыре основных раздела, заключение и список литературы. Объем работы составляет 40 страниц, объем библиографии - 22 наименования.
В первом разделе «Q-эффективная реализация алгоритма» описана концепция Q-детерминанта и метод проектирования параллельных программ на основе концепции Q-детерминанта.
Второй раздел «Технологии параллельного программирования» содержит описание технологий параллельного программирования, которые используются в разработанной Q-эффективной реализации алгоритма.
В третьем разделе «Проектирование и программирование Q- эффективной реализации метода простой итерации» описана постановка задачи и проектирование параллельной программы для Q-эффективной реализации алгоритма, где поэтапно описан план его выполнения и описан сам процесс программирования для последовательной программы и Q- эффективной для общей и распределенной памяти.
Четвертый раздел «Тестирование и эксперименты» содержит описания тестирования разработанных программ, экспериментов, проводимых над ними, характеристик системы, на которой ставились эксперименты и результаты запуска Q-эффективных программ для общей и распределенной памяти, а именно их динамические характеристики и их анализ, полученные с помощью суперкомпьютера «Торнадо ЮУрГУ».
В заключении подводятся итоги проделанной работы и предлагаются варианты дальнейшего развития.
В ходе выполнения выпускной квалификационной работы были решены следующие задачи:
1) изучена концепция Q-детерминанта;
2) изучен метод проектирования параллельных программ на основе концепции Q-детерминанта;
3) изучены программные средства, необходимые для разработки параллельной программы, реализующей метод простой итерации;
4) реализована программа для систем с общей памятью с использованием метода проектирования параллельных программ на основе концепции Q-детерминанта;
5) реализована программа для систем с распределенной памятью с использованием метода проектирования параллельных программ на основе концепции Q-детерминанта;
6) проведен анализ динамических характеристик разработанных программ.
Данная работа выполнена при поддержке Российского Фонда Фундаментальных Исследований, грант № 17-07-00865 А.
В дальнейшем планируется провести дополнительные исследования метода простой итерации для распределенной памяти .