а-
УДК 004.724.2+004.272.43
ПАРАЛЛЕЛЬНАЯ ГРУППОВАЯ ПЕРЕДАЧА «ПСЕ - ВСЕМ» В РАСПРЕДЕЛЕННОМ ПОЛНОМ КОММУТАТОРЕ
B.C. Подлазов
Рассматрен способ параллельного выполнения групповой передачи «все — всем» в распределенных полных коммутаторах, построенных на базе комбинаторных блок-схем, для многопроцессорных вычислительных систем.
Ключевые слова: многопроцессорная вычислительная система, произвольная перестановка пакетов данных, параллельная бесконфликтная самомаршрутизация, симметричная блок-схема, распределенный полный коммутатор, групповая передача «все — всем».
ВВЕДЕНИЕ. ПОСТАНОВКА ЗАДАЧИ
За сетями связи многопроцессорных вычислительных систем (МВС) утвердился термин системные сети. Наименьшие времена передачи данных имеет та системная сеть (СС), которая обеспечивает прямые канальные соединения (без промежуточной буферизации данных) для любой пары абонентов сети при параллельной передаче от всех абонентов. Если такая СС позволяет бесконфликтно осуществлять произвольную перестановку пакетов данных по прямым каналам между абонентами посредством их независимой самомаршрутизации каждым абонентом, то она является неблокируемой и самомаршрутизируемой.
Этим свойством обладает, например, СС со структурой полного графа или состоит из одной СБИС полного коммутатора. Однако обе эти структуры непригодны для создания СС с большим числом абонентов — первая вследствие большого числа портов абонентов и каналов между ними, а вторая из-за невозможности создания коммутаторных СБИС с необходимым числом портов.
В работах [1—3] предложен метод расширения полного коммутатора т х т с сохранением его маршрутных свойств — метод построения распределенного полного коммутатора N х N построенного из малых коммутаторов т х т, т П N. Этот коммутатор, обозначаемый как простейшая системная сеть ПСС(Д т, 1), обладает свойствами неблокируемости и самомаршрутизируемости, но использует много меньше каналов (примерно
в /2 раз), чем полный коммутатор со структурой полного графа.
Этот метод основывается на описании СС в терминах симметричных блок-схем, давно уже исследуемых в комбинаторике [4]. Его можно применять каскадно, что позволяет строить многокаскадные распределенные полные коммутаторы с любым числом портов [3], которые являются не-блокируемыми и самомаршрутизируемыми.
Распределенный полный коммутатор представляет собой практически идеальную СС для построения отказоустойчивых МВС реального времени [5], так как обеспечивает процессорную к-отказо-устойчивость по процессорам при любом к < N/2, где N — число процессоров.
Групповые передачи «один — многим», «многие — одному» и «многие — многим» широко востребованы в МВС [6, 7]. Для построения отказоустойчивых МВС особенно востребована групповая передача «все — всем», обеспечивающая работоспособность МВС в условиях враждебных отказов многих процессоров [8].
В работах [9, 10] рассмотрен способ выполнения групповой передачи на СС вида ПСС(Д т, 1)
за время последовательной передачи ~ т2 пакетов. Однако он неприменим для системных сетей, в которых N . т(т — 1) + 1 и, в частности, для многокаскадного полного коммутатора.
В настоящей работе ставится задача разработки способа быстрой реализации групповой передачи «все — всем» в многокаскадном распределенном полном коммутаторе. Для ПСС(Д т, 1) он должен быть быстрее способа из работ [9, 10].
40
CONTROL SCIENCES № 6 • 2012
1. РАСПРЕДЕЛЕННЫЙ ПОЛНЫЙ КОММУТАТОР
Неполной уравновешенной блок-схемой М, т, к, а) называется набор из М блоков, в которые входят N элементов так, что в каждый блок входит к разных элементов, каждый элемент входит в т блоков, а каждая пара элементов входит в а блоков.
В соответствии с этим определением параметры блок-схемы связаны соотношениями: Nm = кМ и N = т(к — 1)/а + 1. Минимальное число блоков М и максимальное число элементов N обеспечивается в случае симметричных блок-схем т, а), в которых к = т и М = N. В дальнейшем рассматриваются симметричные блок-схемы т, 1).
Теперь в определении блок-схемы т, а), заменим блок на некоторый исходный полный коммутатор т х т с т дуплексными портами — ИК(т), элемент — на процессор с т портами, вхождение элемента в блок — на дуплексное подсоединение абонента к одному из портов ИК(т) и, наконец, симметричную блок-схему — на СС с N абонентами — СС(^. Тогда последняя состоит из N копий ИК(т), к каждой копии подсоединено т разных процессоров, каждый процессор подсоединен к т копиям ИК(т), а между каждой парой процессоров имеется а прямых каналов, которые проходят через разные ИК(т). При этом каждый канал последовательно проходит только через один ИК(т). Поэтому СС(^) наследует маршрутные свойства ИК(т). Такая СС называется простейшей — ПСС(Ж, т, а). Очевидно, что ПСС(Ж, т, а) изоморфна блок-схеме т, а). В этой работе рассматриваются только блок-схемы т, 1) и ПСС(^ т, 1).
Структура ПСС(Ж, т, 1) имеет вид симметричного двудольного графа, в котором число узлов в каждой доле равно N а степень любого узла в каждой доле равна т (рис. 1). Узлами одной доли являются ИК(т), а узлами другой доли — т-порто-вые процессоры А.. Между любыми двумя узлами в каждой доле существует ровно 1 путь длины 2, про-
Рис. 2. Разветвитель/объединитель m дуплексных каналов РОКт
Рис. 1. Структура ПСС(7, 3, 1) в виде минимального квазиполного графа
Рис. 3. Распределенный полный коммутатор 7 х 7 — РКХ(7, 3, 1)
ходящий через узел в другой доле. Такой граф мы называем минимальным квазиполным графом [8].
В nCC(N, m, 1) можно заменить m-портовый процессор (рис. 2) на связку 1-портового процессора и разветвителя/объединителя каналов (1 х m)/(m х 1) — РОКт. Будем различать два вида таких схем. Первый из них (рис. 2, а) позволяет всем m портам работать параллельно и независимо как на передачу, так и на прием. Схема обозначается РОКт* и изображается с заливкой. Это схема типа многопортовой сетевой карты в PCI-Express [11, 12].
Второй вид-схема РОКт (рис. 2, б) — позволяет передавать только один пакет к процессору. Для этого она должна выполнять функцию множественного доступа — пропускать из нескольких пакетов только любой один, а остальные сбрасывать. Фактически это схема демультиплексора-мульти-плексора, дополненная схемой множественного доступа в мультиплексоре.
Теперь схему nCC(N, m, 1) можно преобразовать в схему с двумя коммутирующими каскадами — хребта коммутаторов m х m и каскада РОКт. Пример такой схемы при m = 3 приведен на рис. 3.
Часть такой схемы (см. рис. 3), располагающаяся выше интерфейса «процессор — РОКm» и заключенная в пунктирный прямоугольник, представляет собой полный распределенный коммутатор N х N с N дуплексными портами, который является однокаскадным (по числу каскадов РОКm) распределенным коммутатором РК1(Ж) m, 1).
Рис. 4. Схема двухкаскадного полного коммутатора РК2(15, 3, 1|3)
Если взять распределенный коммутатор РК1(#, т, 1) в качестве ИК(#), то, применяя ПСС(Ж, т, 1) и РОКт, можно построить [3] двухкаскадный распределенный полный коммутатор Я2 х в схемном базисе коммутаторов т х т и РОКт. Он обозначается как РК2(^2, т, 1|т), и в нем число
Таблица 1
Таблица межсоединений в РК1(7, 3, 1)
ПРС(7, 3, 1) или РКХ(7, 3, 1)
Номера Номера подсоединенных
ИК(3) к ИК(3) абонентов
1 1 7 5
2 2 1 6
3 3 2 7
4 4 3 1
5 5 4 2
6 6 5 3
7 7 6 4
Таблица 2
Таблица межсоединений в РК2(15, 3, 113)
РКХ(7, 3, 1) 1-я ПСС(7, . 3, 1) 2-я ПСС(7 , 3, 1) 3-я ПСС
1 1 7 5 8 14 12 15
2 2 1 6 9 8 13 15
3 3 2 7 10 9 14 —
4 4 3 1 11 10 8 15
5 5 4 2 12 11 9 —
6 6 5 3 13 12 10 —
7 7 6 4 14 13 11 —
дуплексных портов К2 находится в диапазоне #[#/т] < Я2 < #[#/т]. В РК2(Я2, т, 1|т) процессоры, номера которых не совпадают по тоёт, связаны одним путем, а которые совпадают по тоёт, — т путями через разные РК1(#, т, 1).
Итеративное повторение этой процедуры позволяет построить ^-каскадный полный коммутатор РКк(^к, т, 1 |тк - 1) с Як дуплексными портами, где Як- 1[#/т] < Як < Як- 1[#/т] [1, 3]. Он сохраняет маршрутные свойства полного коммутатора, т. е. представляют собой неблокируемую и самомаршрутизируемую СС и состоит из коммутаторов т х т и РОКт.
Не вдаваясь в подробности, проиллюстрируем построение РК2(15, 3, 1|3), применяя ПРС(7, 3, 1) и РК1(7, 3, 1). Табл. 1 задает схему межсоединений
для них, которая соответствует рис. 2 и 3. Табл. 2 задает схему межсоединений для РК2(15, 3, 1|3), в
которой строки задают разные РК1(7, 3, 1), а трехстолбцовые области — ПРС(7, 3, 1). В свою очередь, рис. 3 задает коммутатор РК2(15, 3, 1|3) в схемном базисе 3 х 3 и РОК3.
2. ГРУППОВАЯ ПЕРЕДАЧА «ВСЕ — ВСЕМ»
Групповую передачу в РКк(^к, т, 1|тк - 1) очень просто можно реализовать, если каждый процессор передаст свой пакет в последовательности (^к — 1)-й смежных перестановок-транспозиций, в которой (/ + 1)-я перестановка получается циклическим сдвигом приемников на одну позицию от-
42
ООМТЯОЬ вОЕМОЕБ № 6 • 2012
носительно их размещения в /-й перестановке. Такую реализацию можно ускорить в т раз, если использовать в первом каскаде схему РОКт* (см. рис. 2, а), которая позволяет передавать и принимать разные пакеты независимо и параллельно.
В простейшем случае при к = 1 групповая передача реализуется в РКДЖ, т, 1) следующим образом.
В /-м сеансе, 1 < / < т, каждый процессор передает свой пакет через РОКт* параллельно на все подсоединенные коммутаторы т х т. В /-м сеансе каждый коммутатор принятый на у-й порт пакет передает на [(/ + у)шоёт + 1]-й выходной порт. Если в любом сеансе принятый пакет совпадает с переданным, то процессор его сбрасывает. Длительность /-го сеанса равна времени передачи одного пакета.
Лемма 1. В результате /-го сеанса каждый процессор получит т — 1 разных пакетов от других процессоров.
Доказательство. Допустим противное, что на некоторый процессор-приемник поступают два одинаковых пакета от одного процессора-источника. Они поступают с разных коммутаторов, так как РОКт* в любом сеансе разводит одинаковые пакеты по разным коммутаторам. Это означает, что между процессором-источником и процессором-приемником имеются два пути через разные коммутаторы, что в РК1(#, т, 1) невозможно по построению. Поэтому любой процессор получает не более т — 1 разных пакетов, так как он соединен только с т — 1 другими процессорами, а свой пакет он при приеме сбрасывает. Наличие конфликтов на выходных портах коммутаторов может привести к уменьшению числа пакетов, поступающих к процессорам. Но конфликтов быть не может, так как номера выходных портов повторяют номера входных портов с приращением на г единиц. Лемма доказана.
Теорема 1. За т сеансов каждый процессор получит т(т — 1) = N — 1 разных пакетов от других процессоров, т. е. выполнится групповая передача «все — всем» за время последовательной передачи т пакетов.
Доказательство. В каждом сеансе каждый процессор передает свой пакет ко всем коммутаторам, с которыми он соединен. Каждый коммутатор во всех т сеансах передает каждый поступивший пакет по всем каналам, кроме каналов поступления. В результате каждый процессор передает свой пакет ко всем другим процессорам, с которым он соединен через коммутаторы, а в РК1(#, т, 1) он соединен таким образом одним каналом с любым другим процессором. Согласно лемме 1 во всех т сеансах каждый процессор получит т(т — 1) пакетов и все они разные. Теорема 1 доказана. ♦
Аналогичным образом можно выполнять групповую передачу и в к-каскадном полном распределенном коммутаторе РКк(Лк, т, 1|т ). Для этого первый каскад РОКт, смежный с процессорами, должен содержать схемы РОКт*, которые позволяют передавать и принимать разные пакеты независимо и параллельно (см. рис. 2, а), а все ос-
тальные каскады — схемы РОКт, которые позволяют передавать и принимать только один пакет (см. рис. 2, б и 4).
Групповую операцию «все — всем» на коммутаторе РКк(Лк, т, 1|тк можно проводить как последовательность Як разных перестановок, являющихся циклическими транспозициями. Перестановки из этой последовательности можно запускать параллельно по т штук на разных коммутаторах РКк _ х(Лк _ р т, 1|тк 2), как параллельно выполняемые последовательности Як - 1 разных перестановок-транспозиций среди процессоров, подсоединенных к каждому коммутатору РКк _ х(Лк _ р
т, 1|тк - 2).
Простая реализация этой идеи состоит в следующем. Номер сеанса / представляется к-разряд-ным числом в т-ичной системе счисления как / = тк - 1ак + тк - 2ак - 2 + ... + ах + 1, и групповая передача реализуется следующим образом.
В /-м, 1 < / < тк, сеансе каждый процессор пе-
*
редает свой пакет через схемы РОКт первого каскада параллельно на все подсоединенные комму-
1|тк -
татары РКк - !(^к - р
т,
). Каждая схема
РОКт г-го, 1 < г < к, каскада передает пакет на (аг + 1)-й выходной порт, считая что порты нумеруются натуральными числами. Каждый коммутатор пакет, принятый на у-й порт, передает на [(ак + 1 + у)шоёт + 1]-й порт. Если в любом сеансе принятый пакет совпадает с переданным, то процессор его сбрасывает. Длительность /-го сеанса равна времени передачи одного пакета.
Лемма 2. В результате /-го сеанса каждый процессор получит не более т — 1 разных пакетов от других процессоров.
Доказательство. Наличие в РКк(Лк, т, 1\тк 1) нескольких путей между любой парой процессоров может привести к получению в некотором сеансе одинаковых пакетов. Они поступают с разных коммутаторов в РКк _ 1(Як _ 1, т, 1\тк 2) и схема РОКт* в любом сеансе их пропускает к процессору. Аналогичные ситуации, возникающие в коммутаторах РКк _ 5(Як _ т, 1\тк 5 1), 1 < ^ < к, разрешаются схемами множественного доступа в РОКт. Любой процессор принимает пакеты только от других процессоров, так как свои пакеты он сбрасывает.
Теорема 2. Каждый процессор за тк сеансов получит Як — 1 разных пакетов от других процессоров, т. е. выполнится групповая передача «все — всем» за время последовательной передачи тк пакетов.
Доказательство. В каждом сеансе каждый процессор передает свой пакет ко всем коммутаторам РКк _ 1(Як _ 1, т, 1\тк 2), с которым он соединен. Каждый такой коммутатор во всех сеансах передает каждый поступивший пакет по всем своим каналам. В результате
каждый процессор передает свой пакет ко всем другим процессорам, с которыми он соединен через коммутаторы РКк _ 1(Як _ 1, т, 1\тк - 2), а в РКк(Як, т, 1\тк - 1) он соединен таким образом с любым другим процессором. В результате реализуется групповая передача «все — всем» с возможными приемами одинаковых пакетов. Это пакеты от других процессоров, так как свои пакеты любой процессор сбрасывает. ♦
Замечание. При к > 1 для данного способа справедливо соотношение тк > ^к/т, т. е. на реализацию групповой передачи тратится больше времени, чем первоначально было задумано. Накладные затраты времени равны времени передачи (тк — ^к/т) пакетов. Это составляет тк — ^к/т « тк — (т — 1) х
х (т - 1 + 1/т)к/т < тк - (т - 1)тк - 1 = тк - \ т. е. не более (1/т)-й времени выполнения групповой операции.
3. ФОРМИРОВАНИЕ МАРШРУТНЫХ АДРЕСОВ
Самомаршрутизация в РКк(Вк, т, 1|тк 1) предполагает, что каждый источник независимо от других абонентов формирует цуг маршрутных адресов, прописывающий бесконфликтный путь через все каскады к приемнику. Цуг имеет вид (С1, с2, ..., ск, В), где сг, 0 < сг < т, 1 т г < к, — номер выходного порта схемы РОКт г-го каскада, а В (1 < В т т) — номер выходного порта коммутатора т х т в хребте.
Для выполнения групповой передачи «все — всем» в РК1(Ж, т, 1) С1 в любом сеансе задается как широковещательный адрес, который может задаваться нулем: С1 = 0. В /-м сеансе В задается как В = (/ + у)шоёт + 1.
Для выполнения групповой передачи «все — всем» в РКк(Вк, т, 1 |тк 1) достаточно иметь С1 = 0, Сг = (аг + 1 + у)шоёт + 1, 1 < г< к, иВ = = (ак + 1 + у )шоёт + 1.
Напомним, что у в предложенной адресации обозначает номер порта, принимающего пакет в схемах РОКт г-го каскада или коммутатора т х т. Это означает использование косвенной адресации относительно номера у. Рассматриваемый способ допускает прямую адресацию с явным заданием значения у. Но это требует задания схемы
РКк(Вк, т, 1 |тк - 1) с точным описанием номеров портов и составления на этой базе обширных таблиц маршрутизации. Фактически это означает возможность применения двух способов самомаршрутизации — динамической с косвенной адресацией и статической с прямой адресацией. Выбор — за разработчиками схем для РКк(Вк, т, 1|тк 1).
ЗАКЛЮЧЕНИЕ
Предложен простой способ параллельного выполнения групповой передачи «все — всем» на многокаскадном распределенном полном коммутаторе.
Предполагаемое развитие данной работы — построение способа параллельного выполнения групповой передачи «все — всем» на многокаскадном распределенном коммутаторе с а > 1 параллельными каналами между любой парой процессоров [2, 3]. Можно ожидать дальнейшего сокращения времени выполнения групповой передачи благодаря одновременному выполнению а разных перестановок.
ЛИТЕРАТУРА
1. Подлазов В.С., Соколов В.В. Метод однородного расширения системных сетей многопроцессорных вычислительных систем // Проблемы управления. — 2007. — № 2. — С. 22—27.
2. Николаев А.Б., Подлазов В.С. Отказоустойчивое расширение системных сетей многопроцессорных вычислительных систем // Автоматика и телемеханика. — 2008. — № 1. — С. 162—170.
3. Каравай М.Ф, Подлазов В.С. Распределенный полный коммутатор как «идеальная» системная сеть для многопроцессорных вычислительных систем // Управление большими системами. — Вып. 34. — С. 92—116. — URL: http://ubs.mtas. ru/upload/library/UBS3405.pdf (дата обращения 29.08.2012).
4. Холл М. Комбинаторика. — М.: Мир, 1970. — Гл. 10—12.
5. Каравай М.Ф, Пархоменко П.П., Подлазов В.С. Универсальная сетевая структура для отказоустойчивых многопроцессорных систем реального времени // Тр. междунар. конф. «Технические и программные средства систем управления, контроля и измерения» (УКИ'10) / Москва, ИПУ РАН, окт. 2010. — М., 2010. — С. 79—91.
6. An Overview of the BlueGene/L Supercomputer. The Blue-Gene / L Team / N. Adiga, G. Almasi, G.S. Almasi, et al. — URL: http://www.linuxfordevices.com/files/article041/bgl_ sc2002_final.pdf.
7. Стецюра Г.Г. Методы ускорения выполнения коллективных операций стандарта MPI // Проблемы управления. — 2005. — № 6. — С. 78—81.
8. Лобанов А.В. Обнаружение и идентификация неисправностей в распределенных управляющих вычислительных системах с программно-управляемой сбое- и отказоустойчивостью // Автоматика и телемеханика. — 1998. — № 1. — С. 155—164.
9. Youngjoo Cho, Changkyun Chi and Ilyong Chung. An Efficient Conference Key Distribution System Based on Symmetric Balanced Incomplete Block Design // Lecture Notes Comput. Sci. (LNCS) 2657. — 2003. — P. 147—154.
10. Okbin Lee, Sangho Lee, Seongyeol Kim and Ilyong Chung. An Efficient Load Balancing Algorithm Employing a Symmetric Balanced Incomplete Block Design // 3046. Ibid. — 2004. — P. 647—654.
11. Горбунов В.С. Архитектура хорошо масштабируемого вычислительного кластера // Тр. междунар. науч.-техн. конф. «Суперкомпьютерные технологии: разработка, программирование, применение» (СКТ-2010) / Дивноморское, сент. 2010. — Т. 1. — C. 48—54.
12. Горбунов В.С, Лацис А.О., Иванов А.Н. О построении суперкомпьютеров на основе интерфейса PCI-Express // Там же. — C. 55—57.
Статья представлена к публикации членом редколлегии чл.-корр. РАНП.П. Пархоменко.
Подлазов Виктор Сергеевич — д-р техн. наук, гл. науч. сотрудник, Институт проблем управления им. В.А. Трапезникова РАН, г. Москва, ® (495) 334-78-31, И podlazov@ipu.ru.
44
CONTROL SCIENCES № 6 • 2012