Сетевое железо - статьи



Эксперименты - часть 3


Полностью синтетические потоки иногда бывают удобны для отладки, однако для анализа поведения моделируемых систем более подходящим является использование синтетических потоков, основывающихся на записях оригинальных потоков .

Для создания таких синтетических потоков мы использовали следующий поход. Для того чтобы определить поток задач

необходимо определить следующие параметры:

  • Rj — промежуток времени между поступлением j и j+1 задачи (j = 1,2,…,M-1);

  • Hj — запрашиваемое время исполнения (j = 1,2,…,M);

  • Wj — запрашиваемое число процессоров (j = 1,2,…,M).

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

    Полученные таким образом распределения были использованы для генерирования нескольких синтетических потоков.

    Мы применили разработанную систему моделирования и сравнили эффективность распределения задач в сети Sharcnet в оригинальном случае (без брокера) с распределением, получаемым с помощью брокера. Без брокера задачи поступали на кластеры в оригинальной последовательности, указанной в файле загрузки. В обоих случаях на каждом кластере использовалась реализация алгоритма Backfill.

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

    На брокере использовались различные алгоритмы распределения. В каждом случае вначале брокер выбирает множество кластеров, которые могут выполнить данную задачу – W≥Wj, где W – число узлов кластера, а Wj – число узлов, запрашиваемых задачей, а затем выбирает один кластер исходя из заданного критерия: