<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Chen D. et al. Blue Gene/L torus interconnection network //
IBM Journal of Research and Development. 2005. - Vol. 49</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Приближенный алгоритм выбора оптимального подмножества узлов в коммуникационной сети Ангара с отказами</article-title>
      </title-group>
      <pub-date>
        <year>1999</year>
      </pub-date>
      <volume>49</volume>
      <issue>2</issue>
      <fpage>265</fpage>
      <lpage>276</lpage>
      <abstract>
        <p>В АО «НИЦЭВТ» разрабатывается высокоскоростная коммуникационная сеть Ангара с топологией «многомерный тор». При реальном использовании суперкомпьютера с сетью Ангара в условиях наличия занятых и отказавших узлов возникает задача нахождения оптимального подмножества узлов сети для покрытия заданного числа узлов так, чтобы весь сетевой трафик лежал только внутри этого подмножества узлов. В данной работе представлен приближенный полиномиальный алгоритм решения такой задачи. Ключевые слова: Отказоустойчивость, коммуникационные сети, многомерный тор, связность, детерминированная маршрутизация, маршрутизация с порядком направлений.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>agora.guru.ru/pavt
2. Определения</p>
      <p>В данном разделе вводятся некоторые формальные определения, которые в дальнейшем
будут использоваться в статье.
1) mod dj, ..., un) для любого индекса 1 \leq
j \leq</p>
      <p>Рассмотрим коммуникационную сеть с топологией многомерный тор. Множество всех
узлов сети обозначим N , размерности тора обозначим (d1, d2, ..., dn), а общее число узлов
рамках тороидальной топологии будем называть узлы u = (u1, u2, ..., un) и u\~ = (u1, ..., (uj \pm</p>
      <p>, ..., 0) \in \scrD ,
b\igtranleup i &lt; \bigtranleup j, если i &lt; j.
3. Маршрутизация в сети Ангара
3.1. Правило порядка направлений с использование битов направлений
Среди алгоритмов маршрутизации для многомерных торов можно выделить класс
алгоритмов, соблюдающих правило порядка направлений: маршрут между любой парой узлов
включает движения в направлениях в определенном, заранее заданном, порядке. Эти
алгоритмы обладают свойством отсутствия взаимных блокировок между кольцами нескольких
измерений тора при любом количестве одновременных запросов на передачу данных по
сети.</p>
      <p>Во введенных обозначениях правило порядка направлений будет формулироваться
следующим образом: Dj- 1 \leq Dj, j = 2, N , где N — длина пути.</p>
      <p>
        Чтобы задать путь, удовлетворяющий правилу порядка направлений, необходимо
задать стартовую вершину и количество шагов в каждом из направлений, т.е. набор
u0, s\delta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), s\delta (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), ..., s\delta (i), где u0 \in N — стартовый узел, s\delta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), s\delta (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), ..., s\delta (i) &gt; 0 — количество
шагов в направлениях \bigtranleup d\elta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), \bigtranleup d\elta (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), ..., \bigtranleup d\elta (i) таких, что \bigtranleup d\elta (j) &lt; \bigtranleup d\elta (j+1), j = 1, i - 1.
      </p>
      <p>
        В сети Ангара реализована маршрутизация с использованием битов направлений,
которая вносит некоторые ограничения на маршрутизацию с правилом порядка направлений.
Аналогично правилу порядка направлений для задания пути, соответствующему
маршрутизации с использованием битов направлений, необходимо задать стартовую вершину и
количество шагов в выбранных направлениях, то есть следующий набор: u0, s\delta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), s\delta (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), ..., s\delta (i),
где u0 \in N – стартовый узел, s\delta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), s\delta (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), ..., s\delta (i) &gt; 0 – количество шагов в
направлениях \bigtranleup d\elta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), \bigtranleup d\elta (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), ..., \bigtranleup d\elta (i). При этом в наборе направлений \bigtranleup d\elta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), \bigtranleup d\elta (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), ..., \bigtranleup d\elta (i) нет
направлений с противоположными знаками и \bigtranleup d\elta (j) &lt; \bigtranleup d\elta (j+1), j = 1, i - 1. Обозначим такой набор
направлений как Ddirbit. Путь, соответствующий маршрутизации с использованием битов
направлений, обозначим Pdirbit.
3.2. First Step/Last Step
      </p>
      <p>Метод First Step/Last Step [6] используется в сети Ангара как механизм обхода
