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

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

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

Содержание

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

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

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

Intel Paragon. На i860. Сейчас Intel переориентировался на кластеры, о них мы тоже поговорим. IBM SP(1/2) CRAY T3D/T3E/XT3/XT4 Сегодня подробней рассмотрим CRAY T3E.

CRAY T3E

Это массивно-параллельные компьютеры(фактически другое название компьютеров с распределнной памятью). Все компьютеры такого класса состоят из двух основных частей

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

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

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

Маршрутизация

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

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

Кластеры

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

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

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

Личные инструменты
Разделы