
- •Вопросы
- •Виды параллельной обработки данных на эвм
- •Параллелизм на уровне машинных команд.
- •Структура оперативной памяти.
- •Секция ввода/вывода
- •Секция межпроцессорного взаимодействия
- •Регистровая структура Cray c90
- •Понятие векторн обр-ки, зацепл фу(Cray c90) Векторная обработка
- •Функциональные устройства
- •Независимость функциональных устройств
- •Зацепление функциональных устройств
- •Закон Амдала .Время разгона конвейера Закон Амдала и его следствия
- •Причины уменьшения производительности Cray c90
- •Суммарное влияние отрицательных факторов на производительность компьютера
- •Архитектура компьютера EarthSimulator.
- •Массивно-параллельные компьютеры, общие черты
- •Общая структура компьютера cray t3d
- •Вычислительные узлы и процессорные элементы
- •Коммуникационная сеть
- •Топология сети, чередование вычислительных узлов
- •Маршрутизация в сети и сетевые маршрутизаторы.
- •Нумерация вычислительных узлов.
- •Особенности синхронизации процессорных элементов
- •Причины уменьшения производительности компьютера Cray t3e/d.
- •Вычислительные кластеры:узлы,коммуникационная сеть (латентность, пропускная способность).
- •История проекта Beowulf
- •Общая характеристика Hewlett-PackardSuperdome.
- •Предсказание ветвлений
- •Причины уменьшения производительности
- •Графовые модели программ, их взаимосвязь.
- •Mpi. Терминология и обозначения
- •Общие процедуры mpi
- •Mpi: синхронное и асинхронное взаимодействие процессов. Прием/передача сообщений между отдельными процессами
- •Прием/передача сообщений с блокировкой
- •Совмещенные прием/передача сообщений
- •Mpi: коммуникаторы
- •Коллективные взаимодействия процессов
- •Mpi: глобальные операции, барьеры Синхронизация процессов в mpi происходит посредством единственной функции
- •Транспьютер: основы архитектуры и его характеристика.
- •Оценки быстродействия вычислительных систем. Тесты производительности сети. Тесты производительности файловой системы. Тесты производительности процессора. Комбинированные тесты
- •Тесты производительности сети
- •Тесты производительности файловой системы
- •Тесты производительности процессора
- •Комбинированные тесты
- •Терминология
- •Классификация Флинна
- •Дополнения Ванга и Бриггса к классификации Флинна
- •Классификация Фенга
- •Классификация Шора
- •Классификация Хендлера
- •Классификация Хокни
- •Классификация Шнайдера
- •Классификация Джонсона
- •Классификация Базу
- •Классификация Кришнамарфи
- •Классификация Скилликорна
- •Классификация Дазгупты
- •Классификация Дункана
- •Принципы разработки современных парраллельных компьютеров.
- •Конвейерная организация Простейшая организация конвейера и оценка его производительности
- •Структурные конфликты и способы их минимизации
- •Конфликты по данным, остановы конвейера и реализация механизма обходов
- •Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению
- •Ожидающие функции
- •Виды функций активации
- •Алгоритм решения задач с помощью мсп
- •Формализация задачи
- •Методы обучения
- •Сеть с линейным поощрением
- •Место нейронных сетей среди других методов решения задач
Графовые модели программ, их взаимосвязь.
Сами программы описаны строго и следовательно сами по себе формальны. Но возникает ряд вопросов: как оптимизировать программу относительно использования кэша, регистров и пр. Особенно это важно при выявлении скрытого параллелизма.
Эти и подобные вопросы связаны с тонкой информационной структурой программ.
Информационная структура программ(ИСП)- совокупность сведений о том, как отдельные элементы связаны между собой.
В изучении ИСП сущ 2 подхода –
- денотационный- изучение на основе смены состояния памяти.
- операционный –представление программы в виде совокупности действий, связанных между собой
Операционный подход порождает ряд моделей, называемых графовыми. В этих моделях вершины – множество действий программ. Дуги – отношения между вершинами.
В рамках подхода рассматривается 2 вида действий – преобразователи и распознаватели. Преобразователи осуществляют переработку информации(им соответствуют напр. операторы присваивания), а распознаватели определяют последовательность выполнения преобразователей( напр if).
Рассмотрение вопроса продолжим на след примере
1 y=b1/a1
2 x=y
3 DO i=2,n
x=(bi-ci*x)/ai
if(x<=y) GO TO 7
y=x
7 END DO
После выполнения у буде равно максимальному элементу Х. 1,2,4,6 - преобразователи.
3,5,7- распознаватели.
Между действиями устанавливается 2 типа отношений. Первый определяет факт выполнения одного действия за другим (связь по управлению, операционная связь).
Второй – использования результатов одного действия в качестве операндов другого (информационная связь). Основываясь на первом типе отношений, поставим каждому действию вершину, а дуге отношение последовательности действия(от предшественника к последователю). Получим управляющий граф.
Теперь положим, что мы определили начальные данные программы и наблюдаем за ее действиями на обычном последовательном вычислителе. Каждое срабатывание оператора будем фиксировать вершиной. Получим множество, которое будет отличатся от графа управления. Соединив вершины дугами получим ориентированный граф, кот называется операционно-логической историей.(напр для случая n=3,B={0,1,1},A{1,1,1},C{undef,1,1})
1
2 3 4 5 6 7 1
2 3 4 5 6
7
Данный граф – подмножество графа управления, однако если мы объединим всевозможные операционные графы, это не значит, что мы получим граф управления (в случае неоптимальной программы).
Опять сопоставим каждому действию вершину. Дуге же сопоставим отношение информационной связи. Получим информационный граф.
Поступим аналогично, зададим данные, получим историю реализации программы.
1
2 4 6 1
2 4 6
Все сказанное на счет операционного графа верно и для истории реализации.
Достоинства этих 4 моделей:
-существуют для всех программ(т.е. универсальны)
-возможно построение смешанных(комбинированных) моделей на их основе
-существуют преобразования, переводящие модели друг в друга.
Среди всех моделей наиболее информативна и полезна в практическом отношении четвертая. На ее основе можно ответить на любые вопросы, касающиеся реализации данного алгоритма. Напр определить множество независимых операций.
Проблема определения независимых операций сформировала целый пласт в Computer Science. Это привело к формированию идеи построения графов зависимостей. В этих моделях отношения информационной связи заменяется более широким отношением зависимости.
Два оператора зависимы, если при их выполнении происходит обращении к одной(переменной) ячейке памяти. Так как информационная связь реализуется посредством обращения к одной переменной(ячейке), то она есть частный случай зависимости. Граф зависимостей для вышеприведенного примера будет выглядеть следующим образом:
1
2 4 6
Очевидно, информационный граф является подграфом графа зависимостей. Переменные в графе зависимостей могут играть разные роли – быть как операндом, так и результатом.
Рассмотрим след пример
1 s=0
DO i=1,n
s=s+ai
END DO
Возможны два варианта посроения графа зависимостей
- рассматривать в качестве вершины операторы программы
1
2
-рассматривать в качестве вершины отдельное срабатывание каждого оператора,т.е. операции(n=4)
0
1 2 3 4
Заметим, что в вершину с номером n входит n дуг, c номером n-1 n-1 дуг и т д. Большое количество дуг – плата за выявление зависимостей.
Близко к графам зависимостей стоит граф влияния. Будем говорить, что одна операция влияет на другую, если изменение переменной, вычисляемой первой операцией, повлияет на другую операцию. Построим соответствующий граф(совпадает с графом зависимостей операций, но в общем случае не совпадает).
0
1 2 2 2
Будем говорить, что отношение R: АRAтранзитивно, если для любыхa,b,cпринадлежащих А
a R b,bRc=>aRc
Пример транзитивного отношения – отношение равенства “=”. Если а=bиb=c, тоa=c
Отношения управления, информационной связи и зависимости не являются транзитивными. Отношение влияния транзитивно. Граф истории реализации является остовным подграфом(минимальный граф)(граф, в кот любые две вершины соединены 1 путем, либо не соединены вовсе) графа влияния.
1
2 2 2 2
Граф влияния – транзитивное замыкание истории реализации.
Вопрос№26
MPI –общая структура