отказавших узлов. Он расширяет маршрутизацию с использованием битов направлений путем
добавления первого и последнего нестандартного шага.</p>
      <p>Путь с использованием первого и последнего нестандартного шага будет записываться
следующим образом: u0, DF S, Pdirbit, DLS, где u0 — стартовый узел, DF S — первое
положительное нестандартное направление, DLS — последнее отрицательное нестандартное
направление. При этом набор направлений DF S, Ddirbit, DLS удовлетворяет правилу порядка
направлений.</p>
      <p>Таким образом, для однозначного задания пути в сети Ангара необходимо задать набор
DF S, Pdirbit, DLS.
4. Постановка задачи</p>
      <p>Во время работы разделяемого вычислительного кластера необходимо при любом
состоянии системы уметь предоставлять требуемое число узлов, которые должны быть
маршрутизируемы между собой и не иметь транзитного трафика вне этого набора узлов, если
это возможно. Состояние системы определяется набором отказавших линков и/или узлов и
наличием занятых узлов. Занятый или отказавший узел можно интерпретировать как узел,
у которого линки сломаны во всех направлениях.</p>
      <p>Обозначим множество сломанных линков F \subet s\crE .</p>
      <p>Так как физический канал связи между двумя узлами v и u представляет собой линки
от узла v к узлу u и наоборот, то разумно предположить, что при неисправности одного из
линков — второй так же неисправен. Таким образом, множество F будет включать в себя
отказавшие каналы связи попарно.</p>
      <p>Во введенных определениях задача будет формулироваться следующим образом. Пусть
задан тор c размерностями (d1, ..., dn) и набором отказавших линков F . Требуется построить
алгоритм нахождения маршрутизируемого множества M такого, что m \leq | M | , где m —
требуемое число узлов.</p>
      <p>Так как различных систем M может быть несколько, необходим критерий выбора
оптимального маршрутизируемого множества. В работе рассматривались следующие критерии:
1. Минимальный диаметр;
2. Наименьшая средняя загрузка линков;
3. Наименьшее число транзитных узлов.</p>
      <p>Первый критерий возникает из-за того, что в сети с минимальным диаметром задержка
на передачу данных будет наименьшей. Второй критерий следует из стремления получить
равномерно загруженную систему. Третий критерий — из необходимости эффективно
использовать аппаратные ресурсы вычислительного кластера.
5. Алгоритмы решения задачи</p>
      <p>Для решения поставленной задачи разработано несколько алгоритмов. Основной
алгоритм выбора множеств узлов равномерным расширением (см. подраздел 5.2) приведен
после используемого им вспомогательного алгоритма проверки множества на
маршрутизируемость (см. подраздел 5.1). В алгоритме равномерного расширения строится набор
множеств требуемого размера, после чего требуется выбрать оптимальное множество.
Приближенный алгоритм расчета критериев оптимальности и выбора множества, которое является
решением задачи, приведен в подразделе 5.3.</p>
      <p>Для оценки качества предложенного алгоритма в подразделе 5.4 приведен
используемый в настоящее время в сети Ангара алгоритм выбора требуемого множества узлов без
учета занятых или отказавших узлов.
5.1. Алгоритм определения маршрутизируемости множества
Сведем задачу определения маршрутизируемости множества к поиску пути в некотором
ориентированном графе G(V, E).</p>
      <p>
        При построении маршрута между двумя узлами ограничение на принятие решения
о следующем шаге вносит предыстория пути. Рассмотрим движение по некоторому пути
в торе в направлениях: \bigtranleup d\elta (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), ..., \bigtranleup d\elta (i). Этот путь можно продолжить только в таком
направлении \bigtranleup d\elta (i+1), что набор направлений \bigtranleup d\elta (0), ..., \bigtranleup d\elta (i), \bigtranleup d\elta (i+1) удовлетворяет правилу с
использованием битов направлений или \bigtranleup d\elta (i) \leq \bigtranleup d\elta (i+1) в случае, если \bigtranleup d\elta (i+1) является
последним нестандартным шагом.
      </p>
      <p>Поэтому для описания вычислительного узла ui в графе построим множество U i
