Для студентов МГУ им. Ломоносова по предмету Дипломы и ВКРПреобразование последовательных программ для их эффективного распараллеливанияПреобразование последовательных программ для их эффективного распараллеливания
2021-09-132024-09-08СтудИзба
ВКР: Преобразование последовательных программ для их эффективного распараллеливания
-67%
Описание
Аннотация
Для получения лучших результатов при распараллеливании программы, ее последовательная версия должна быть ориентирована на дальнейшее распараллеливание и учитывать особенности работы распараллеливающих систем. Данная дипломная работа посвящена автоматическому преобразованию последовательных программ в аналогичные последовательные программы для их дальнейшего распараллеливания, а также восстановлению текста программы на языке Fortran из внутреннего представления Системы Автоматизированного Распараллеливания САПФОР. В ходе работы были разработаны и реализованы соответствующие алгоритмы, которые предполагается использовать в системе САПФОР. В разделе «Введение» дается неформальная постановка решаемой задачи, а также краткое описание системы САПФОР. В разделе «Постановка задача» производится формальное описание решаемой задачи. В разделе «Обзор существующих методов решения задачи» происходит обзор вариантов организации внутреннего представления программы, а также некоторых известных средств обратной инженерии. В разделе «Исследование и построение решения задачи» описывается база данных системы САПФОР, конструкции языка Fortran, требующие преобразования, а также разработанные алгоритмы. В разделе «Описание практической части» описаны характеристики программ, реализующих разработанные алгоритмы, а также приведен пример – программа на языке Fortran, демонстрирующая совместную работу алгоритмов преобразования и генерации текста.
Введение
После появление вычислительных машин, вычислительный труд стал проще и легче. Это открыло человечеству новые возможности и изменило жизнь во многих ее проявлениях. Компьютеры произвели настоящий переворот в вычислительной технике став мощным рычагом, обеспечивающим развитие и достижения научно-технического прогресса. До этого, ни одна отрасль не развивалась так стремительно. Суперкомпьютеры применяются для решения наиболее сложных вычислительных задач, возникающих в различных областях науки и практики. Вычислительные мощности предоставляют огромные возможности, которые не используются бездумно, вычисления становятся наименее энергозатратными, и наиболее эффективными. Для этого используется аппарат параллельных вычислений. Распараллелить можно поток инструкций (параллелизм по управлению, пример — технология OpenMP [1]), также можно разделить данные между узлами (параллелизм по данным – подход, применённый в HPF [2]), также некоторые системы позволяют осуществлять параллелизм и по данным, и по управлению (DVM [3]). Параллельные вычисления – это бурно развивающаяся область, актуальность которой складывается из множества факторов, и в первую очередь, исходя из потребности в больших вычислительных ресурсах как для решения прикладных задач моделирования процессов, так и для анализа на основе большого числа уже имеющихся данных. К тому же, традиционные последовательные архитектуры вычислителей и схем вычислений в преддверии технологического предела. В то же время технологический прорыв в области создания средств межпроцессорных и межкомпьютерных коммуникаций позволяет реализовать одно из ключевых звеньев параллелизма – эффективное управление в распределении вычислений по различным компонентам интегрированной вычислительной установки. Однако в этом таится и основная сложность. Распараллеливание программ заключается либо в переписывании программ с использованием
2 Постановка задачи
В рамках данной дипломной работы требуется разработать алгоритм преобразования последовательных программ для их эффективного распараллеливания, а также получить его программную реализацию, которая станет частью существующей системы САПФОР, образовав новый компонент «Блок преобразований». Для достижения этой цели в полном объеме необходимым условием является возможность восстановления преобразованного кода программы, что влечет за собой разработку алгоритма для восстановления, а также полное изменение компонента «Генератор». Это необходимо, так как в предыдущих версиях системы САПФОР Генератор не был предназначен для восстановления программ после преобразований. Текст программы не сохранялся во внутреннем представлении, для получения параллельной версии программы в существующий текст добавлялись директивы DVM. Теперь же сама программа может измениться, и для этого необходим другой подход к восстановлению текста. Таким образом поставленная задача разбивается на два логических и функциональных блока: преобразование и генерация кода программы.
2.1 Компонент Генератор
Генератор является необходимым для организации высокоуровневой работы с системой САПФОР. Пользователь подает на вход системе программу на языке программирования высокого уровня Fortran и на выходе должен получить также Fortran-программу. Генератор должен обеспечивать восстановление программ, состоящих из нескольких файлов и содержащих различные конструкции языка Fortran (комментарии, циклы, вызовы процедур и т.д.), и в конечной цели, способный восстановить программу любой сложности. Восстановленный код программы должен компилироваться, запускаться и выдавать тот же результат, что и исходные код.
![]()
Для получения лучших результатов при распараллеливании программы, ее последовательная версия должна быть ориентирована на дальнейшее распараллеливание и учитывать особенности работы распараллеливающих систем. Данная дипломная работа посвящена автоматическому преобразованию последовательных программ в аналогичные последовательные программы для их дальнейшего распараллеливания, а также восстановлению текста программы на языке Fortran из внутреннего представления Системы Автоматизированного Распараллеливания САПФОР. В ходе работы были разработаны и реализованы соответствующие алгоритмы, которые предполагается использовать в системе САПФОР. В разделе «Введение» дается неформальная постановка решаемой задачи, а также краткое описание системы САПФОР. В разделе «Постановка задача» производится формальное описание решаемой задачи. В разделе «Обзор существующих методов решения задачи» происходит обзор вариантов организации внутреннего представления программы, а также некоторых известных средств обратной инженерии. В разделе «Исследование и построение решения задачи» описывается база данных системы САПФОР, конструкции языка Fortran, требующие преобразования, а также разработанные алгоритмы. В разделе «Описание практической части» описаны характеристики программ, реализующих разработанные алгоритмы, а также приведен пример – программа на языке Fortran, демонстрирующая совместную работу алгоритмов преобразования и генерации текста.
Введение
После появление вычислительных машин, вычислительный труд стал проще и легче. Это открыло человечеству новые возможности и изменило жизнь во многих ее проявлениях. Компьютеры произвели настоящий переворот в вычислительной технике став мощным рычагом, обеспечивающим развитие и достижения научно-технического прогресса. До этого, ни одна отрасль не развивалась так стремительно. Суперкомпьютеры применяются для решения наиболее сложных вычислительных задач, возникающих в различных областях науки и практики. Вычислительные мощности предоставляют огромные возможности, которые не используются бездумно, вычисления становятся наименее энергозатратными, и наиболее эффективными. Для этого используется аппарат параллельных вычислений. Распараллелить можно поток инструкций (параллелизм по управлению, пример — технология OpenMP [1]), также можно разделить данные между узлами (параллелизм по данным – подход, применённый в HPF [2]), также некоторые системы позволяют осуществлять параллелизм и по данным, и по управлению (DVM [3]). Параллельные вычисления – это бурно развивающаяся область, актуальность которой складывается из множества факторов, и в первую очередь, исходя из потребности в больших вычислительных ресурсах как для решения прикладных задач моделирования процессов, так и для анализа на основе большого числа уже имеющихся данных. К тому же, традиционные последовательные архитектуры вычислителей и схем вычислений в преддверии технологического предела. В то же время технологический прорыв в области создания средств межпроцессорных и межкомпьютерных коммуникаций позволяет реализовать одно из ключевых звеньев параллелизма – эффективное управление в распределении вычислений по различным компонентам интегрированной вычислительной установки. Однако в этом таится и основная сложность. Распараллеливание программ заключается либо в переписывании программ с использованием
2 Постановка задачи
В рамках данной дипломной работы требуется разработать алгоритм преобразования последовательных программ для их эффективного распараллеливания, а также получить его программную реализацию, которая станет частью существующей системы САПФОР, образовав новый компонент «Блок преобразований». Для достижения этой цели в полном объеме необходимым условием является возможность восстановления преобразованного кода программы, что влечет за собой разработку алгоритма для восстановления, а также полное изменение компонента «Генератор». Это необходимо, так как в предыдущих версиях системы САПФОР Генератор не был предназначен для восстановления программ после преобразований. Текст программы не сохранялся во внутреннем представлении, для получения параллельной версии программы в существующий текст добавлялись директивы DVM. Теперь же сама программа может измениться, и для этого необходим другой подход к восстановлению текста. Таким образом поставленная задача разбивается на два логических и функциональных блока: преобразование и генерация кода программы.
2.1 Компонент Генератор
Генератор является необходимым для организации высокоуровневой работы с системой САПФОР. Пользователь подает на вход системе программу на языке программирования высокого уровня Fortran и на выходе должен получить также Fortran-программу. Генератор должен обеспечивать восстановление программ, состоящих из нескольких файлов и содержащих различные конструкции языка Fortran (комментарии, циклы, вызовы процедур и т.д.), и в конечной цели, способный восстановить программу любой сложности. Восстановленный код программы должен компилироваться, запускаться и выдавать тот же результат, что и исходные код.





Файлы условия, демо
Характеристики ВКР
Предмет
Учебное заведение
Просмотров
3
Размер
476,6 Kb
Список файлов
Преобразование последовательных программ для их эффективного распараллеливания.pdf

Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!