Гергель В.П.1, Полежаев П.Н.2
1 Нижегородский государственный университет им. Лобачевского 2Оренбургский государственный университет Е-mail: [email protected]
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЭКСПЕРИМЕНТАЛЬНОГО ИССЛЕДОВАНИЯ АЛГОРИТМОВ ПЛАНИРОВАНИЯ ЗАДАЧ ДЛЯ ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА С ПОМОЩЬЮ СИМУЛЯТОРА
В данной работе представлены теоретические основы экспериментального исследования алгоритмов планирования задач для вычислительного кластера, выполняемого с помощью симулятора кластера и его управляющей системы. Разработаны модели вычислительного кластера, его управляющей системы и вычислительной загрузки, а также система критериев и метрик сравнения алгоритмов планирования.
Ключевые слова: симулятор вычислительного кластера и его управляющей системы, планирование параллельных задач, высокопроизводительные вычисления, имитационное моделирование.
Введение
Проблема эффективного планирования параллельных задач, поступающих в управляющую систему вычислительного кластера, является актуальной, т. к. современные алгоритмы планирования не обеспечивают необходимого качества составляемых расписаний запуска задач. Довольно часто возникает ситуация, когда вычислительные узлы простаивают, хотя в очереди есть ожидающие своего исполнения параллельные программы.
Также следует отметить, что большинство современных управляющих систем вычислительного кластера используют алгоритмы планирования, не учитывающие топологию при размещении процессов задач на вычислительных узлах, а также их многопроцессорность. Учет данных факторов позволит увеличить эффективность алгоритмов планирования.
В связи с этим необходимо исследование существующих алгоритмов планирования и разработка новых более эффективных вариантов.
В данной работе представлены теоретические основы экспериментального исследования алгоритмов планирования задач для вычислительного кластера, выполняемого с помощью симулятора кластера и его управляющей системы.
Модель вычислительного кластера
Произвольная кластерная вычислительная система может быть описана с помощью ориентированного графа:
От = (Р, К, Е, Ь, с, т, й, у), (1)
гдеР = {рх,р2,-,рп} - множество вычислительных узлов,К = {кх,к2,...,к1} - множество коммутаторов, Е- множество направленных сетевых связей между ними, Ь: Е ^ I + и {0} - отображение, характеризующее пропускную способность каждой сетевой связи в байтах в секунду. Функции с, т, й: Р ^ I + определяют для каждого вычислительного узла р1 соответственно количество его вычислительных ядер с(Рг) = с,, объемы оперативной т(Рг) = и, и дисковой памяти й(р,■) = Д, в килобайтах. Отображение у: Р ^ я+ для узла р, задает относительную производительность у( р,) = 3, каждого его вычислительного ядра, которая определяет, во сколько раз ядра данного узла работают быстрее вычислительных ядер самого непроизводительного узла кластера.
Также в вычислительном кластере имеется выделенный узел р0, на котором работает его управляющая система. Он не входит во множество Р, но связан со всеми вычислительными узлами кластера с помощью выделенной управляющей сети.
Значения С;, М, Д и 3, являются статическими параметрами г-го узла вычислительного кластера. К числу его динамических характеристик относятся величины и, (г), т, (г) и й, (г), которые соответственно определяют загруженность его вычислительных ядер, объем доступной оперативной и дисковой памяти в момент времени г е [0;+^). Имеют место следующие неравенства:
0 < и, (г) < 1,
0 < т1 (г) < М, (2)
0 < йi (г) < Д .
Пусть Хі = {хп,Хі2’-’Хі с } - множество вы’ і п
числительных ядер узла рі, Х = ^ Х,- - множество вычислительных ядер всеХ=Узлов кластера, тогда обозначим в качестве ій (X , г) номер задачи, исполняющейся на ядре X є Х в момент времени Ь. Если же ядро X в момент времени Ь было свободно, то ій(х,г) = 0 . Значения динамических параметров г-го узла в момент времени Ь могут быть вычислены по следующим формулам:
\{Ш (х, і) > 0: х^Хі }|
иі(г) = ---------------с-,
с і
mi (t) = Mi -
di (t) = Di -
X
id (x ,
X
X^Xb
j=id (X ,t)>0
(3)
dj X^Xn ,
j=d (X t )>0
где т^ и й] - соответственно объемы оперативной и дисковой памяти, необходимой каждому процессу)-й параллельной задачи. Данные формулы выведены, исходя из предположений, что мы не рассматриваем алгоритмы планирования с разделением времени и вычислительные узлы не имеют локальную загрузку, характерную для кластеров рабочих станций.
Структура типичного вычислительного БМР-узла изображена на рисунке 1. Вычислительные ядра могут относиться как к отдельным процессорам (по одному ядру на каждом), так и к нескольким многоядерным процессорам. С целью упрощения модели они рассматриваются как единое множество X,. Процессы, выполняющиеся на вычислительных ядрах, могут напрямую считывать и записывать информацию в оперативную и дисковую память данного узла, взаимодействуя с ними через системную шину или коммутатор. При необходимости передачи сообщения другому вычислительному узлу задействуется сетевая подсистема, осуществляющая разбиение сообщения на пакеты и передачу их по высокопроизводительной коммуникационной сети. Сетевая подсистема каждого узла также содержит коммутатор, выполняющий функции маршрутизации собственных и транзитных пакетов.
Обозначим в качестве N = Р и К множество всех сетевых устройств системы. Сетевые связи множества Е с N х N вместе с N образуют высо-
копроизводительную коммуникационную сеть, по которой процессы параллельных программ обмениваются сообщениями. Передача данных между управляющим узлом р0 и вычислительными узлами совершается по отдельной управляющей сети и не мешает информационному обмену между процессами исполняющихся параллельных программ. Поэтому в рамках данной модели управляющая сеть не учитывается явно.
Исследуемые топологии современных кластерных вычислительных систем:
1. Толстые деревья. Рассматриваются блокируемые и неблокируемые варианты с двухуровневой организацией коммутаторов. Примеры известных кластеров, имеющих данную топологию: «СКИФ К-1000», «СКИФ МГУ», «IBM Roadrunner».
2. Торы. Исследуются варианты двумерных и трехмерных торов, а также ^-арных и-кубов. Примеры: «СКИФ Аврора», «СКИФ К-500», «IBM BlueGene/P».
3. Звезды. Рассматриваются варианты с одним центральным коммутатором, к которому подключены все вычислительные узлы. Примеры: «Infinity», кластер ОГУ.
4. парные и-деревья. Представляют собой неблокируемые сети, состоящие из и уровней по kn-1 коммутаторов вида к X к в каждом.
Все рассматриваемые топологии могут быть представлены с помощью орграфа GT .
Настоящая модель вычислительной системы предполагает использование принципа коммутации пакетов при передаче данных. Пусть g задает стандартный фиксированный размер одного пакета, а h < g - размер его заголовоч-
нои части, тогда для пе мера q потребуется p =
редач
q
g - h
и сообщения раз-
пакетов.
Сетевые соединения п другими узлами или коммутаторами
Рисунок 1. Структура SMP-узла
m
Время передачи сообщения от сетевого устройства п1о к п1я вдоль пути « = (ni0,п^..^%) может быть вычислено по формуле:
8
'Мч, ч+,))
Тперед (а> р)
8(Р-1) ШІП Ь((пк , пік+і
к =0,Я-1
+1 марш р(К +1),(4)
где 1марш - среднее время маршрутизации одного пакета, выполняемой каждым сетевым устройством. Заметим, что данная формула не учитывает возможные задержки, связанные с сетевой конкуренцией пакетов.
Также данная модель вычислительной системы предполагает использование алгоритмов статической и динамической маршрутизации, характерных для конкретных топологий вычислительной системы, в том числе алгоритмы кратчайших коммуникационных путей и покоординатной маршрутизации.
Перечислим основные возможности описанной модели вычислительной системы:
1. Формирование вычислительных кластеров однородных или гетерогенных по составу вычислительных узлов и строению коммуникационной сети.
2. Задание статических (узлы связаны друг с другом непосредственно) и динамических (применяются коммутаторы) сетей.
3. Описание полудуплексных и полнодуплексных сетевых соединений, а при добавлении в орграф GT гиперребер - и шинных связей.
4. Формирование топологий большинства современных кластерных вычислительных систем.
В рамках данной работы прежде всего будут рассматриваться вычислительные кластеры с однородной коммуникационной сетью и полнодуплексными свя зями.
через кластерную систему. Типичная структура УСВК приведена на рисунке 2.
Основные компоненты УСВК [1]:
1. Очередь представляет собой накопитель задач пользователей, отправленных на запуск.
2. Планировщик на основе информации о задачах в очереди и сведений о состоянии узлов принимает решение относительно выбора очередной задачи для ее назначения на свободные вычислительные ядра узлов, удовлетворяющих требованиям.
3. Менеджер ресурсов собирает информацию о состоянии вычислительных узлов (их доступность, загруженность и пр.).
4. Агенты на вычислительных узлах выполняют три основные функции: запуск задач на вычислительных ядрах, контроль их выполнения и сбор информации о доступности ресурсов.
Пользователь взаимодействует с УСВК через специальную программу, с помощью которой он может поместить задачу в очередь, просмотреть состояние очереди, узнать статус своей задачи и т. п.
Основным процессом УСВК является диспетчеризация - автоматическая обработка множества заданий. Она включает: планирование (составление расписания для задач), доставку необходимых файлов на исполнительные узлы, мониторинг процесса выполнения и сбор его результатов.
Планировщик в процессе своей работы составляет расписание запуска параллельных задач из очереди в соответствии с заложенным в него онлайновым алгоритмом планирования. В его структуре обычно выделяют: алгоритм выбора следующей задачи из очереди и метод ее
Планировщик
Сведения о
Очередь
задач
Модель управляющей системы вычислительного кластера
Управляющая система вычислительного кластера (УСВК) - программный пакет, выполняющий функции управления прохождением потока параллельных задач
Л —-ч, / \
( Л Алгоритм выбора Менеджер
следующей задачи из ресурсов
очереди V )
Выбранная
задача
Метод назначения задачи на вычислительные ядра
Заявки
пользователей
Вычислительный кластер
Рисунок 2. Структура управляющей системы вычислительного кластера
))
назначения на свободные ядра подходящих по ресурсам вычислительных узлов.
Цикл планирования представляет собой единичный акт планирования, в течение которого происходит выбор ожидающих задач и назначение им ресурсов в соответствии с алгоритмом. Он запускается каждый раз при наступлении одного из следующих событий: поступление в очередь новой задачи, завершение выполняющейся программы или запуск зарезервированной задачи.
Модель вычислительной загрузки кластера
Вычислительная загрузка кластера формируется потоком задач J = (^....Д ),помещае-мых пользователями в очередь его управляющей системы. Каждая задача представляет собой параллельную неинтерактивную программу, способную работать в пакетном режиме. Ее процессы запускаются планировщиком одновременно на всех выделенных вычислительных ядрах, во время работы они обмениваются сообщениями между собой. Ресурсы, выделенные задаче, освобождаются при завершении всех ее процессов.
Пользователь для задачи Д] указывает следующие требования к ресурсам кластера: количество необходимых вычислительных ядер П] , объем оперативной тг] и объем дисковой памяти drJ■ в килобайтах, необходимой для исполнения каждого процесса на узлах, оценку 7] в секундах времени выполнения задачи на узлах с единичной относительной производительностью. Следующая формула позволяет вычислить t ] - оценку времени выполнения задачи с учетом производительности выделенных ей планировщиком вычислительных узлов:
t• = ~
] mmS¡ , (5)
¡е1]
где I] - множество номеров узлов, ядра которых были отданы задаче.
Кроме описанных выше характеристик каждая задача также имеет следующие параметры, необходимые для целей симуляции: а] -время ее поступления в очередь, Т] е (0;~]] - время, затрачиваемое задачей только на вычисления (без сетевых коммуникаций) при условии единичной относительной производительности всех назначенных ей вычислительных узлов.
В рамках данной модели предполагается, что пользователь, делая оценку времени выполнения задачи, возможно, допускает ошибку, переоценивая ее по сравнению с реальным временем выполнения. Противоположный случай ошибок не рассматривается, т. к. управляющая система будет принудительно завершать задачи, превысившие лимит выделенного им времени.
Структура программы каждой параллельной задачи Jj может быть представлена следующей SPMD-моделью:
Process u: for i = 1 to q. do { J Communication^'.');
Computation^'.);
}
Выполнение каждого процесса параллельной задачи представляет собой чередование фаз коммуникации и вычислений.
Коммуникационная часть каждой итерации может быть описана с помощью коммуникационного паттерна - ориентированного взвешенного графа следующего вида:
CPij = (Пj,pij) , (6)
где Пj = {пъп2>-> V - множество процессов задачи, Pij : пj хпj ^ Z + и {0} - функция, определяющая вес каждой дуги, равный размеру в пакетах передаваемого сообщения. Pij(u,v) равно количеству пакетов сообщения, передаваемого от процесса u к процессу v на i-й итерации SPMD.
Пусть predy(u) = {v е Пj :pij(v,u) > 0} - множество предшественников процесса u в орграфе (6), succj(u) = {vеПj:pij(u,v) >0} - множество его последователей. Выполнение фазы Communication (у) для каждого процесса u заключается в том, что сначала происходит неблокируемая рассылка сообщений всем процессам множества succy(u), а затем выполняется блокируемый прием всех сообщений от процессов predij(u). Заметим, что остальные случаи исключены из рассмотрения, т. к. сочетания блокируемых рассылок с неблокируемыми или блокируемыми приемами сообщений могут приводить к взаимоблокировкам, а случай неблокируемых рассылок и неблокируемых приемов не представляется интересным.
Обозначим CPj = {CPij,CP2j,•••,CPqjj} - множество всех коммуникационных паттернов задачи Jj. Можно выделить два основных спосо-
ба его задания: случайная генерация и моделирование реальных программ, например эталонных тестов, реализации быстрого преобразования Фурье, алгоритма параллельного умножения матриц и др.
Типичные коммуникационные паттерны, встречаемые в научной литературе [2, 3]:
1. Random. Каждый процесс пересылает сообщение одному другому случайно выбранному процессу.
2. Pairs. Процессы случайно разбиваются на пары и обмениваются сообщениями между собой.
3. Ring. Процессы объединяются в кольцо. Каждый процесс посылает сообщения следующему и принимает данные от предыдущего.
4. One-to-all. Один случайно выбранный процесс рассылает сообщения всем остальным.
5. All-to-all. Каждый процесс отправляет сообщения остальным процессам.
В проводимом исследовании будут отдельно рассматриваться случаи использования каждого типичного коммуникационного паттерна.
Заметим, что в рамках настоящей модели рассматриваются только коммуникации вида «точка - точка». Моделировать коллективные операции достаточно сложно, т. к. способ их выполнения в виде совокупности точечных операций зависит от нескольких факторов: используемых алгоритмов, характеристик вычислительной системы и передаваемых сообщений. В частности, коллективные операции MPI по-разному реализованы в библиотеках разных производителей, а также в разных версиях библиотеки одного производителя. В будущем планируется расширение данной модели за счет учета коллективных операций.
Пусть функция Yj : П j ^ P позволяет определить для каждого процесса задачи J j вычислительный узел, на ядро которого он был назначен планировщиком. Для простоты положим, что каждый процесс тратит одинаковое время на вы-
полнение вычислительной части каждой итерации БРМБ-модели задачи. Тогда время выполнения вычислительной фазы СотрШа;юп(у) процессом и можно вычислить по формуле:
Т;
вычисл.у
.ij(u) = -
Я^(т(и)) . (7)
Пусть ткомм.у(и) - время выполнения коммуникационной фазы Соттишсаиоп(у) процессом и задачи Jj, тогда реальное время выполнения данной задачи Т может быть вычислено по формуле:
Tj = max ^ (TKOMMij (u) + Твычисл.у (u)) =
Ч] т ■
= max {^, TKOMMi](u) + , , Ч -, }
иеП ■ i=1 s(Y(u))
(8)
Величина Ткомм.ц(и) зависит от сетевой конкуренции и от физического расположения процессов на вычислительных узлах, ее значение может быть вычислено в процессе симуляции работы вычислительного кластера и его управляющей системы. Заметим, что в рамках данной модели мы в силу незначительности пренебрегаем временем, которое тратится на разбиение сообщения на пакеты и его сборку из них.
Симуляция работы вычислительного кластера и его управляющей системы предполагает формирование потока задач. Все описанные выше количественные параметры генерируются на основе определенных законов распределений случайных величин, подобранных в результате анализа реальных трасс, собираемых на кластерных вычислительных системах (см. таблицу 1). Более подробную информацию можно найти в статье [4].
Система критериев и метрик сравнения
алгоритмов планирования
С целью учета всех аспектов эффективности работы алгоритмов планирования задач для
Таблица 1. Законы распределений параметров модели
Параметр Используемый закон распределения
Я ад с? цвухэтапное равномерное распределение с выщелением классов последовательных и 2к -задач
iog j гипергамма-распределение, параметр р которого линейно зависит от ^
~j равномерное распределение на отрезке [~;2~]
aj i aj экспоненциальное распределение
a равномерное распределение
Pij(u,v) экспоненциальное распределение для всех дуг, существующих в СРщ
кластерных вычислительных систем была построена система критериев и метрик их сравнения. Она включает следующие критерии:
1. Производительность расписаний. Содержит метрики: средняя загруженность вычислительных ядер узлов кластера U^p, потеря производительности кластера cl , максимальное время завершения задачи Cmax , среднее время ожидания задач в очереди tож и среднее ограниченное замедление задач sorp. Метрики иадер, CL и Cmax характеризуют непосредственно производительность расписания, поэтому они более приоритетны для исследования, чем tож и ^ огР , которые имеют косвенный характер.
2. Используемость оперативной и дисковой памяти. Включает метрики т и d , определяющие соответственно средние загруженности оперативной и дисковой памяти вычислительных узлов. Позволяет выявить процент неиспользованных ресурсов.
3. Сбалансированность загрузки узлов. Определяет метрики Du, Dm и Dd , обозначающие соответственно дисперсии загруженности ядер, оперативной и дисковой памяти вычислительных узлов. Демонстрирует честность алгоритма планирования по отношению к узлам.
4. Гарантированность обслуживания задач. Включает метрики максимального времени ожидания задач в очереди to* max и максимального ограниченного замедления задач Sorp max. Данный критерий имеет особую важность в случае, если кластер используется в рамках системы реального времени.
5. Честность по отношению к задачам. Содержит метрику Dto* - дисперсию времени ожидания задач в очереди. Позволяет оценить степень равноправности задач с точки зрения алгоритма планирования.
6. Коммуникационный критерий. Включает следующие метрики: среднее суммарное расстояние между вычислительными ядрами, назначенными процессам параллельных задач, средняя дисперсность задач JD и среднее время блокировки сообщений Mb . Данный критерий позволяет оценить сетевую конкуренцию и степень фрагментации параллельных задач.
При исследовании различных алгоритмов планирования нас прежде всего интересует производительность составляемых ими расписаний. Поэтому при анализе алгоритмов в первую очередь будет рассматриваться первый
критерий системы, остальные - имеют вторичный характер.
Анализ алгоритмов планирования по определенному критерию представляет собой сравнение для различных алгоритмов графиков зависимостей метрик этого критерия от величины системной загрузки L и выбор лучшего варианта для того или иного случая. Системная загрузка определяется как отношение суммарного объема вычислительной работы всех задач к объему работы, который кластер может потенциально выполнить (при полной загруженности) за время до появления в управляющей системе последней задачи.
Исследуемые алгоритмы планирования
К числу алгоритмов планирования, которые будут экспериментально исследованы с помощью симулятора вычислительного кластера и его управляющей системы, относятся сочетания алгоритмов выбора задачи из очереди Most Processors First Served Scan и Backfill со следующими методами назначения, учитывающими топологию вычислительной системы [2,3,5-7]:
- Paging, Multiple Buddy System, Adaptive None-Contiguous Allocation, Greedy Available Busy List, Minimizing Contention, Minimizing Contention Incremental, Manhattan Median, NEP (для топологий торов);
- Contiguous Allocation, Quasi-Contiguous Allocation (k-арные n -деревья);
- алгоритмы сортировки узлов (толстые деревья, звезды);
- модифицированный вариант алгоритма Minimizing Contention (для произвольных топологий).
А также со следующими методами назначения, не принимающими ее во внимание [4]: First Fit, Best Fit, Fastest Node Fist, Random First.
Заключение
В данной работе приведены модели вычислительного кластера, его управляющей системы и вычислительной загрузки, сформирована система критериев и метрик сравнения алгоритмов планирования. На их основе будет разработан симулятор вычислительного кластера и управляющей системы, учитывающий его топологию и многопроцессорность узлов. Также определен набор алгоритмов планирования, которые будут исследованы с помощью симулятора.
12.05.2010
Список использованной литературы:
1. Топорков В.В. Модели распределенных вычислений. М.: ФИЗМАТЛИТ, 2004. - 320 c.
2. Moore S.Q., Lionel M.N. The Effects of Network Contention on Processor Allocation Strategies // Proceedings of the 10th International Parallel Processing Symposium. - Washington, DC: EEE Computer Society, 1996. - P. 268-273.
3. Bani-Mohammad S., Ould-Khaoua M., Abaneh, I. An efficient processor allocation strategy that maintains a high degree of contiguity among processors in 2D mesh connected multicomputers // Proceedings of ACS/IEEE International Conference on Computer Systems and Applications, AICCSA. - 2007. - P. 934-941.
4. Полежаев П.Н. Исследование алгоритмов планирования параллельных задач для кластерных вычислительных систем с помощью симулятора // Параллельные вычислительные технологии (ПАВТ’2010): Труды международной конференции. - Челябинск: ЮУрГУ, 2010 г. - С. 287-298.
5. Bender M.A., Bunde D.P., Demaine E.D. Communication-Aware Processor Allocation for Supercomputers // Lecture Notes in Computer Science. V. 3608/2005. - Berlin: Springer, 2005. - P. 169-181.
6. Cheng C., Mohapatra P. Improving Performance of Mesh-connected Multicomputers by Reducing Fragmentation //Journal of Parallel and Distributed Computing. V. 52(1), 1998. - P. 40-68.
7. Pascual1 J.A., Navaridas J., Miguel-Alonso J. Effects of Topology-Aware Allocation Policies on Scheduling Performance // Lecture Notes in Computer Science. V. 5798/2009. - Berlin: Springer, 2009. - P. 138-156.
Исследования выполнены при поддержке Федерального агентства по образованию в рамках реализации ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 гг. (государственный контракт №П2039).
Сведения об авторах:
Гергель Виктор Павлович, декан факультета вычислительной математики и кибернетики Нижегородского государственного университета им. Лобачевского, доктор технических наук, профессор 603950, г. Нижний Новгород, пр-т Гагарина, 23, тел. (831) 4654859, e-mail: [email protected]
Полежаев Петр Николаевич, аспирант кафедры математического обеспечения информационных систем математического факультета Оренбургского государственного университета,
460018, г. Оренбург, пр-т Победы, 13, тел. (3532) 372534, e-mail: [email protected]
Gergel V.P., Polezhaev P.N.
The theoretical bases of experimental study of algorithms of planning tasks for the computational cluster with help of simulator
This work represented the theoretical bases of an experimental study of the algorithms of planning tasks for the computational cluster, carried out with help of the simulator of cluster and its manager of system. The authors developed the models of computational cluster, its manager of system and computational load, and also the system of criteria and certificates of the comparison of the algorithms of planning.
The key words: the simulator of computational cluster and its manager of system, planning parallel tasks, highly productive calculations, imitation simulation.
Bibliography:
1. Toporkov V.V. Models of distributed computation. M.: FIZMATLIT, 2004. - 320 c.
2. Moore S.Q., Lionel M.N. The Effects of Network Contention on Processor Al-location Strategies // Proceedings of the 10th International Parallel Processing Symposium. - Washington, DC: EEE Computer Society, 1996. - P. 268-273.
3. Bani-Mohammad S., Ould-Khaoua M., Abaneh, I. An efficient processor allo-cation strategy that maintains a high degree of contiguity among processors in 2D mesh connected multicomputers / / Proceedings of ACS / IEEE International Conference on Computer Systems and Applications, AICCSA. - 2007. - P. 934-941.
4. Polezhaev P.N. Study of parallel task scheduling algorithm for cluster computing systems using a simulator / Parallel Computing Technologies (PAVT’2010): Proceedings of the International Conference. - Chelyabinsk: South Ural State University, 2010 - S. 287-298.
5. Bender M.A., Bunde D.P, Demaine E.D. Communication-Aware Processor Allocation for Supercomputers // Lecture Notes in Computer Science. V. 3608/2005. - Berlin: Springer, 2005. - P. 169-181.
6. Cheng C., Mohapatra P. Improving Performance of Mesh-connected Multi-computers by Reducing Fragmentation // Journal of Parallel and Distributed Computing. V. 1952 (1), 1998. - P. 40-68.
7. Pascual1 J.A., Navaridas J., Miguel-Alonso J. Effects of Topology-Aware Al-location Policies on Scheduling Performance // Lecture Notes in Computer Science. V. 5798/2009. - Berlin: Springer, 2009. - P. 138-156.