вершин, которые будут характеризовать предысторию путей, которые проходят через
вычислительный узел ui:
1. U DiFSj , j = 1, .., n — вершины, в которые возможно попасть, совершив первый
нестандартный положительный шаг из соседнего узла в направлении DF Sj ;
2. U DiLSj , j = n + 1, .., 2n — вершины, в которые возможно попасть, совершив последний
нестандартный отрицательный шаг из соседнего узла в направлении DF Sj ;
3. U Didirbitj , Ddirbitj \in Ddirbit — всевозможные наборы направлений, удовлетворяющие
правилу с использованием битов направлений, за исключением набора с отсутствием
agora.guru.ru/pavt
5.2. Алгоритм выбора подмножеств узлов равномерным расширением
Рассмотрим переборный алгоритм решения задачи выбора оптимального подмножества
Ts2 = O(| N | log2(| N | )).
Рис. 2. Схема работы приближенного алгоритма равномерного расширения на примере
двухмерного тора.</p>
      <p>M \prime можно пройти поиском вширь по графу G(V, E) и графу GT (V, E), полученному из
графа G(E, V ) путем обращения связей (стартовая вершина теперь будет Uejnd, а конечная —
Ubiegin). Таким образом, для каждой вершины ui из M \prime можно получить множество узлов
uj, для которых существует путь в одну сторону и обратно.</p>
      <p>Сложность третьего этапа в наихудшем случае можно оценить случаем, когда во всех
расширениях прямоугольника присутствовали сломанные линки, а значит для всех узлов
множества M пришлось выполнить поиск в ширь по графу G(V, E) и графу GT (V, E) –
Ts3 = O(2(A + B)| M | 2| N | ).</p>
      <p>Алгоритм равномерного расширения можно оценить как Texpan = Ts1 + Ts2 + Ts3 =
