МЕТОДИКА РАСЧЕТА ТРЕБУЕМОЙ ПРОИЗВОДИТЕЛЬНОСТИ
ВЫЧИСЛИТЕЛЬНЫХ ЭЛЕМЕНТОВ В ВЫСОКОНАГРУЖЕННЫХ МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
Пророк В. Я., д.т.н., профессор, Военно-космическая академия, [email protected] Зыков А.М., к.т.н., доцент, Военно-космическая академия, [email protected] Карытко А. А., Военно-космическая академия, [email protected]
Ключевые слова:
гамма-распределение, многоуровневый агрегирующий алгоритм, многопроцессорная вычислительная система, оптимальное расписание, операционная система, мультипроцессирование.
АННОТАЦИЯ
В статье рассмотрена задача параметрического синтеза многопроцессорной вычислительной системы, создаваемой на базе многоядерных процессоров универсального назначения. Цель разработки данной методики заключается в достижении требуемого уровня эффективности функционирования многопроцессорных вычислительных систем в условиях постоянно увеличивающейся рабочей нагрузки и модернизации используемого программно-алгоритмического обеспечения. Расчет требуемого значения производительности одного вычислительного ядра осуществляется на основе предположения, что среди множества исполняемых процессов существует подмножество процессов, реализующих наиболее критичные задачи, которые определяют эффективность функционирования всей вычислительной системы. Для решения указанной задачи осуществляется поиск вида и параметров функции распределения приоритетов процессов, функционирующих в среде операционной системы, развернутой на базе ядра Linux, а также решается задача составления оптимального расписания выполнения работ (процессов) на вычислительных элементах с использованием многоуровневого агрегирующего алгоритма. Представленные результаты исследований позволяют обоснованно сформулировать требования к производительности вычислительных элементов многопроцессорных вычислительных систем, функционирующих на заданном множестве алгоритмов и программ. Описанная методика учитывает временные потери исполнения процессов, возникающие вследствие отклонения действующего в системе расписания выполнения работ от оптимального, вызванного естественными изменениями распределения динамических приоритетов между активными процессами, исполняемыми в системе. В статье приводятся результаты применения методики для анализа процесса функционирования хост-сервера компании Интернет-провайдера, функционирующего под управлением операционной системы на базе ядра Linux. На основе проведенного анализа продемонстрировано, что распределение приоритетов процессов в ОС на базе ядра Linux с высокой степенью согласия описывается гамма-распределением. В свою очередь параметры гамма-распределения (параметр формы и масштаба) распределены по нормальному закону. В результате естественных колебаний параметров гамма-распределения динамических приоритетов исполняемых процессов временные потери, вызванные несбалансированностью рабочей нагрузки на систему, могут достигать 15% для вычислительной системы, развернутой на базе 12-ти ядерных процессоров универсального назначения.
US
RESEARCH
Введение
В соответствии с работой [1] эффективность процесса функционирования современных многопроцессорных вычислительных систем (МПВС) во многом определяется степенью соответствия программной реализации используемых математических алгоритмов архитектуре построения аппаратной части вычислительной системы. На сегодняшний день 85% финансовых затрат при создании, сопровождении и развитии МПВС составляют затраты на разработку и модернизацию программного обеспечения [2]. При этом темпы развития и модернизации средств вычислительной техники позволяют полностью обновлять аппаратную часть вычислительных систем один раз в полтора два года. Таким образом, возникает актуальная задача выбора архитектуры построения вычислительной системы на начальном этапе ее создания.
Несмотря на многочисленное число разрабатываемых алгоритмов и методик, предназначенных для расчета времени исполнения программ в вычислительных системах с различной архитектурой построения, результаты их использования быстро теряют адекватность с увеличением объема программного кода, используемого при расчетах. В данной работе используется подход, основанный на измерении времени исполнения программ, относящихся к подмножеству критических, на вычислительных ядрах десктопных версий процессоров и прогнозе времени исполнения программ на серверных линейках процессоров, использующих в своей основе аналогичные десктопной версии вычислительные ядра процессоров. Под критическим программно-алгоритмическим обеспечением понимаются программы, реализующие основную цель функционирования всей МПВС, требующие максимальной оперативности исполнения и обладающие наибольшей вычислительной активностью. Измерение времени выполнения программ осуществляется в как можно более идеализированных условиях в соответствии с методикой измерения времени выполнения программ, изложенной в работе [3].
Постановка задачи исследования
В современных высоконагруженных МПВС в режиме разделения времени исполняются до нескольких тысяч вычислительных процессов. Исполняемые процессы принадлежат к двум основным категориям - системным и пользовательским. Процесс владеет вычислительным устройством (ВУ) в течение базового кванта времени, определяемого значением его динамического приоритета. В соответствии с работой [4] длительность кванта времени, выделяемого пользовательскому процессу в операционной системе (ОС) на базе ядра Linux, вычисляется согласно следующей формуле:
где t - квант времени, выделяемый процессу в миллисекундах;
d - динамический приоритет процесса.
Возможные значения динамического приоритета пользовательского процесса, в ОС на базе ядра Linux, принадлежат интервалу от 0 (высший приоритет) до 39 (низший приоритет). Распределение аппаратных ресурсов системы между множеством исполняемых процессов осуществляется ядром ОС. В данной работе рассматривается ОС на базе ядра Linux. Одной из наиболее важных задач, решаемых ядром ОС, является балансировка очередей процессов на выполнение в многопроцессорных системах. Тем не менее в процессе функционирования МПВС возможно возникновение ситуаций, когда множество процессов интенсивно используют одно и то же ВУ, в то время как остальные ВУ простаивают. Для ликвидации описанного эффекта ядро ОС периодически проверяет, сбалансирована ли рабочая нагрузка, и, если необходимо, переносит некоторые процессы в очереди к менее нагруженным ВУ. Согласно работе [4] «Начиная с версии ядра 2.6.7, в операционной системе Linux применяется сложный алгоритм балансирования очередей на выполнение, в основе которого лежит понятие «области планирования».
Область планирования имеет иерархическую организацию: область верхнего уровня, распространяемая на все процессоры в вычислительной системе, включает в себя дочерние области, каждая из которых охватывает определенное подмножество процессоров. Иерархическая структура областей планирования позволяет осуществлять балансировку очередей с минимальными затратами производительности всей вычислительной системы за счет минимизации потерь производительности на пересылку аппаратных контекстов и дескрипторов исполняемых процессов между группами различных областей планирования.
Таким образом, основной причиной отличия итогового времени выполнения процесса в условиях монопольного доступа к аппаратным ресурсам системы от итогового времени выполнения этого же процесса в режиме разделения времени с другими процессами, циркулирующими в МПВС, является возникающий при этом эффект гонки за владение аппаратными и программными ресурсами системы.
Оценку требуемого значения производительности ВУ МПВС для заданного множества решаемых задач в условиях организации мультипроцессирования произведем, решив задачи составления оптимального расписания выполнения процессов на вычислительных элементах, а также нахождения вида и параметров функции распределения приоритетов исполняемых процессов.
Планировщик ОС стремится минимизировать функцию: , л .
max f t ( ä ) ^ min,
j=l,...,m j
где f j ( ä ) = X Ъ, здесь rij время выполнения базового
i£T ( j )
кванта ¿-ого процесса на j-ом вычислительном элементе, T (j) множество задач, распределенных для выполнения на j-ый вычислительный элемент.
Для определения значений кванта времени - п , выделяемого процессу ОС для выполнения, найдем вид и параметры функции плотности распределения приоритетов процессов на основе статистической информации. Поскольку МПВС может являться распределенной системой, то есть включать в свой состав несколько взаимодействующих компонент, функционирующих под управлением различных копий ОС, представим функцию плотности распределения приоритетов в виде смеси:
t (2)
где Р(х < л) — плотность распределения вероятности значений приоритетов процессов, циркулирующих в рамках рассматриваемой МПВС;
Pj —весовой коэффициент, характеризующий вклад -ой компоненты смеси в выражение (2); k —количество компонент распределенной МПВС; f (х | ©) —плотность распределения приоритетов процессов j-ого компонента МПВС, здесь 0 — неизвестный многомерный параметр, характеризующий параметры функции плотности распределения.
Оценка вида и параметров плотности распределения динамических приоритетов процессов, циркулирующих в операционной системе на базе ядра Linux
В зависимости от целей решаемых задач и условий их выполнения распределение приоритетов исполняемых процессов в системе чаще всего характеризуется либо нормальным, либо показательным законом распределения. Статистические данные для нахождения указанных распределений в ОС типа Linux получаются с помощью использования команд vmstat, mpstat, ps, подробный порядок применения которых приводится в работе [5], а также справочной документации ОС.
Известно, что экспоненциальное распределение является частным случаем гамма-распределения:
Кроме того известно, что класс гамма-распределений замкнут над операцией свертки, поэтому результирующее распределение случайной величины Х, характеризующей вероятность возможных значений приоритетов исполняемых процессов в распределенных МПВС, будет также гамма-распределением, определяемым плотностью:
где а>0 -параметр формы;
X - параметр масштаба; T(z) - гамма-функция Эйлера:
Согласно центральной предельной теореме при больших значениях параметра гамма-распределение хорошо приближается нормальным распределением. Таким образом, является целесообразным проверка истинности двух гипотез о распределении приоритетов процессов гипотез о нормальном и гамма-распределении приоритетов, исполняемых процессов.
Для проверки указанных гипотез осуществлен сбор статистической информации по одному хост серверу и одному DNS серверу компании Интернет-провайдера. В соответствии со статистическими данными принята гипотеза о гамма-распределении приоритетов процессов.
На основе тренда изменения значений параметров гамма-распределения, характеризующего результаты множества последовательных наблюдений динамических приоритетов исполняемых процессов, рассчитаны средние значения параметров масштаба - Я и формы -а, а также величина отклонения параметров i -го наблюдения АЯ; = Яi - Я, Aai = ai - а от средних значений. Для значений рассчитанных отклонений также осуществлен подбор вида и параметров функций распределения случайных величин F(Aa<sa) , F(AЯ<£Я) характеризующих возможные значения расстояния Леви между распределениями динамических приоритетов в МПВС в различные моменты времени. Вес компонент смеси (2) определяется на основе числа процессов, обрабатываемых каждой копией ОС как отношение числа процессов i-ой копии ОС к общему числу процессов, циркулирующих в МПВС.
Описанные результаты анализа проведенных наблюдений представлены на рисунке 1 и рисунке 2.
Полученные функции плотностей распределения приоритетов исполняемых процессов позволяют моделировать фоновую рабочую нагрузку вычислительной системы. Суть данной процедуры заключается в получении с помощью датчиков случайных чисел массива значений вероятностей, распределенных по равномерному закону, и в последующем получении соответствующих данным вероятностям приоритетов процессов за счет использования метода образования случайных чисел с непрерывным законом распределения, изложенным в работе [6], а также метода обратной функции [6,7].
IWi^ I I
Рисунок 1 - Динамика распределения приоритетов в ОС Linux на примере DNS и хост серверов
f * гт-jVmП ГН1ГН1
Ги г r.i г,т|№Ш| л
IÜ -!'Г L«i m Г-Г
ВкГнчкй ULTIMI H
■QZ D QZ U J
Рисунок 2 - Характеристики распределения отклонения значений параметров гамма-распределений DNS и хост серверов
Расчет требуемой производительности вычислительного устройства многопроцессорной вычислительной системы
Для решения задачи составления оптимального расписания используется многоуровневый агрегирующий алгоритм, суть работы которого изложена в работе [8]. Указанный алгоритм использует в своей работе приближенные методы оптимизации - метод ветвей и границ, основанный на использовании алгоритма FFD (First Fit Decreasing - первый подходящий в порядке убывания), а также алгоритма поиска в глубину (АПГ) [9].
В соответствии с используемым алгоритмом множество всех заданий S, предварительно упорядоченное по невозрастанию длительности базового кванта времени исполнения процесса, выделяемого ОС, разбивается на sx подмножеств так, что S= S1. и...^^Для каждого образованного подмножества рассчитывается нижняя оценка длины расписания работ с помощью выражения:
где тах(г,) -длительность наиболее ресурсоемкого процесса;
5— - время завершения одного цикла обработки очереди процессов на процессор в случае, когда они равномерно распределены между процессорами.
Величина В - верхней оценки длины расписания работ рассчитывается с помощью алгоритма FFD, смысл которого заключается в том, что процессы размещаются в ВУ по очереди в порядке убывания приоритетов, причем очередной ¿-ый процесс помещается в ВУ, в котором суммарное время исполнения уже размешенных процессов минимально. Полученный интервал [Д.5] является интервалом локализации минимальной длительности расписания работ. Применяя к указанному интервалу метод дихотомии, рассчитывается предельно допустимая длительность выполнения заданий -
для заданного подмножества работ, где допустимая по-
грешность результатов работы алгоритма.
С помощью АПГ осуществляется поиск расписания работ R = (тъ т2 ,..., rm), в котором выполняется условие: VTj < Bopt , где ¿ei,M Вслучае если такового расписания не существует, то величине B присваивается значение Bopt, и ко вновь полученному интервалу локализации минимума применяется метод дихотомии, а затем АПГ.
Результатом работы описанного алгоритма является получение расписания, близкого к оптимальному m-процессорному расписанию, для процессов, принадлежащих подмножеству s1. Задания, принадлежащие одному подмножеству, назначенные на один и тот же процессор, объединяются в одно задание, длительность которого равна сумме длительностей соответствующих заданий. В результате формируется множество s1 заданий, включающее и агрегированные задания, которое в свою очередь может быть аналогично разбито на s2 подмножеств. Последовательное выполнение нескольких процедур агрегирования позволяет получить решение задачи составления оптимального расписания выполнения n процессов на m процессоров. В данной работе размеры множеств st , si+1 связывались отношением
где символ #Sj характеризует мощность множества st. Скорость сходимости описанного алгоритма уменьшается с увеличением числа ВУ в МПВС. Таким образом, его использование позволяет получать результаты за разумное время в случаях когда количество процессоров, на которые происходит распределение работ, не превышает 6 единиц. Современные многопроцессорные вычислительные системы включают на порядок большее число ВУ. В целях обеспечения возможности использования данного алгоритма к рассматриваемой предметной области в рассматриваемой реализации алгоритма осуществляется процедура объединения процессоров в группы таким образом, чтобы на каждой итерации работы алгоритма их число не превышало 6 единиц, а разница между количеством процессоров в группе была минимальной. Таким образом, составляется расписание, близкое к оптимальному для групп процессоров. Работы, назначенные для выполнения на группы процессоров, распределяются между ВУ, входящими в состав группы с помощью классической версии многоуровневого агрегирующего алгоритма. Работа алгоритма заканчивается распределением задач между процессорами образованных групп, размер которых не превышает 6 единиц. Использование принципа группировки ВУ хорошо согласуется с описанными выше областями планирования ОС на базе ядра Linux.
Расчет отличия времени выполнения процесса в монопольном режиме от времени его исполнения в режиме разделения времени -At произведемt для случая, когда в качестве используемого планировщика ОС выступает планировщик NOOP. На основе сформированного расписания R = (тъ т2 ,..., rm) рассчитывается минимальное, среднее и максимальное значения величины At для процесса h с приоритетом выполнение которого в моно-
H&ES
RESEARCH
польном режиме владения аппаратными ресурсами длится единиц времени. Минимальное значение величины ДЬ вычисляется с помощью следующего выражения: где т(яй ) - базовый квантЬ времени, выделяемый про-
Д/ „ =-
=
)
т(п )
■ max (т)- th ;
— Ц т-1„.
t,
max
(т)
цессу с динамическим приоритетом ;
min ( Т() - скалярная координата точки üj , имеющая минимальное значение.
Максимальное и среднее значения величины вычисляются с помощью выражений:
Таким образом, рассчитав значение оптимальной длительности выполнения критического процесса Ьр с помощью средств теории систем массового обслуживания, применения процедур имитационного моделирования, возможно рассчитать требуемое время выполнения процесса в монопольном режиме владения ресурсами вычислительного ядра с заданной микроархитектурой, используемого для создания МПВС, которое обеспечит выполнение условия оптимальности функционирования МПВС, построенной с использованием многоядерных процессоров с аналогичной микроархитектурой ядра при организации мультипроцессирования в режиме разделения времени. Требуемое значение времени рассчитывается с использованием выражения:
^ 'л*;)
Значение времени исполнения процесса, получаемое с использованием выражения (3), характеризует верхнюю оценку его возможных значений, поскольку в реальности большинство процессов успевают выполнить весь необходимый объем вычислений за время меньшее, чем длительность базового кванта, выделяемого ОС.
Известные функции распределения F(A а<£а) , F(AЯ<£Я) позволяют учесть дополнительные потери оперативности выполнения процессов - ДЦ, возникающие вследствие отличия действующего в системе расписания выполнения работ от оптимального. Для этого выполняется описанная выше процедура составления расписаний Й1, Я2, Я3 для распределений приоритетов процесов, описываемых функциями плотностей g1 (а, Я ), g2° ( а +са, Я + ъ\ ) , g3 (а +3-аа, Я + 3-а^ ). Введем обозначение (а, Я)), где ¿Е1,ш , характеризующее оперативность выполнения процессов, назначенных для выполнения на _;-ый процессор при использовании расписания Я^ и распределении приоритетов gf (а, Я ) .
Расчет диапазона возможных значений величины производится с использованием следующих выражений:
где AUC - потери оперативности исполнения процессов вследствие использования расписания Я1г при плотности распределения приоритетов процессов g2 ( а+а\, Я+ъ\ );
O2- оперативность (время) исполнения группы процессов, назначенных на один процессор в условиях равномерной загрузки системы при плотности распределения приоритетов процессов g2 ( а+ъ\, Я+ъ\ ) ; AU3o- потери оперативности исполнения процессов вследствие использования расписания при плотности распределения приоритетов процессов
g3 ( а +3-са, Я+3-ая );
O3 - оперативность (время) исполнения группы процессов, назначенных на один процессор в условиях равномерной загрузки системы, при плотности распределения приоритетов процессов g3 (а +3-аа, Я+3-а^ ).
Поскольку параметры гамма-распределения подчинены нормальному закону, оценка AUC характеризует естественные колебания времени выполнения группы процессов на процессоре - At в результате изменения их динамических приоритетов. Оценка AU3a представляет собой границу области значений At, которая с 95% вероятностью включает все возможные отклонения по времени решения задач, вызванные изменениями динамических приоритетов процессов.
Результаты применения описываемой методики
Расчеты проводились для 12-ти ядерной МПВС, построенной на базе двух шестиядерных процессоров, фоновая вычислительная нагрузка системы состояла из 80 активных процессов, распределение приоритетов которых соответствовало гамма-распределению хост сервера, представленному выше. Прототипом рассматриваемой МПВС послужил хост сервер, развернутый на базе процессора Intel Xeon 5670 с микроархитектурой ядра Nehalem. В ходе вычислительного эксперимента сформирован вывод о том, что изменение приоритета одного процесса в системе приводит к составлению совершенно отличного от действующего расписания нового оптимального расписания, при этом потери производительности системы , не превышают 20 мс и ребалансировка вычислительной нагрузки ОС не производится. Потери производительности системы, возникающие вследствие естественных колебаний динамических приоритетов исполняемых процессов в среднем составляют 270 и 560 мс соответственно для групп планирования ОС на уровне вычислительных ядер одного процессора и 384 и 840 мс для групп планирования ОС на уровне процессоров на кристалле. Среднее время выполнения полного цикла обслуживания очереди процессов к вычислительному ядру процессора составило 2,78 с, максимальное время 2,98 с. Для указанных исходных данных значение величины достигает уровня 10% от значения параметра при изменении динамического приоритета у 60% исполняемых ОС
процессов. Данный показатель характеризует частоту осуществления процедуры ребалансировки вычислительной нагрузки и связанных с ее выполнением потерь производительности МПВС.
Полученные результаты позволяют прогнозировать уровень эффективности функционирования вычислительной системы, построенной на базе вычислительных ядер универсального назначения, используя для этого «десктопные» процессоры, с микроархитектурой вычислительного ядра, аналогичной используемой в базовом ВУ МПВС. Подобный прием позволяет существенно упростить анализ влияния архитектурных особенностей конкретного микропроцессора на эффективность исполнения программной реализации исполняемого алгоритма, тем самым осуществив правильный выбор архитектурной платформы, используемой для развертывания МПВС.
Литература
1. Воеводин, В.В. Вычислительная математика и структура алгоритмов. - М.: Изд-во МГУ, 2010. - 163 с.
2. Ройс, У. Управление процессом создания программного обеспечения. - М.: Изд-во «ЛОРИ», 2004. - 424 с.
3. Касперски, К. Техника оптимизации программ. Эффективное использование памяти. - СПб.: БХВ-Петербург. -2003. - 464 с.
4. Бовет, Д., Чезати, М. Ядро Linux. - СПб.: «БХВ-Петер-бург». - 2007. - 1104 с.
5. Немет, Э., Снайдер, Г., Хейн, Т. Unix и Linux руководство системного администратора. - М.: Изд-во «Вильямс», 2012. - 1312 с.
6. Орлов, А.И. Прикладная статистика. - М.: Изд-во «Экзамен», 2004.-656 с.
7. Алиев, Т.И. Основы моделирования дискретных систем. - СПб.: СПбГУ ИТМО, 2009. - 363 с.
8. Красовский, Д.В., Фуругян, М.Г. Алгоритм решения минимаксной задачи составления расписания // Известия РАН. Теория и системы управления. № 5. - 2008. - С. 69 -74.
9. Сухарев, А.Г., Тихомиров, В.В., Федоров, В.В. Курс методов оптимизации. - М.: Физматлит, 2008. - 368 с.
DESIGN PROCEDURE OF DEMANDED PRODUCTIVITY OF COMPUTING ELEMENTS IN THE HIGH-LOADED MULTIPROCESSING COMPUTING SYSTEMS
Prorok V. , Doc.Tech.Sci. , professor, Military Space Academy, [email protected] Zykov A. , Ph.D , associate professor, Military Space Academy, [email protected] Karytko A. , Military Space Academy, [email protected]
Keywords: gamma distribution, multilevel aggregating algorithm, the multiprocessing computing system, the optimum schedule, an operating system, multiprocessing.
Abstract
In article the problem of parametrical synthesis of the multiprocessing computing system created on the basis of multinuclear processors of universal appointment is considered. The purpose of development of this technique consists in achievement of demanded level of efficiency of functioning of multiprocessing computing systems in the conditions of constantly increasing working loading and modernization of used program and algorithmic providing. Calculation of demanded value of productivity of one computing kernel is carried out on the basis of the assumption that among a set of executed processes there is a subset of the processes realizing the most critical tasks which define efficiency of functioning of all computing system. For the solution of the specified task search of a look and parameters of function of distribution of priorities of the processes functioning in the environment of an operating system, developed on the basis of a kernel is carried out Linux, and also the problem of drawing up of the optimum schedule of performance is solved works (processes) on computing elements with use of multilevel aggregating algorithm. The presented results of researches allow to formulate reasonably requirements to productivity of computing elements of the multiprocessing computing systems functioning on the set of algorithms and programs. The described technique considers temporary losses of execution of the processes, arising owing to a deviation of the schedule of works existing in system from the optimum distribution of dynamic priorities caused by natural changes between the active processes executed in system. Results
of application of a technique are given in article for the analysis of process of functioning a host server of the company of the Internet provider functioning under control of an operating system on the basis of a kernel Linux. On the basis of the carried-out analysis it is shown that distribution of priorities of processes in OS on the basis of a kernel Linux with high degree of a consent it is described by gamma distribution. In turn gamma distribution parameters (form and scale parameter) are distributed under the normal law. As a result of natural fluctuations of parameters of gamma distribution of dynamic priorities of executed processes the temporary losses caused by imbalance of working load of system, can reach 15 % for the computing system developed on the basis of 12 nuclear processors of universal appointment.
References
1. Voyevodin, V. (2010), Calculus mathematics and structure of algorithms. [Vichislitelnaya matemetica i structura algoritmov], Moscow State University publishing house, 163 p.
2. Royce, U. (2004), Management of process of creation of the software. [Upravlenie processom sozdaniya programmnogo obespechenia], Publishing house of «LORY», Moscow, 424 p.
3. Kaspersky, K. (2003), Equipment of optimization of programs. Effective use of memory. [Technica optimizacii programm. Effectivnoe ispolzovanie pamiaty], BHV, Saint-Petersburg, 464 p.
4. Bovet, Chezati, M. (2007), Kernel of Linux. [Yadro linux], BHV, Saint-Petersburg, 1104 p.
5. Nemet, Snyder, Hain, T. (2012), Unix and Linux guide of the system administrator. [Unix i Linux rukovodstvo systemnogo administratora], Williams, Moscow, 1312 p.
6. Orlov, A.I. (2004), Applied statistics. [Pricladnaya statistica], Publishing house "Examination", Moscow, 656 p.
7. Aliyev, T.I. (2009), Base of modeling of discrete systems. [Osnovi modelirovaniya discretnih system], ITMO St.Petersburg State University, 363 p.
8. Krasovsky, D.V., Furugyan, M.G. (2008), «Algoritm of the solution of a minimax problem of drawing up of the schedule» [«Algoritm reshenia minimaksnoy zadachi sostavlenia raspisania»], News of the Russian Academy of Sciences. Theory and control systems, No. 5, pp. 69-74.
9. Sukharev, A.G., Tikhomirov, V.V., Fedorov, V.V. (2008), Course of optimization methods. [Kurs methodov optimizacii], Physical and mathematical literature, Moscow, 368 p.