Jump to content

Гиперкуб (шаблон связи)

Трехмерный гиперкуб — ​​это сетевая топология для параллельных компьютеров с элементы обработки. Топология позволяет эффективно реализовать некоторые базовые коммуникационные примитивы, такие как Broadcast , All- Ruce и Prefix sum . [1] Элементы обработки пронумерованы. через . Каждый обрабатывающий элемент соседствует с обрабатывающими элементами, номера которых отличаются одним и только одним битом. Алгоритмы, описанные на этой странице, эффективно используют эту структуру.

Схема алгоритма

[ редактировать ]

Большинство коммуникационных примитивов, представленных в этой статье, имеют общий шаблон. [2] Первоначально каждый обрабатывающий элемент имеет одно сообщение, которое должно достичь всех остальных обрабатывающих элементов в ходе работы алгоритма. Следующий псевдокод описывает необходимые шаги связи. Таким образом, Initialization , Operation и Output являются заполнителями, которые зависят от данного коммуникационного примитива (см. следующий раздел).

Input: message .
Output: depends on Initialization, Operation and Output.
Initialization

for  do
    
    Send  to 
    Receive  from 
    Operation
endfor
Output

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

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

Примитивы связи

[ редактировать ]

Префиксная сумма

[ редактировать ]

В начале операции суммирования префиксов каждый обрабатывающий элемент владеет сообщением . Цель — вычислить , где является ассоциативной операцией. Следующий псевдокод описывает алгоритм.

Input: message  of processor .
Output: prefix sum  of processor .
 

for  do
    
    Send  to 
    Receive  from 
    
    if bit  in  is set then 
endfor

Алгоритм работает следующим образом. Заметим, что гиперкубы размерности можно разбить на два гиперкуба размерности . Назовите субкуб, содержащий узлы с ведущим 0, как 0-субкуб, а субкуб, состоящий из узлов с ведущей 1, как 1-субкуб. После того, как оба субкуба вычислили сумму префикса, сумма по всем элементам в кубе с 0 субкубами должна быть добавлена ​​к каждому элементу в кубе с 1 субкубом, поскольку каждый обрабатывающий элемент в кубе с 0 субкубами имеет более низкий ранг. чем обрабатывающие элементы в 1-субкубе. Псевдокод сохраняет сумму префикса в переменной и сумма по всем узлам субкуба в переменной . Это позволяет всем узлам в кубе с 1 суб-юнитом получать сумму по кубу с 0-ю субтитровами на каждом этапе.

Это приводит к коэффициенту для и фактор для : .

Пример расчета суммы префикса. Верхнее число: ориентировочная сумма префикса (переменная ). Меньшее число: сумма по всем элементам в подкубе (переменная ).

Все собрать/все уменьшить

[ редактировать ]

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

Input: message  at processing unit .
Output: all messages .

for  do
    
    Send  to 
    Receive  from 
    
endfor

С каждой итерацией длина передаваемого сообщения удваивается. Это приводит к тому, что время выполнения .

Тот же принцип можно применить к операциям All-Reduce , но вместо объединения сообщений выполняется операция сокращения двух сообщений. Итак, это операция сокращения , результат которой известен всем процессорам. По сравнению с обычной операцией сокращения, за которой следует широковещательная рассылка, All-Reduce в гиперкубах уменьшает количество шагов связи.

Все на все

[ редактировать ]

Здесь каждый обрабатывающий элемент имеет уникальное сообщение для всех остальных обрабатывающих элементов.

Input: message  at processing element  to processing element .
for  do
    Receive from processing element :
        all messages for my -dimensional sub cube
    Send to processing element :
        all messages for its -dimensional sub cube
endfor

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

Это приводит к тому, что время выполнения .

ESBT-трансляция

[ редактировать ]

Алгоритм ESBT-broadcast (Edge-disjoint Spanning Binomial Tree) [3] — это конвейерный алгоритм широковещательной передачи с оптимальным временем выполнения для кластеров с топологией сети гиперкуб. Алгоритм встраивает биномиальные деревья, не пересекающиеся по ребрам в гиперкубе, такие, что каждый сосед обрабатывающего элемента является корнем остовного биномиального дерева на узлы. Чтобы передать сообщение, исходный узел разбивает свое сообщение на куски одинакового размера и циклически отправляет их в корни биномиальных деревьев. Получив фрагмент, биномиальные деревья транслируют его.

Время выполнения

[ редактировать ]

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

Построение биномиальных деревьев

[ редактировать ]
А -мерные гиперкубы со встроенными тремя ESBT.

В этом разделе описывается, как систематически строить биномиальные деревья. Сначала построим одно биномиальное остовное дерево von узлы следующим образом. Пронумеруйте узлы из к и рассмотрим их двоичное представление. Затем дочерние элементы каждого узла получаются путем отрицания одиночных ведущих нулей. В результате получается одно биномиальное остовное дерево. Чтобы получить копии дерева, не пересекающиеся по ребрам, переместите и поверните узлы: для -я копия дерева, примените операцию XOR с к каждому узлу. Затем поверните вправо все узлы на цифры. Полученные биномиальные деревья не пересекаются по ребрам и, следовательно, удовлетворяют требованиям алгоритма ESBT-вещания.

  1. ^ Грама, А. (2003). Введение в параллельные вычисления. Эддисон Уэсли; Ауфляж: 2-е изд. ISBN   978-0201648652 .
  2. ^ Фостер, И. (1995). Проектирование и создание параллельных программ: концепции и инструменты для параллельной разработки программного обеспечения. Эддисон Уэсли; ISBN   0201575949 .
  3. ^ Джонсон, СЛ; Хо, К.-Т. (1989). «Оптимальное вещание и персонализированное общение в гиперкубах». Транзакции IEEE на компьютерах . 38 (9): 1249–1268. дои : 10.1109/12.29465 . ISSN   0018-9340 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a910a6a35bfa7dd6e8e224af56159cb4__1703974320
URL1:https://arc.ask3.ru/arc/aa/a9/b4/a910a6a35bfa7dd6e8e224af56159cb4.html
Заголовок, (Title) документа по адресу, URL1:
Hypercube (communication pattern) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)