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

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

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

Компьютеры с распределенной памятью.

Составляются из блоков, каждый блок явл самостоятельным компьютером со своей памятью, возможен доступ к чужой локальной памятью. Недостатком явл неоднородность доступа к памяти.

Их использование сложнее, хотя соотношение цена/производительность у них выше. К тому же ткая архитектура позволяет объединять в один компьютеро практическинеограниченое колво проессоров(сейчас уже есть обхъедениня сотен тысяч процессоров). Тем не менее усложняется программиование для них. Несколько поколений компов с распред памятью.

Интел парагон. На и 860 Сейчас интел переориентровался на кластеры, о них мы тоже поговорим ИБМ СП (1/2)

Крей T3D/T3E/XT3/XT4 Сегодня подробней рассмотрим Крей T3E. Это массивно параллельные компьютеры(фактически другое название компов с распр памятью). Все компьютеры такого класса состоят из двух основных частей

  • узлы
    • управляющие узлы-те узлы на которые заходит пользователь, на которых выполняется компиляция и другие сервисные задачи. Они не участвуют в реальном счете параллельных программ
    • узлы опера системы -- на них возлагается работа с файловой системой
    • вычислительные узлы

конфигурации:24-16-256, 7-5-260

  • ком сеть
    • процессорный элемент содержит один проессор(Дек Альфа)(в ранних версиях было по два про элемента), локальную память и некоторые вспомогательные подсистемы. Последние версии Амд оптерон(хт3(одноядерные),хт4(двухядерные), обещают четырехядерные). Сетевой интерфейс, связанный с сетевыми маршрутизаторами. Все вместе логические узлы объединяются в структуру трехмерного тора. Это приводит к тому, что, в отличие от топологии параллелпипеда, у нас получается однородная система. У каждого узла ровно 6 соседей. В торе среднее расстояние уменьшается примерно в два раза. И так тор позволяет объеденить вдостаточно компактную структуру большое число проц.

Маршрутизация. Пусть ндо передать сообщение из узла (х1,у1,з1) узлу (х2,у2,з2). Сообщени идет сначало вдоль оси х до точки, когда кординаты по оси х выровняются. То есть до (х2, у1,з1), потом до (х2, у2,з1) и потом до (х2,у2,з2). Это приводит к тому, что мы заранее знаем как сообщение пойдет по сети, что упрощает работу маршрутизаторам. Наличие обратных связей позволяет сохранить функциональность системы при разрыве одной связи. Скорость передачи данных -- 480 мб/сек. Латентность составляла менее 1 микросекунды. Почти рекордная характериситка для своего времени. Это скорость передачи по одному каналу. Процессор мог работать параллельно с передачей сообщений(это называется асинхронность). Все каналы связи двунапарвленные. Еще одно интересное св-во реализованное в этом компьютере. Когда много проц работают над одной задачей важно синхронизировать их работу. ОДин из распр способов синхр -- это барьерная синхр. Это означает точку в программе до которой должны жойти все процессоры. Если один дошел а остальные нет, то он стоит и ждет. Эта возможность была реализована аппаратно. В каждом из проц элементов выделются регистры, отвечающие за эту синхронизацию. Эти регистры интерпртитируются побитово. Каждый бит отвечает за свою схему синхронизацию. выходы регистров(например первый бит из всех) подаются на схему логического попарно. У того, который дошел до баррьера в бите 1, кто не дошел 0. Когда все дошли до баррьера на выходе схемы оказывается единичка. Для этого эта единичка подается на схему дублирования. Обратное двоичное дерево, в узлах дублирование.Изаписывается в другой бит. ПРоцессор смотрит на бит и узнает, когда все дошли до баррьера и он может идти считать дальше. Синхронизация происходит очень быстро. Другой режим использования этой схемы -- вместо и используем или. Получаем другую функциональность. Она соответствует некоторому поиску -- дошел ли хоть один процессор до баррьера. Соответствует тому когда все проесоры что то ищут. Один нашел и тут же сообщает друним. Это назыается схема "Эврика". Она уже не для синхронизаии. На этом закончим с характеристиками этого конкретного компьютера.