| + | N | log2| N | + 2(A + B)| M | 2| N | ) = O((A + B)| M | 2| N | ), где A = 3n + 2n + 1
иO(B(2=n +2n13)n|M+| 1N.5n2 + 1.5n + 1, A + B = (2n + 1)3n + 1.5n2 + 3.5n + 2.</p>
      <p>Значение констант A и B довольно велико, для сети размерностью n = 4 значение
выражения A + B = 769. Однако A + B \leq | N | , поэтому предложенный алгоритм является
полиномиальным.</p>
      <p>В результате работы алгоритма получается набор маршрутизируемых множеств
размера больше или равного m. Затем необходимо выбрать оптимальное множество. Для этого
необходимо вычислить значение характеристик: диаметра, средней загрузки линков и число
транзитных узлов системы и выбрать наилучшее множество путем сортировки сначала по
диаметру, затем по средней загруженности и затем по числу транзитных узлов (см.
критерии выбора в разделе 4 постановки задачи). Алгоритм вычисления средней загруженности
линков системы путем построения таблиц маршрутизации представлен в следующем
подразделе.
5.3. Алгоритм построения таблиц маршрутизации</p>
      <p>Пусть имеется маршрутизируемое множество M \subet N . Требуется найти оптимальную
таблицу маршрутизации для узлов множества M и вычислить загруженность каждого
линка всех таких узлов M .</p>
      <p>Допустим, что число путей между двумя узлами ограничено некоторым числом Npaths,
тогда существует Np(a|Mth|-s 1)\ast| M| различных таблиц маршрутизаций. Даже при небольшом
числе узлов сети и различных вариантов путей число различных таблиц маршрутизации
очень велико, и требуется специальный алгоритм для создания таблиц маршрутизации.</p>
      <p>Предложен следующий алгоритм построения таблицы маршрутизации. Предположим,
что все линки узлов множества M имеют нулевую загруженность. Для каждого узла u
маршрутизируемого множества M в графе G(V, E) запускается алгоритм поиска вширь.
После окончания поиска из каждого узла множества M необходимо подняться по
построенному дереву обратно вверх к узлу u, увеличивая при этом загруженность Gu,D проходимых
линков сети. Эвристически выяснено, что сбалансированная таблица маршрутизации
получается, если в качестве следующего узла для запуска поиска вширь выбирать максимально
удаленным от узла u. Вторая эвристика, введенная для получения более равномерной
загрузки линков, заключается в сортировке вершин на каждом новом слое поиска вширь по
возрастанию загруженности линков, соответствующих вершинам.
l
Сортировку слоев в алгоритме можно оценить как O(\sum (| Vi| log2| Vi| )) =
i=1
l
= O(\sum (| Vi| log2| V | )) = O(| V | log2| V | ), где l — число слоев в алгоритме, Vi — множество
вершиi=н1на каждом слое.</p>
      <p>Сложность одного прохода этого алгоритма можно оценить как сумму трех слагаемых:
T1 = O((A + B)| M | 2) для поиска вширь в графе G(V, E), T2 = O(| V | log2| V | ) — сортировка
узлов на каждом шаге поиска, T3 = O(Lmax| M | ) — вычисление загруженности линков.</p>
      <p>В худшем случае таблицы маршрутизации нужно построить для каждой системы,
построенной алгоритмом равномерного расширения из каждого узла сети. Поэтому итоговая
сложность постройки таблиц маршрутизации для всех систем составляет TR = | N | \ast (T1 +
T2 + T3) = O((A + B)| M | 2| N | ). Заметим, что алгоритм построения таблиц маршрутизации
имеет такую же сложность, как и алгоритм равномерного расширения.
5.4. Алгоритм решения задачи в сети без отказов</p>
      <p>Для того, чтобы оценивать качество работы разработанного приближенного алгоритма
равномерного расширения, проводилось сравнение с алгоритмом решения задачи выбора
оптимального маршрутизируемого множества в сети без отказов, работающего по принципу
факторизации.</p>
      <p>Алгоритм выбора оптимального множества узлов в сети без отказов устроен следующим
образом. Для системы размера m строятся всевозможные разложения чисел m, m+1, ..., | N |
на n натуральных множителей k1, ..., kn таких, что \foral i, ki \leq di, которые характеризуют
прямоугольную область. Эта область является одним из решений задачи. Для всех таких
решений ищется система с минимальным диаметром. Дополнительно рассчитывается
загруженность линков при помощи алгоритма построения таблиц маршрутизации в подразделе
5.3, а также количество транзитных узлов.</p>
      <p>Алгоритм факторизации решения задачи в сети без отказов используется в данный
момент в системном ПО на кластере с сетью Ангара.
6. Исследование</p>
      <p>Исследование качества разработанного приближенного алгоритма выбора
оптимального подмножества узлов в сети с отказами можно провести следующим образом. Сначала
с помощью сравнения результатов работы разработанного алгоритма с алгоритмом
выбора узлов в сети без отказов проводится оценка качества нового алгоритма в том случае,
для которого известен другой алгоритм решения задачи. Затем проводится исследование
результатов работы нового алгоритма в сети с отказами в зависимости от размера искомой
системы и количества сломанных линков.</p>
      <p>Исследование разработанного алгоритма проводилось на равносторонних трехмерных
торах: 5x5x5, 7x7x7 и 9x9x9.</p>
      <p>На рисунке 3 представлены характеристики систем, полученных с помощью
алгоритма выбора подмножества узлов в сети без отказов (алгоритм факторизации) и алгоритма
равномерного расширения в зависимости от размера сети и размера искомой системы. По
250
.
к
и
-р200
а
х
е
и
ен150
ч
а
н
з
ео100
н
т
ю
л
со50
б
А
0
100
.-ки 8900
ар 70
.х 60
ни 50
м 40
еи 30
не 20
иж 10
тс 0
о
,д 0
%
25 50 75 100 125 150</p>
      <p>Число сломанных линков
диаметер ср. загр. транз. уз.
(a) Размер искомой системы 57
175</p>
      <p>В данной работе описан полиномиальный алгоритм построения маршрутизируемого
подмножества узлов заданного размера в сети с отказами и проведено предварительное
исследование.</p>
      <p>Алгоритм показал результаты, близкие к результатам алгоритма поиска
маршрутизируемых систем в сети без занятых или отказавших узлов. Предварительное исследование
результатов работы алгоритма показало, что требуется доработка алгоритма для
улучшения качества результатов и увеличения скорости его работы.</p>
      <p>В будущих работах планируется оптимизировать алгоритм и выполнить более
подробное исследование.
Литература
1. Корж А.А., Макагон Д.В., Жабин И.А., Сыромятников Е.Л. Отечественная
коммуникационная сеть 3D-тор с поддержкой глобально адресуемой памяти для
суперкомпьютеров транспетафлопсного уровня производительности // Параллельные
вычислительные технологии (ПаВТ’2010): Труды международной конференции (Уфа,
29 марта 2 апреля 2010 г.). Челябинск: Издательский центр ЮУрГУ, 2010. С. 227–237.
2. Жабин И., Макагон Д., Симонов А. и др. Кристалл для Ангары //</p>
      <p>Суперкомпьютеры. — 2013. — Т. зима-2013. — С. 46–49.
3. Пожилов И.А., Семенов А.С., Макагон Д.В. Алгоритм определения связности сети с
топологией "многомерный тор"с отказами для детерминированной маршрутизации //
Программная инженерия. — 2015. — № 3. — С. 13–19.
4. Puente V., Beivide R., Gregorio J.A., Prellezo J.M., Duato J., Izu C. "Adaptive bubble
router: a design to improve performance in torus networks,"// Parallel Processing, 1999.</p>
      <p>Proceedings. 1999 International Conference on , vol., no., pp.58,67, 1999.
5. Adiga N.R., Blumrich M., Chen D. et al. Blue Gene/L torus interconnection network //</p>
      <p>IBM Journal of Research and Development. 2005. — Vol. 49, no. 2.3. — P. 265–276.
6. Scott S.L., et al. The Cray T3E Network: Adaptive Routing in a High // Performance 3D
Torus. — 1996.
Approximate algorithm for choosing the best subset of
nodes in the «Angara» interconnect with failures</p>
      <p>JSC «NICEVT» (Moscow)
JSC NICEVT develops the Angara high-speed interconnect with multi-dimensional
torus topology. In actual use of the "Angara"interconnect in the conditions of employment
and the availability of the failed nodes arises the problem of finding an optimal nodes
subset to cover a given number of nodes thus all network trafic is lying within the
subset of nodes. This paper presents an approximation algorithm for solving this
problem.</p>
      <p>Keywords: Fault tolerance, communication networks, multidimensional torus, connectivity,
deterministic routing, direction ordered routing.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Korzh</surname>
            <given-names>A.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Makagon</surname>
            <given-names>D.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhabin</surname>
            <given-names>I.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Syromyatnikov</surname>
            <given-names>E.L.</given-names>
          </string-name>
          <article-title>Otechestvennaya kommunikatsionnaya set' 3D-tor s podderzhkoy global'no adresuyemoy pamyati dlya superkomp'yuterov transpetaflopsnogo urovnya proizvoditel'nosti [Russian 3D-torus Interconnect with Support of Global Address Space Memory]. Parallelnye vychislitelnye tekhnologii (PaVT'</article-title>
          <year>2010</year>
          ):
          <article-title>Trudy mezhdunarodnoj nauchnoj konferentsii (Ufa, 29 marta - 2 aprelya 2010) [Parallel Computational Technologies (PCT'</article-title>
          <year>2010</year>
          ):
          <source>Proceedings of the International Scientific Conference (Ufa, Russia, March</source>
          ,
          <fpage>29</fpage>
          - April, 2,
          <year>2010</year>
          )]. Chelyabinsk, Publishing of the South Ural State University,
          <year>2010</year>
          . P.
          <volume>527</volume>
          -
          <fpage>237</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Zhabin</surname>
            ,
            <given-names>I.A</given-names>
          </string-name>
          . Kristall dlya Angary [Angara Chip] / I.A.
          <string-name>
            <surname>Zhabin</surname>
            ,
            <given-names>D.V.</given-names>
          </string-name>
          <string-name>
            <surname>Makagon</surname>
          </string-name>
          , A.S. Simonov // Superkomp'yutery [Supercomputers]. -Winter-
          <year>2013</year>
          . - P.
          <fpage>46</fpage>
          -
          <lpage>49</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Pozhilov</surname>
            <given-names>I.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Semenov</surname>
            <given-names>A.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Makagon D</surname>
          </string-name>
          .V.
          <article-title>Algoritm opredeleniya svyaznosti seti s topologiyey "mnogomernyy tor"s otkazami dlya determinirovannoy marshrutizatsii [Connectivity problem solution for direction ordered deterministic routing in nD torus]</article-title>
          . // Software Engineering.
          <article-title>-</article-title>
          <year>2015</year>
          . -
          <fpage>№</fpage>
          3. -
          <fpage>С</fpage>
          .
          <fpage>13</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>