Параллельная Обработка Данных, 05 лекция (от 02 октября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция

Содержание

[править] Рекомендуемая литература

  • В. В. Воеводин, Вл. В. Воеводин, «Параллельные вычисления», издательство БХВ Петербург

В основном рассказывать лектор будет по книге. Если появляется что-то новое, то будут использоваться другие материалы. Если изменяются только количественные характеристики, то это тоже будет отмечаться. Все новое отображается на parallel.ru.

«Вы думаете мел закончится и лекции закончатся? Не-ет...»

[править] Архитектура параллельных вычислительных систем

На прошлой лекции начали разбирать архитектуру параллельных вычислительных систем, разобрали класс с общей памятью, отметили плюсы и минусы. С распределенной памятью можно сильно наращивать мощность (до 100 000 процессоров). С общей памятью — проще программировать. В результате, возникла архитектура NUMA, в которой мы жертвуем однородностью доступа к памяти. Мы рассмотрели Cm* и BBN Butterfly — разные архитектуры, но обе являются NUMA. Казалось бы, по этому пути можно смело двигаться дальше, но нет. Оказалось, что то, что полезно на персональных компьютерах, мешает на параллельных компьютерах. Одним из таких мешающих факторов является необходимость согласования содержимых данных в кэше процессоров.

[править] Проблема синхронизации кэшей (Cash Coherence Problem, CCP)

В попытке решить эту проблемы возникла архитектура ccNUMA. сс означает, что CCP решается на уровне аппаратуры (для чего разработаны специальные протоколы). Не будем разбирать эти протоколы, для нас важно, что это проблема решена и решена на уровне аппаратуры, но надо помнить, что ничего не дается даром.

Все большие компьютеры (та же Regatta) устроены именно по архитектуре ccNUMA. Например, SGI (Silicon Graphics) Altix 4700 — 1024 процессора на общей памяти. На данный момент это рекорд для архитектуры ccNUMA.

Сейчас, по большому счету, используются гибридные технологии — несколько компьютеров с общей памятью объединяются в систему по принципу компьютеров с распределенной памятью.

[править] HP SuperDome

Рассмотрим подробнее HP SuperDome. Он появился в 2000 году, архитектура ccNUMA, до 64 CPU. Архитектура оказалась очень удачной, причем он был одним из первых себе подобных. Вскоре 140 из 500 позиций в TOP500 были построены на нём.

Основное понятие данного компьютера — вычислительная ячейка. Сейчас идет с процессорами PA-8700, 8900, но готова к IA64 и сейчас большинство инсталляций с Intel Itanium II. Скорость обмена данными между контроллером и процессорами и банками памяти — 2 гб/сек, с внешним миром — 8 гб/сек. CCP разрешает контроллер вычислительной ячейки. Процессоры PA8700, 750 MHz. 10 функциональных устройств, суперскалярный, выполняет до 4 операций за такт. Пиковая производительность одного процессора — 3 GFlops. Пиковая производительность всего компьютера — 192 GFlops. Но реальная производительность намного ниже. Рассмотрение каждой архитектуры мы будем заканчивать выписывая причины, по которым отличаются реальная и пиковая производительности.

[править] Задержки обращения к памяти
  • Каждый вычислительный узел — 4 процессора. Пока процессор обращается в свою память, задержки минимальны.
  • Прохождение через коммутатор
  • Прохождение через 2 коммутатора (максимальная задержка)

Если необходимо ловить тонкие эффекты, то все это надо учитывать. Качество любой ccNUMA системы определяется рзбросом между временем из пункта 1 и временем из пункта 3. Пока разница до 2 раз — это имеет смысл. Больше — уже нет. У SuperDome примерно 1,6.

[править] Причины
  1. Закон Амдала (10 процентов последовательные операции, 90 процентов параллельные. При увеличении количества процессоров уменьшается время на исполнение параллельных операций. Значит, больше чем в 10 раз ускорения не будет никогда) Для реальных программ закон Амдала очень важен. Все прикладные программы не полностью распараллеливаются (всегда есть ввод-вывод, инициализация, и т. п.). И именно эта доля последовательных операций определяет потенциальное ускорение.
  2. ccNUMA. Акцент на NUMA. Если программа устроена хорошо и обладает свойствами локальности, то это хороший вариант, но далеко не всегда бывает так (работа с разреженными матрицами, например)
  3. ccNUMA. Акцент на сс. Решение CCP тоже забирает время.
  4. Балансировка вычислительной нагрузки.

Если напишем программу, у которой ускорение при распараллеливании в 50% — зачет поставят сразу. //Не на ассемблере, без использования специальных библиотек.

Это были компьютеры с общей памятью.

[править] Компьютеры с распределенной памятью

Большой класс систем. Общую схему мы разбирали, она незатейлива. Есть некоторая коммуникационная среда, к которой подключено какое-то кол-во вычислительных устройств, под каждым из которых может быть либо компьютер, либо процессор, либо система с общей памятью. Важно, что у каждого узла есть своя память. При запросе к памяти идет запрос в коммуникационную среду. Такие компьютеры начали активно развиваться с начала 90 годов.Надо было иметь гибкую архитектуру, так чтобы в зависимости от нужд и бюджета пользователи моги бы подбирать нужную им конфигурацию.(Одинаковая архитектура дл 2 и 200 процессоров). Массивно-параллельные вычислительные системы, вычислительные системы с массовым параллелизмом. По большому счету все системы отличаются в двух вещах -- как устроена коммуникационная среда, и что вместо вычислительного узла. Один из первых таких компьютеров - комп от Intel - Intel Paragon.

  • Коммуникационная среда -- прямоугольная решетка, в каждом узле решетки процессор.Каждый процессор может общаться с непосредственными соседями. Угловые узлы были ущербными -- неудобно, несимметрично.
  • Процессор i860

Макс конфигурация примерно 1800 процессоров.

Другой вариант IBM SP 1/2

  • Коммуникационная среда:Несколько процессоров связаны между собой при помощи высокопроизводительного коммутатора, потенциально обеспечивалась связь каждого с каждым. Системы были из сотен процессоров. Центральная часть естественно коммутатор.
  • Узел: PowerPC, Power3. Сейчас выпустили уже Power 6. В каждом узле есть своя локальная память, данных лежащих вовне он не видит, для запроса таких данных формируется пакет и получает данные через коммуникационную среду. Но даже через коммутатор -- надо время чтобы установить связь. То есть невыгодно общаться с разными. К тому же коммутатор был очень дорогой.

Мы архитектуру компьютера будем разбирать на примере Cray T3D/T3E. Сейчас используют элементную базу XT3, XT4.


Параллельная Обработка Данных


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16


Календарь

вт вт вт вт вт
Сентябрь
04 11 18 25
Октябрь
02 09 16 23 30
Ноябрь
06 13 20 27
Декабрь
04 11 18

Материалы к зачету

Вопросы к зачету по курсу Параллельная обработка данных


Эта статья является конспектом лекции.
Личные инструменты
Разделы