В принципе компы с распр памятью могут строится разными способоами. Перейдем к рассмотрению кластерных систем(они сейчас наиболее распротраннены). Они так же явл системами с распр. памятью.

В науке слово кластер перегружено. Даже в программировании оно используется в разных смыслах. Мы будем говорить о вычислительных кластерах. В чем отличие кластеров от массивно параллельных? В первую очередь проводят различие по тому какие сетевые технологии используются. Для массивоно-параллельных компьютеров используются специально разработанные коммуникаионныые среды. Кластеры строят на основе своюбодно распростаняемых ком сред. Здесь тоже есть свои особенности, но раздел ообычно производят именно здесь. Решения с кластиерами намного более дешевые. В тоже время сов сетев техн позволяют объединять для работы над одной задачей большое число процессоров, наращивать мощность кластера можно практически бесконечно, другое дело, что сделать так, чтобы все узлы работали над одной задачей -- сложная задача. В качестве узлов кластера моогут фигурировать и обычные компьютеры и к примероу векторные. Возникают интересные задачи -- когда объединяються в кластер компы с разной архитектурой. Если посмотреть топ 50 снг, то в нем в последней редакцции все 50 систем -- кластерные. Причины конечно прежде всего в дешевизне. Ну и в мире есть такая тенденция, число кластеров постояннор астет. ИБМ перешла последнее время на кластерные системы, да и другие фирмы. Общая сзхема кластера достаточно простая.

Некоторое колво выч узлов, соединенных какой то ком средой. Обычно для кластеров создается отедльный файл сервер, хотя это и не явл обяз требованием. Обычно так же выделяется отдельный хост компьютер, нак оторый заходит пользователь, компиилирует, который раздает задачи. ИЛи к хосту пользователи могут подключаться к интернет. Сложность состоит в том чтобы заставить все узлы работать над одной задачей. ЧАще всего на кластерах используется мпи. ПРимеров класт систем очень много, мы не будем ими зантиматься. Есть две основных характеристики -выч узлы могут быть практически любыми, а вто ком среды имеют две хар -латентность -- время начальной задержки при посылке сообщения. То есть посе выполнения сенд сообщение должно пройти через все уровни протоколов. Латентность - время от встречания сенд до отсылки сообщение от процессора. НО это очень сложно о змерить, ее только иногд сообщают производители. Обычно под латентностью понимают другое -- время которое затрчивается на посылку сообщения минимальной длины туда сюда между двумя процессорами деленое пополам. -пропусканя способность. Сколько данных за единицу времении можно переслать используя эту ком технологию. М/Г/Б/сек

Время на пересылку т = т0+ (н/в) н - кол-во байт, в - пропускная способность, т0 - лтентность. Если в программе много мелких сообщений, то больше станогвится время латентности. В этом случае больше подходят ком среды с меньшей латентностью, даже если у них меньше скорость. Соответсвенно, если сообщения большие, то выгодней большая латентность и большая скорость.

Распростарненные ком технологии:

  • FastEthernet. Сейчас на нем кластеры уже почти не делают, но приведем для сравнения.Скорость 100 мегабит(12.5 мегабайт). Это пиковые характеристики. При общении процессоров чере мпи обычно удается достичь 6-7

МБ/сек. Латентность зависит от производителя. В среднем 70 мкс. Сейчас он уже считается слишком слабым для построения кластеров.

  • Следующее поколение Gigabit Ethernet . Его достаточно широко используют в кластерах (125 МБайт/сек). В рамках мпая удается получить порядка 45 МБайт/сек. Латентность как правило больше, чем у фаст. В среднем 90-100 мкс, но можно получить и более низкую латентность. Часто используют в клстерах как самое дешевое решение, или ис пользуют как вспомогательную сеть, если есть высокопроизв ком среды.

