Понятие и сущность параллельного программирования. Задачи и схема работы динамического анализатора. Оценка достоинств и недостатков динамического анализа, оценка возможности его применения для поиска зависимостей в программах, требующих распараллеливания.
Аннотация к работе
3 1.1 Параллельное программирование 3 1.2 Автоматизация распараллеливания 5 1.3 Статический анализ 6 1.4 Динамический анализ 8 1.5 Распараллеливание во время выполнения 9 1.6 Цель работы 10 2 Постановка задачи 11 2.1 Зависимости по данным 11 2.2 Система автоматизации распараллеливания 12 2.3 Задача анализатора 13 3 Динамический анализ 14 3.1 Схема работы динамического анализатора 14 3.2 Динамический анализ с использованием дерева контекстов 15 3.3 Динамический анализ с использованием глобальных номеров итераций. Введение С момента появления вычислительных машин одной из основных их функций является выполнение трудоемких вычислений. Многие современные вычислительные задачи невозможно решить с помощью однопроцессорных ЭВМ, поскольку программа будет выполняться слишком долго либо затребует большой объем ресурсов таких, как, например, память. Кроме того, в зависимости от типа многопроцессорной системы применяются различные средства программирования: Системы с общей памятью (SMP) - набор параллельно работающих процессоров, имеющих доступ к общей для всех процессоров памяти, причем скорость доступа к памяти одинакова для всех процессоров. При программировании применяется модель передачи сообщений, используются библиотеки MPI, PVM и др. К сожалению, специалист в предметной области, способный разработать алгоритм и запрограммировать его на каком-либо языке программирования (например, Си или Фортране), далеко не всегда знаком с приемами написания параллельных программ и зачастую не может самостоятельно привести свою программу к виду, выполнимому на многопроцессорной машине. Анализ необходим для выявления скрытого параллелизма в исходной последовательной программе. Обычно этот принцип применяется к циклам: если нет зависимостей по данным между разными витками цикла, то витки могут быть выполнены параллельно разными процессорами.