
- •1.1. Развитие элементной базы вс.
- •1.2. Перспективы развития архитектур класса mpp (Massively Parallel Processor).
- •С хематический вид архитектуры с раздельной памятью
- •Линейная сеть процессоров
- •Повышение эффективности решения задач на линейной сети процессоров
- •Вычисление параллельного префикса
- •Использование гиперкуба для реализации параллельных алгоритмов.
- •Решение задачи быстрой сортировки на гиперкубе
- •2.1. Матричные вс с ассоциативной обработкой инф-ции на примере вс pepe.
- •2.2 Супер-эвм фирмы Cray Research.
- •1. Три типа различных регистров:
- •2. Параллельная обработка на нескольких уровнях.
- •3. Организация памяти.
- •2.3 Понятие метакомпьютинга. Способы организации метакомпьютера. Основные решаемые задачи. Примеры использования метакомпьютера для решения сложных задач.
- •3.1Транспьютеры. Практическое применение
- •3.2 Способы распределения задач по процессорам в мультипроцессорных вс.
- •3.3 Реализация фундаментальных вычислительных алгоритмов в линейной сети процессоров.
- •Линейная сеть процессоров
- •Повышение эффективности решения задач на линейной сети процессоров
- •Вычисление параллельного префикса
- •4.1 Вс на основе систолических и волновых матриц
- •Волновая матрица.
- •4.2 Возм-ые пути постр-ия высокопроизв-ых вс, отличных от фоннеймановского типа. Понятие семантического разрыва между стр-рой вс и реал-ой прогр-ой.
- •Концепция неограниченного параллелизма. Выявление микро- и макропараллелизма в алгоритмах.
- •5.1 Анализ производ-ти мультипроцессорных вс. Коэффициент ускорения вычислений. Проблемы достижимости линейного роста производительности.
- •5.2 Редукционная машина «Алиса». Пример выполнения фрагмента программы.
- •Параллельная редукция
- •6.1 Развитие новых методов вычислений Японская программа по развитию вычислительной техники:
- •Основной язык: Prolog
- •6.2 Показатели качества функционирования вс. Критерий Гроша. Критерий Минского. Двухпараметрический критерий. Проблемы достижения линейного роста производительности вс.
- •7.1 Достоинства и недостатки видов соединений вычислительных модулей в высокопроизводительных вс. Шина. Кольцо.
- •Линейная сеть процессоров
- •Повышение эффективности решения задач на линейной сети процессоров
- •7.3 Перспективы развития vpp (Vector Parallel Processor)
- •8.1 Достоинства и недостатки видов соединений вычислительных модулей в высокопроизводительных вс. Шина. Кольцо.
- •Одномерный путь передачи информации (отсутствует параллелизм передачи информации).
- •8.2 Особенности перехода к параллельным вычислениям. Проблемы организации параллельных вычислений.
- •9.1 Сравнительный анализ режимов и алгоритмов обработки информации в вс Сравнительные возможности двух методов организации параллельных вычислений: метод конвейеризации и метод параллелизма.
- •9.2 Принцип вычислений на основе управления потоком данных. Машины потоков данных (мпд). Архитектура. Достоинства и недостатки мпд.
- •Структура машины потоков данных. Данные хранятся в пакетах данных – в активных ячейках памяти. Ба – блок арифметический. Бл – блок логический. В активной памяти находятся пакеты, готовые к выполнению.
- •Функционирование машин потоков данных.
- •Организация сети передачи пакетов в мпд.
- •Достоинства мпд.
- •Недостатки мпд.
- •Обработка структур в мпд.
- •Структура мпд для обработки структур.
- •Структура устройства хранения и обработки.
- •9.3 Реализация фундаментальных вычислительных алгоритмов в матричной сети процессоров.
- •Решение задач линейной алгебры на матричной сети процессоров
- •10.1 Достоинства и недостатки видов соединений вычислительных модулей в высокопроизводительных вс. Шина. Кольцо.
- •Одномерный путь передачи информации (отсутствует параллелизм передачи информации).
- •10.2 Принцип вычислений на основе управления потоком данных. Машины потоков данных (мпд). Архитектура. Достоинства и недостатки мпд.
- •Данные хранятся в пакетах данных – в активных ячейках памяти. В активной памяти находятся пакеты, готовые к выполнению.
- •10.3 Принцип «разделяй и властвуй» и его использование для повышения эффективности выполнения вычислительных алгоритмов в сетях процессоров
- •11.1 Абстрактная архитектура вс. Основные модули и интерфейсы
- •Арифметический и командный конвейер
- •11.2 Особенности перехода к параллельным вычислениям. Проблемы организации параллельных вычислений.
- •11.3 Современные тесты для оценки производительности вс.
- •12.1 Диаграмма выполнения команды в машине фон Неймана. «Узкие места» при выполнении команды в последовательной вс. Методы устранения «узких» мест.
- •12.2 Редукционная g-машина. Пример выполнения фрагмента программы.
- •1. Три типа различных регистров:
- •2. Параллельная обработка на нескольких уровнях.
- •3. Организация памяти.
- •13.1 Арифметический и командный конвейер.
- •13.2 Организация тэговой памяти и оценка ее эффективности на примере мультипроцессорной вс Эльбрус.
- •Независимость программных средств от обрабатываемых данных. Программные средства реализованы только на логический уровень, поэтому:
- •Разработка высокопроизводительных систем класса мпд на основе ассоциативной памяти.
- •14.1. Способы выбора количества уровней совмещения (ступеней) в командном конвейере.
- •Тип решаемой задачи.
- •Стоимость организации вычислений.
- •14.2 Кластерные проекты (на примере мвс-1000 м). Коммуникационные технологии построения кластеров. Beowulf- кластеры. Beowulf- кластеры. The-hive.
- •14.3Теоретические модели параллельных систем. Ячеечные автоматы Неймана. Пространственная машина Унгера.
- •15.1 Достижения и перспективы развития вычислительной техники.
- •Японская программа по развитию вычислительной техники:
- •Задачи:
- •Существуют трансляторы с полуестетвенных языков
- •15.2 Способы распределения задач по процессорам в мультипроцессорных вс.
- •Организация супер-эвм с общей памятью (на примере hp Superdone). Архитектура ccNuma.
- •16.1 Классификационные схемы архитектур вс (по Флинну, по Энслоу). Достоинства и недостатки каждой из классификаций.
- •Многовходовые
- •Несимметричные(системы с неоднородными процессорами)
- •5.Вс с матричными (векторными) процессорами (Архитектура мрр)
- •16.2 Теоретические модели параллельных систем. Ячеечные автоматы Неймана. Пространственная машина Унгера
- •16.3Организация супер-эвм с общей памятью (на примере hp Superdone). Архитектура ccNuma.
- •17.1Достоинства и недостатки видов соединений вычислительных модулей в высокопроизводительных вс. Шина. Кольцо.
- •Одномерный путь передачи информации (отсутствует параллелизм передачи информации).
- •17.2 Вычислительные системы с векторной обработкой команд (структура). Диаграмма выполнения операций с векторной обработкой команд.
- •Вычисление параллельного префикса
- •63 Гусеничный алгоритм обработки элементов массива. Повышение эффективности решения задач на линейной сети процессоров
- •Вычисление параллельного префикса
- •65 Реализация фундаментальных вычислительных алгоритмов в матричной сети процессоров.
- •Решение задач линейной алгебры на матричной сети процессоров
- •Японская программа по развитию вычислительной техники:
- •Задачи:
- •Существуют трансляторы с полуестетвенных языков
- •2 Пути развития вычислительных систем (вс). Пять японских программ о развитии и внедрении средств вычислительной техники.
- •Использование гиперкуба для реализации параллельных алгоритмов.
- •Решение задачи быстрой сортировки на гиперкубе
- •Использование комбинаторов в редукционном вычислении
- •Процесс вычисления комбинаторного выражения
- •Реализация фундаментальных вычислительных алгоритмов в линейной сети процессоров.
- •Линейная сеть процессоров
- •Повышение эффективности решения задач на линейной сети процессоров
- •Вычисление параллельного префикса
- •20.1 Эволюция развития архитектур вс
- •20.2 Принципы векторизации последовательных программ. Критерии оценки векторной архитектуры.
- •2) Стартовое время конвейера.
- •Гусеничный алгоритм обработки элементов массива. Повышение эффективности решения задач на линейной сети процессоров
- •Вычисление параллельного префикса
- •Достоинства и недостатки видов соединений вычислительных модулей в высокопроизводительных вс. Шина. Кольцо.
- •Одномерный путь передачи информации (отсутствует параллелизм передачи информации).
- •21.2 Теоретические модели параллельных систем. Машина Холланда.
- •Решение задач линейной алгебры на систолических массивах.
- •22.2 Реализация принципа «сверхмультиобработки». Статический и динамический способ создания «общего кода».
- •22.3 СуперЭвм фирмы Fujitsu.
- •23.1 Сравнительные возможности двух методов организации параллельных вычислений: метод конвейеризации и метод параллелизма.
- •Факторы, влияющие на снижение производительности в системах с векторной обработкой команд
- •5. Зависимость по управлению
- •Основные технологии параллельного программирования.
- •62 Реализация фундаментальных вычислительных алгоритмов в линейной сети процессоров.
- •Линейная сеть процессоров
- •Повышение эффективности решения задач на линейной сети процессоров
- •Вычисление параллельного префикса
- •Вычислительные системы с векторной обработкой команд (структура). Диаграмма выполнения операций с векторной обработкой команд.
Основные технологии параллельного программирования.
Попытки создания технологии параллельного программирования наблюдались еще в 60-е годы XX века. Известны параллельные языки ADA, OCCAM и другие. Но несмотря на наличие параллельных архитектур последовательность выполнения команд оставалась той же. Начало создания технологии параллельного программирования в 90-е годы ХХ века. Сегодня существует более 100 технологий, среди них такие как НОРМА, Linda, Occam, OpenMP, DVM и др.
Хотя и наблюдалось создание таких технологий, но возникали определенные трудности в реализации. Ни одна из технологий не гарантирует получение высокой эффективности без дополнительных сведений от программиста.
Требования для использования параллельных технологий:
найти в программе ветви, которые должны выполняться параллельно,
распределить данные по нескольким локальным памятям,
согласовать распределенные данные с параллельностью вычислений.
Трудности реализации параллельных программ:
использование традиционных компиляторов;
зависимость между итерациями при выполнении программ.
Одной из возможностей повышения эффективности реализации таких программ является обеспечение возможности формирования подсказок компиляторам о том, какие ветви следует выполнять параллельно. Компилятор должен уметь анализировать цепочки вызовов. Для реализации взаимодействия между различными частями программы необходимы специальные средства, которые реализуются в виде подсказок компилятору:
специальные директивы, которые можно указать в комментариях,
новые конструкции, то есть дополнительные служебные функции.
В
рамках последовательных секции
выполняются отдельные составляющие
программ, нити выполняются параллельно.
Одна и та же программа может быть
выполнена как последовательно, так и
параллельно (с учетом комментариев).
Общие переменные используемые в программе
всегда существуют в одном экземпляре.
При этом переменные, используемые в
отдельных секциях, могут быть локальными
или разделяемыми.
Технология OpenMP ориентирована на системы с общей памятью SMP. За основу при реализации берется последовательная программа, а для реализации параллельной программы используются специальные директивы.
Архитектура программы следующая:
Одна
нить (thread) может быть разделена на
несколько нитей, которые в последующем
снова сводятся к одной. В рамках
последовательных секции выполняются
отдельные составляющие программ, нити
выполняются параллельно. Одна и та же
программа может быть выполнена как
последовательно, так и параллельно (с
учетом комментариев). Общие переменные
используемые в п
рограмме
всегда существуют в одном экземпляре.
При этом переменные, используемые в
отдельных секциях, могут быть локальными
или разделяемыми.
Общая идея технологии OpenMP заключается в том, что некоторые фрагменты текста программы можно объявлять параллельными.
! $OMP
! $OMP PARALLEL
<параллельный код программы>
! $OMP END PARALLEL
Для описания нитей используются директива THREAD.
Особенности OpenMP:
параллельные секции могут быть вложенными друг в друга,
число нитей параллельных секции можно менять при выполнении определенных условий,
возможно распределение работы между нитями (выполнение одного и того же фрагмента программы),
возможно распределение итераций по нитям с помощью директивы Шедьюла,
возможна организация параллелизма на уровне независимых фрагментов,
существуют различные типы переменных, которые могут быть в одном случае разделяемыми, а в другом – локальными.
Достоинства OpenMP:
пользователь может работать с единым текстом, как для последовательного, так и для параллельного выполнения программы,
компилятор последовательной машины не замечает директивы, так как они написаны в комментариях,
для специальных функции и переменных придуманы заглушки,
возможность постепенного распараллеливания программы и добавления новых директив, что упрощает программирование и отладку.
Технология DVM (Develop Virtual Machine).
DVM содержит 5 основных компонентов:
компилятор
система поддержки выполнения параллельных программ
отладчик параллельных программ
анализатор эффективности программ
предсказатель производительности.
Основные принципы:
высокоуровневая модель выполнения программы
директивы или спецификации должны быть понятны для обычных компиляторов
основная работа по реализации модели должна быть выполнена динамически
Директивы формируются в виде строк комментариев
DVM $
! DVM $
C DVM $
DVM – это программа, которая выполняется на виртуальной многопроцессорной системе. Виртуальная машина – это машина с аппаратурой или программным обеспечением, которые предоставляются конкретному пользователю или конкретной программе – MPI-машина. В качестве аппаратуры используются многомерные линейки процессоров, число процессоров и способ их соединения задается непосредственно при запуске программы.
Используются два типа параллелизма:
независимые задачи или ветви,
в рамках каждой ветви допускаются параллельные циклы.
Все переменные программы размножаются по всем процессорам (на каждом процессоре создается своя копия).
Основные конструкции DVM.
У
казанные
элементы отображаются на определенную
архитектуру.
PARALLEL – распараллеливание
MAP – отображение задач на конкретные массивы
DISTRIBUTE – распределение массивов (определение их типов, отображение)
С DVM $
DISTRIBUTE
<имя массива> формат [onto T(n)]
Поле формат может принимать одно из нескольких значений:
bLock – отображение равными блоками
Onto – отображение массива на ту часть линейки процессоров, но которую отображена n-ая задача вектора задач Т.
Данные, над которыми выполняется операция по технологии DVM, могут быть различных типов:
общие данные (данные вычисляются на одних процессорах, а используются на других) – соседние, удаленные, редукционные (глобальные операции),
частные данные.
24.1
Из-за ограниченных возможностей матриц, вызванных в основном соображениями стоимости(одноразрядные процессоры, единый контроллер и связи только с соседними процессорами) предпочтительно иметь дело с сетями(процессоров) других видов. Было разработано много типов сетей, включая кольцевые, n-кубические, решетчатые, звездные, "снежинка", чечевицеобразные, древовидные, х-древовидные, пирамидальные и множество структур, описываемых другими графами. В нашем случае граф-просто отображение набора подсистем, объединенных в единый мультипроцессор; иногда узлами графа являются отдельные процессоры или память, а не полные ЭВМ.
Однако таких систем в действительности было построено очень мало и только 2 из них с числом процессоров больше 50:Cm и Genoa machine. Число вариантов построения практически бесконечно, поскольку они включают все мыслимые способы соединения все возрастающего по мере совершенствования и удешевления технологии числа процессорных элементов.
Среди наиболее привлекательных сетей выделяются те, структура которых отражает выполняемый алгоритм. Наиболее интересными примерами таких структур являются древовидные и матрицы изменяемой конфигурации из обычных ЭВМ.
Деревья имеют хорошую структуру для большого числа задач, в которых информация сортируется, сравнивается или каким-либо образом уплотняется и реорганизуется, а также где она запоминается, извлекается или передается. Матрицы имеют хорошую структуру для локальной передачи информации.
Наилучшими считаются пирамидальные многопроцессорные системы, поскольку они очень эффективны не только при параллельной локальной обработке, но и при глобальных передачах и преобразованиях информации