Специализированные ком среды:

  • Myrinet 2000. Пиковая пропускная сопособность 2 гигабита(250 МБ/сек). В рамках мпиая порядка 200 МБ/сек. лтентность 10 мкс. Но это уже другой уровень стоимотсти. За такую ком среду надо платить примерно столько же сколько за выч узлы.
  • SCI(SCalable Coherent Intropy). Правда последнее время о ней не слышно. В отличие от остальных сетевых решений не базируется на свитчах, позволяет сохдавать двух-трехмерные торы, в ней отстутвует понятие коммутатор, вся ком ведется спец платами, вставляемые в выч узлы. Давал скорость 400 МБ/сек. И латентность 1.2 мкс. Но новых версий не выходит, поэтому популярность он потерял. ТОже дорогая технология.
  • Сейчас наиболее популярна Infiniband. ПОпулярна в дорогом сегменте. Изначально был рассчитан на скорость 1 ГБ/сек. Сейчас уже продают 20 ГБ/сек. К этому никто из остальных блиизко не подходит. Ведутся разработки ещё более быстрых. Латентность сначала была порядка 7 мкс, сейчас примерно 1.5 мкс.

Это красткие характер 5 основных ком технологий, используемых в кластерах. Заачстую используются несколько ком сред.

Есть множество других сетевых решений. Эти -- наиболее распространенный. Краткий обзорчик кластеров мы на этом закончим. И подойдем к завершению темы компов с распр памятью.

На производительность влияют -Не забываем закон Амдала, который важен для компьютеров с распр памятью. -латентность и пропускная способность -возможность асинхронно посылки сообщений - влияет на то что проц не проставивает когда общается с другими процами -равномерная загрузка узлов - очень важный фактор. надо строить задачу таким образом, что бы все процам которые есть давалась примерно одинаковое колво данных насчет, чтобы процессоры не проставивали. Это относительно легко, когда система однородная, но становится намного сложнее если система неоднородная(узлы с разной производительностью разной памятью) Далее, если сускаться на более низкий уровень: -производительность процессора.Каждый проц может иметь свою архитектуру.

Таких факторов много, это только основные И нужно учитывать, что все эти факторы действую одновременно.

И как крайню точку комп с распр памятью рассмотрим ещё один класс. Если мы двигаемя от компов с общей памятью через компы с массивно параллельной пмятью, через кластеры, то крайней точкой можно рассматривать такое поянтие как мета компьютинг, когда в качестве компьютера рассмартивают компы хоть как-то умеющие друг с другом общаться(даже через интернет).Это направление очень модное, так как выч мощность такого компьютера потенциально ужасно огромна. GRID технологии. Весьма изщвестные и распространненые проекты:

  • PACX-MPI - расширение мпи. мпи работающий через тсп/ип. Было продемонтсрировано использование 2 компов(германия-сша) решающих одну задачу. Это хорошо когда в задаче выделяются большие независимые части. Расширение было разработано в конце 90 годов.
  • Condarю Занимает нерабочее время корпоративных компьютеров на полезную работу. Свободно распространяемое по, есть реализации под различные оси.

Проекты решающие конкретные прикладные залачи:

  • SETI@home - всем желающим было предложено нализировать данные радиолокаторов и искть следы внеземных цивилизаций, но вроде ничего не нашли. НО был один из наболее извсетных проектов, привлекший внимание к подобным затеям.
  • distributed.net - продалжается даже сейчас, решает ряд задач, в первую очередь расшифровки различных шифров
  • GIMPS- ищут простые числа. В рамках этого проекта найдено максимальное простое число 2^13466917-1.

Проекто последнее очень много, желающие могут найти информацию. Н это -- решение конкретных задач, а что делать если ххочется создать более менее универсальный мета компьютер? Наиболее популярнs

  • Globus недостаток - сложность установки и настройки. чтобы одключиться надо проделать много магических движений, что бы настроить прочитать много документции. Это явл значительным недостатком.
Личные инструменты
Разделы