
- •Вопросы
- •Виды параллельной обработки данных на эвм
- •Параллелизм на уровне машинных команд.
- •Структура оперативной памяти.
- •Секция ввода/вывода
- •Секция межпроцессорного взаимодействия
- •Регистровая структура Cray c90
- •Понятие векторн обр-ки, зацепл фу(Cray c90) Векторная обработка
- •Функциональные устройства
- •Независимость функциональных устройств
- •Зацепление функциональных устройств
- •Закон Амдала .Время разгона конвейера Закон Амдала и его следствия
- •Причины уменьшения производительности Cray c90
- •Суммарное влияние отрицательных факторов на производительность компьютера
- •Архитектура компьютера EarthSimulator.
- •Массивно-параллельные компьютеры, общие черты
- •Общая структура компьютера cray t3d
- •Вычислительные узлы и процессорные элементы
- •Коммуникационная сеть
- •Топология сети, чередование вычислительных узлов
- •Маршрутизация в сети и сетевые маршрутизаторы.
- •Нумерация вычислительных узлов.
- •Особенности синхронизации процессорных элементов
- •Причины уменьшения производительности компьютера Cray t3e/d.
- •Вычислительные кластеры:узлы,коммуникационная сеть (латентность, пропускная способность).
- •История проекта Beowulf
- •Общая характеристика Hewlett-PackardSuperdome.
- •Предсказание ветвлений
- •Причины уменьшения производительности
- •Графовые модели программ, их взаимосвязь.
- •Mpi. Терминология и обозначения
- •Общие процедуры mpi
- •Mpi: синхронное и асинхронное взаимодействие процессов. Прием/передача сообщений между отдельными процессами
- •Прием/передача сообщений с блокировкой
- •Совмещенные прием/передача сообщений
- •Mpi: коммуникаторы
- •Коллективные взаимодействия процессов
- •Mpi: глобальные операции, барьеры Синхронизация процессов в mpi происходит посредством единственной функции
- •Транспьютер: основы архитектуры и его характеристика.
- •Оценки быстродействия вычислительных систем. Тесты производительности сети. Тесты производительности файловой системы. Тесты производительности процессора. Комбинированные тесты
- •Тесты производительности сети
- •Тесты производительности файловой системы
- •Тесты производительности процессора
- •Комбинированные тесты
- •Терминология
- •Классификация Флинна
- •Дополнения Ванга и Бриггса к классификации Флинна
- •Классификация Фенга
- •Классификация Шора
- •Классификация Хендлера
- •Классификация Хокни
- •Классификация Шнайдера
- •Классификация Джонсона
- •Классификация Базу
- •Классификация Кришнамарфи
- •Классификация Скилликорна
- •Классификация Дазгупты
- •Классификация Дункана
- •Принципы разработки современных парраллельных компьютеров.
- •Конвейерная организация Простейшая организация конвейера и оценка его производительности
- •Структурные конфликты и способы их минимизации
- •Конфликты по данным, остановы конвейера и реализация механизма обходов
- •Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению
- •Ожидающие функции
- •Виды функций активации
- •Алгоритм решения задач с помощью мсп
- •Формализация задачи
- •Методы обучения
- •Сеть с линейным поощрением
- •Место нейронных сетей среди других методов решения задач
Параллелизм на уровне машинных команд.
Суперскалярные и VLIW-процессоры
Исключительно интересной оказалась идея воспользоваться скрытым от пользователя парралелизмом на уровне машинных команд. Главная выгода – отсутствие специального программирования.
Существует 2-а основных подхода к ПУМК – Суперскалярные(ССК) и VLIW-процессоры.
В обоих предпологается, что процессор состоит из неск ФУ, которые работают независимо друг от друга.
ССК- не предполагает, что программа будет включать информацию о прараллелизме. Задача обнаружения парралелизма в машинном коде возлагается на аппаратуру. Она же строит последовательность исполняемых команд.
Код для ССК процессора не отражает ни природу аппаратного обеспечения, на котором будет реализован, ни точное время и порядок выполнения команд.
(+) - высокие динамич возможности
(+) – простота программирования, не требует специальной техники программирования
(-) - сложность конструкции
(-) - нет возможности контролировать процесс распараллеливания кода, эффективность параллельной работы в большей степени зависит от профессиализма и технологий разработчиков процессора.
VLIW-работает по правилам фоннеймановского компьютера. Но команды определяют не одну операцию, а несколько. Команда состоит из нескольких полей, каждая из которых отвечает за свою операцию, например за активацию ФУ, работу с памятью, операции с регистрами и т д. Если какая-то часть процессора на данном этапе не востребована, то соответствующая часть команды не задействуется.
Пример VLIW - АР-120 В Floating Point System. Команда состоит из 64 разрядов и управляет работой всех устройств машины. Каждый такт(167 нс) выдаётся 1 команда, что эквивалентно выполнению 6 миллионов команд в секунду. Т.к. каждая команда управляет многими операциями, то реальная производительность выше. Все 64 разряда деляться на 6 групп, отвечающих за свой набор операций:
-операции над 16-разрядными целыми числами
-сложение вещественных чисел
-управление вводом/выводом
-команды переходов
-умножение вещественных чисел
-команды работы с основной памятью
Программа для VLIW всегда содержит точную информацию о парралелизме. Компилятор сам выявляет парралелизм и сообщает аппаратуре, какие операции не зависят друг от друга. Код для VLIW содержит точный план того, как процессор будет выполнять программу. Компилятор должен иметь полное представл о целевом VLIW-процессоре.
(+) – простота конструкции
(+) – возможность достижения высокой степени распараллеливания
(-) - ограниченные возможности
………
Архитектура машин с очень длинным командным словом (VLIW - Very Long Instruction Word) позволяет сократить объем оборудования, требуемого для реализации параллельной выдачи нескольких команд, и потенциально чем большее количество команд выдается параллельно, тем больше эта экономия. Например, суперскалярная машина, обеспечивающая параллельную выдачу двух команд, требует параллельного анализа двух кодов операций, шести полей номеров регистров, а также того, чтобы динамически анализировалась возможность выдачи одной или двух команд и выполнялось распределение этих команд по функциональным устройствам. Хотя требования по объему аппаратуры для параллельной выдачи двух команд остаются достаточно умеренными, и можно даже увеличить степень распараллеливания до четырех (что применяется в современных микропроцессорах), дальнейшее увеличение количества выдаваемых параллельно для выполнения команд приводит к нарастанию сложности реализации из-за необходимости определения порядка следования команд и существующих между ними зависимостей.
Архитектура VLIW базируется на множестве независимых функциональных устройств. Вместо того, чтобы пытаться параллельно выдавать в эти устройства независимые команды, в таких машинах несколько операций упаковываются в одну очень длинную команду. При этом ответственность за выбор параллельно выдаваемых для выполнения операций полностью ложится на компилятор, а аппаратные средства, необходимые для реализации суперскалярной обработки, просто отсутствуют.
VLIW-команда может включать, например, две целочисленные операции, две операции с плавающей точкой, две операции обращения к памяти и операцию перехода. Такая команда будет иметь набор полей для каждого функционального устройства, возможно от 16 до 24 бит на устройство, что приводит к команде длиною от 112 до 168 бит.
Для машин с VLIW-архитектурой был разработан новый метод планирования выдачи команд, названный "трассировочным планированием". При использовании этого метода из последовательности исходной программы генерируются длинные команды путем просмотра программы за пределами базовых блоков. Как уже отмечалось, базовый блок - это линейный участок программы без ветвлений.
С точки зрения архитектурных идей машину с очень длинным командным словом можно рассматривать как расширение RISC-архитектуры. Как и в RISC-архитектуре аппаратные ресурсы VLIW-машины предоставлены компилятору, и ресурсы планируются статически. В машинах с очень длинным командным словом к этим ресурсам относятся конвейерные функциональные устройства, шины и банки памяти. Для поддержки высокой пропускной способности между функциональными устройствами и регистрами необходимо использовать несколько наборов регистров. Аппаратное разрешение конфликтов исключается и предпочтение отдается простой логике управления. В отличие от традиционных машин регистры и шины не резервируются, а их использование полностью определяется во время компиляции.
В машинах типа VLIW, кроме того, этот принцип замены управления во время выполнения программы планированием во время компиляции распространен на системы памяти. Для поддержания занятости конвейерных функциональных устройств должна быть обеспечена высокая пропускная способность памяти. Одним из современных подходов к увеличению пропускной способности памяти является использование расслоения памяти. Однако в системе с расслоенной памятью возникает конфликт банка, если банк занят предыдущим обращением. В обычных машинах состояние занятости банков памяти отслеживается аппаратно и проверяется, когда выдается команда, выполнение которой связано с обращением к памяти. В машине типа VLIW эта функция передана программным средствам. Возможные конфликты банков определяет специальный модуль компилятора - модуль предотвращения конфликтов.
Компилятор с трассировочным планированием определяет участок программы без обратных дуг (переходов назад), которая становится кандидатом для составления расписания. Обратные дуги обычно имеются в программах с циклами. Для увеличения размера тела цикла широко используется методика раскрутки циклов, что приводит к образованию больших фрагментов программы, не содержащих обратных дуг. Если дана программа, содержащая только переходы вперед, компилятор делает эвристическое предсказание выбора условных ветвей. Путь, имеющий наибольшую вероятность выполнения (его называют трассой), используется для оптимизации, проводимой с учетом зависимостей по данным между командами и ограничений аппаратных ресурсов. Во время планирования генерируется длинное командное слово. Все операции длинного командного слова выдаются одновременно и выполняются параллельно.
После обработки первой трассы планируется следующий путь, имеющий наибольшую вероятность выполнения (предыдущая трасса больше не рассматривается). Процесс упаковки команд последовательной программы в длинные командные слова продолжается до тех пор, пока не будет оптимизирована вся программа.
Ключевым условием достижения эффективной работы VLIW-машины является корректное предсказание выбора условных ветвей. Отмечено, например, что прогноз условных ветвей для научных программ часто оказывается точным. Возвраты назад имеются во всех итерациях цикла, за исключением последней. Таким образом, "прогноз", который уже дается самими переходами назад, будет корректен в большинстве случаев. Другие условные ветви, например ветвь обработки переполнения и проверки граничных условий (выход за границы массива), также надежно предсказуемы.
Вопрос№5
UMA, NUMA и ссNUMA архитектуры, комьютеры Cm, BBN Butterfly
(Воеводин)(Танненбаум)(Вранешич-Заки)
UMA-однородный доступ к памяти. Любой процессор с одинаковой скоростью может обратиться к любому модулю памяти. UMA-синоним SMP (Shared memory Proc) (Simmetric Multiple Proc)-общая память, общая операционная система, общие устройства ввода-вывода.
1)UMA с шинной организацией- самая простая
Если процессору необходимо считать слово из памяти, то он проверяет, занята ли шина. Если – свободна, проц помещает адрес нужного слова на шину, устанавливает несколько сигналов управления и ждет, когда память поместит на шину нужное слово.
(-) - производительность системы ограничена пропускной способностью шины.
Некоторорое ускорение дает кэш
проц проц память
кэш кэш
(-) – необходимо согласование содержимого кэшей и памяти.
Протоколы согласования рассмотрим ниже.
Еще одна возможность – наличие модулей локальной памяти
Лок
память Лок
память
проц проц память кэш кэш
Это
уже следующий этап развития –NUMA-архитектура.
2)UMA с координатными коммутаторами
память память память
проц
проц
проц
проц
Координатный коммутатор – неблокируемая сеть, - процессор всегда связан с необходимым модулем, даже если линия или узел заняты.
(-) – высокие аппаратные затраты.
3) UMA с многоступенчатыми сетями – ( похоже на Батрфлай)
формат сообщения
Модуль
Адрес КОП Значение
Арх-ра
1А
000 001 010 011
1В ПРОЦ-РЫ ПАМ
1С 2А 2В 2С 2D 3А 3В 3С 3D
100 101 110 111 000 001 010 011 100 101 110 111
1D
Коммутатор имеет 2 входа и 2 выхода и может замыкать один из входов на 1 из выходов. Представленная сеть наз-ся ОМЕГА – сетью. Положим, что проц 011 обращ к модулю 110 (это число запис в поле модуль). Каждый разряд соответствует своему слою переключателей. Выход переключателя 1 – нижняя линия. 0 –верхняя.(1С, 2В,3D).
Возможны конфликты, - если происходит обращение к одному коммутатору, одному проводу, между запросами и ответами.
Подобная архитектура приводит к идее расслоения памяти. Напр, если адрес 5 разрядов, то младшие 3 – номер блока памяти, а старшие – адрес ячейки в блоке.
Т.е. последовательные ячейки хранятся в разных блоках памяти. Расслоенная память приводит к максимальному параллелизму, т.к. большинство обращений к памяти – обращение к последовательным ячейкам.
NUMA-одно из напр-ий проектирования комьютеров, объедин в себе арх-ру с
общ пам-ю и арх-ру с распред пам-ю.
Осн преим общ пам – легкость напис-ия программ, т.к. отсутств необх-ть явной (т.е. усилиями пользователя) орг-ии пересылок между процессорами для обмена данными. Осн ее недостаток – ограниченность макс произв-ти небольш числом процессоров.
NUMA (Неодн дост к пам-ти)–рассматривает всю распредел память машины, как единое адресное пространство. Тем самым и объедин обе арх-ры.
кластер
CPU M I/O
Лок
шина
Межкластерная
шина
CPU M I/O
Пример – Cm . Сост из набора кластеров, соедин через межкласт шину. Кажд кластер объедин проц-р, контроллер пам, модуль пам и , возм, УВВ, соедин поср лок шины. Когда проц нужно вып опер чтения или записи, он посыл запрос с нужн адр своему контр памяти. Контр-р анализир старш разр адр, по кот и опр, в как модуле хр-ся нужн данные. Если адр – лок, то запрос - на лок шину, иначе – на межкласт шину.
След-но все лок ссылки выполн на порядок быстр, чем удаленные(в этом и сост
неодн-ть доступа).
Др пример NUMA-BBN Butterfly
0
1
2
3
4
5
6
7
Рис 2-16
256 проц. Кажд выч узел сод проц, лок пам и кон-р пам-ти, кот опр, явл-ся –ли запрос лок или его необх перед др узлу через коммутатор. В этом случае удал ссылки реализ за 6 мкс против 2мкс для лок ссылок(Лучше чем в Сm).
(Вранешич стр 685)
ссNUMA-арх
Использование общих данных в мультипроц сист-ме прив к проблеме, связ с наличием в неск КЭШ-ах одних и тех же данных. Когда проц запис перем в ее собств КЭШ, во всех остальных кэшах, содерж ее копии, оказ устаревш и неверные данные. Эти КЭШИ д.б. проинформированы об изменениях. Проблема носит название согласования (коггерентности) КЭШ-ей. Существует 2 способа записи в КЭШ – сквозная запись, когда данные меняются одновременно и в КЭШ-е и в памяти и обратная запись,когда данные в основной памяти изменяются только в случае замены блока данных КЭШ-а.
Протокол сквозной записи
1)скв запись с обновлением. Когда процессор запис в КЭШ новое значение,такое же знач помещ-ся и в модуль памяти, содержащее измен блок КЭШ-а. Копии этого блока могут присутствовать и в друг КЭШ-ах и они тоже д.б. обновлены. Прост способ – широковещат. передача записанных данных. Кажд проц получ данные, и если в его первичн. или вторичн КЭШ-е имеется соотв блок, он обновляется.
2)помеченная скв запись .Когда проц запис в КЭШ нов знач, так знач запис и в модуль памяти, затем дел-ся широковещат рассылка, кот помеч копии в друг Кэш-ах как недостоверн.
Протокол обратной записи
Если проц захочет изменить свой блок, сначала он должен стать его монопольным владельцем. После этого все остальные копии блока помечаются как недостоверные. Владелец блока может свободно изменять его содержимое. Друг проц, делающ запрос к блоку, обращ к проц-влад-цу блока и получает обновленные данные. После оконч манипуляций, управление возвращается модулю памяти, в кот распол блок.
(+) меньший трафик сети.
КЭШ с отслеживанием.
КЭШ процессоров оборуд-ся спец устр-вом, спос следить за сетью(выявл протоколы обратн записи) и автоматич обновлять содержимое КЭШ-а.
Схемы на основе каталогов
Широковещат передача не годится для больших систем, т.к. блок данных использует ограниченное число процессоров. Поэт создаются каталоги с инф-ией о КЭШ-ах, хранящ инф-ию о кажд из блоков. Вместо широковещат, рассыл-ся групповые сообщения.
NUMA-арх была расширена до ссNUMA-арх(сache coherent),кот. работает посредством рассм протокола на каталогах. Каталог – база данных, хранит инф-ию о том, где хранится каждая строка кэш-памяти и изменилась она или нет. Доступ к каталогу осуществляется по высокоскоростным линиям.(см далее Танненбаум)
На осн ссNUMA создан цел ряд систем, расшир возм-ти совр компьютеров. Если классич SMP-серверы содержат 16-32-64 проц, то c ccNUMA уже 256 и больше.
Для того чтобы можно бы рассм-ть ccNUMA как UMA(SMP) необх разница лок и глоб вызовов 5-10%, но в совр она 200-700%, поэт треб-ся спец надстройки, обеспеч оптимальное расположение данных(втч оптимизирующие компиляторы).
Вопрос№6,7
Соотношение между понятиями:устройство, операция, обработка
И их характеристиками:скалярный, векторный
Скалярная команда-команда, у кот. все аргументы должн быть только скал величинами.
Если хотя бы 1 арг-т векторн, то команда наз векторной.
Напр в CRAY C90 есть ком Ascal :S1,S2->S3 Avect :V1,V2->V3. В зав-ти от типа команды проц интерпретирует адреса операндов либо как адреса скаляров, либо как адреса начала векторов.
Векторные устройства- устр ориент на обр-ку векторов данных. В CRAY есть устр
UAvect выполняющее только конвеерное сложение вект и UAscal - ||-||- скаляров.
Об обр-ке говорят, как об абстр понятии, применит к оценке эффективности. Напр пусть у нас есть конвеерное устр-во слож-ия, сост из L ступеней. Два вект раз-ти N можно сложить либо NL тактов на скал устр-ве, либо за L+N-1 на векторн. Но на практике достигн такой величины сложно, т.к. в связи с необх дополн проверочн (иниц) действий. В конвеере появл “пузыри” и эффект сниж-ся. Так обр, ф-ла перепишется к виду L+N-1+Sigma, где Sigma-время, необх для инициализации вект команды. Из этого след, что небольш вект выгоднее склад-ть на скал устр-ве. Значит, что с увеличением длины вект эфф-ть конв обр-ки возрастает.
Е-реальн произв-ть,
тау- время 1 такта работы компьютера
Е
Пиковая
производительность
t
Вопрос№8
Общая структура компьютера CRAY C90
1.Общ принципы вект проц
SIMD проц
Массивно-параллельные Векторные
Причина распространн-ти ВП - в практике научн расчетов, осн массу заним решение СЛАУ, но помимо этоговекторные компьютеры применяются и для скалярных операц, а такж для смеш скал-вект операц.
Операция |
Примеры
|
А=f(B) Скаляр=f(A) A=f(B,C) A=f(Скаляр,B) |
Косинус Сумма, минимум Сложение Умножение на конст |
Комбин эти 4 вида операций, можно произвести люб действие с векторами.
АЛУ так машины устроено след образом
Но на практике АЛУ редко стр-ся по чисто векторному принципу. Причина- стоимость. Чаще всего вект-паралл устр совмещ с конвеерными. Напр сложение вещ чисел требует неск-ко посл операц: подгонка экспонент, нормализация и т п.
С серед 90-х гг векторные машины стали сдавать позиции, уступ место массивно-паралл машинам с распр памятью. Причина- соотношение цена/производительность.Стали говорить о закате направления вект машин. Однако в 2002 году корпорация NEC выпустила новую машину Earth Simulator, у кот произв-ть 89% от пика, что явл прекр показ-лем.
CRAY Y-MP C90 - это векторно-конвейерный компьютер, объединяющий в максимальной конфигурации 16 процессоров, работающих над общей памятью. Время такта компьютера CRAY Y-MP C90 равно 4.1 нс, что соответствует тактовой частоте почти 250MHz.
Общ стр-ра CrayC90 выгл след обр-ом