Коммуникационно-зависимое балансировки нагрузки для параллельных приложений на кластерах
Xiao Qin, Hong Jiangy, Adam Manzanaresz, Xiaojun Ruan, Shu Yinyy
Перевод с английского: Волков В.П.
Аннотация - Кластерные вычисления появились как основная и экономически эффективная платформа для запуска параллельных приложений, в том числе приложений с интенсивными коммуникациями, которые передают большое количество данных между узлами кластера через интеркоммуникационную сеть. Традиционные балансировщики нагрузки доказали свою эффективность в увеличении использования процессора, памяти и дискового ввода/вывода кластера. Однако, большинство из существующих программ балансировки нагрузки игнорируют ресурсы сети, оставив возможность для улучшения эффективной пропускной способности сети кластера параллельным приложениям. По этой причине, мы предлагаем метод коммуникационно-зависимой балансировки нагрузки, которая способна повысить эффективность исполнения интенсивно обменивающихся данными приложений путём более эффективного использования сети кластера. Для продвижения предложенной программы балансировки нагрузки, мы предлагаем поведенческую модель для параллельных приложений с большими требованиями сети, процессора, памяти и дискового ввода / вывода. Наша программа балансировки нагрузки может осуществить использование этой модели в полной мере для быстрого и точного определения нагрузки, вызванной варьирующим рядом параллельных приложений. Результаты моделирования, сгенерированные различными смоделированными и реальными параллельными приложениями на кластере показали, что наша программа значительно повышает производительность, с точки зрения снижения скорости выполнения и времени обмена, по сравнению с существующими программами до 206 процентов (в среднем 74 процента) и 235 процентов (в среднем 82 процентов), соответственно.
Введение
Значительные преимущества, в сочетании с быстрым развитием промежуточного программного обеспечения и коммуникационных технологий, сделали кластеры главной и быстро развивающейся платформой для высокопроизводительных научных вычислений. Планирование [6] и балансировка нагрузки [18], [19] - два основных метода, которые используются для повышения производительности кластеров для научных приложений, с целью максимально эффективного использования машин со свободными или недогруженными ресурсами. Основная масса программ, разработанных для распределенной балансировки нагрузки кластеров, в первую очередь принимают во внимание различные ресурсы такие как процессоры [13], память [1], дисковый ввод/вывод [18], или сочетание процессора и памяти [31]. Эти подходы доказали свою эффективность в увеличении использования ресурсов в кластерах, считая, что сеть не является потенциально узким местом в кластерах. Однако, недавние исследования показали, что необходимость перемещения данных из одного компонента к другому в кластерах, вероятно является основным узким местом для производительности [10], [23]. Таким образом, если возможность повышения эффективной пропускной способности сети используется в полной мере, то производительность параллельных программ на кластерах может быть повышена.
Большое количество научных приложений были реализованы для выполнения на кластерах или находятся в процессе разработки. Многие научные приложения по своей природе и интенсивно вычисляют и коммуницируют [8]. Примеры таких приложений включают перспективный 3D-рендеринг, молекулярное моделирование, квантово-химические реакции динамического моделирования, и 2D жидкостный поток с использованием вихревого метода - лишь несколько примеров [8]. Упомянутые ранее узкие места становятся более критичными, если ресурсы кластера одновременно используются многими научными приложениями и нагрузка коммуникационной сети не равномерно распределена между узлами кластера. Кроме того, разрыв в производительности между эффективной скоростью процессора и сетевыми ресурсами продолжает расти быстрыми темпами, что вызывает необходимость увеличения эффективности использования сетей на кластерах использованием различных методов.
Основной мотивацией нашего исследования является улучшение эффективности использования сетей в кластерных вычислительных средах с высокими требованиями к коммуникационной среде. Способы повышения эффективности использования сетей можно разделить на аппаратные и программные. В данной работе мы ориентируемся на подход, созданный на программном уровне. В частности, мы разрабатываем программу коммуникационно-зависимой балансировки загрузки для достижения высокой пропускной способности коммуникационной сети, не требуя никакого дополнительного оборудования. Наш подход может существенно улучшить производительность параллельных приложений, работающих на кластере, где несколько параллельных программ разделяют различные ресурсы. Коммуникационно-зависимая балансировка нагрузки позволяет кластеру эффективно использовать незанятые или недогруженные сетевые ресурсы, при этом эффективность использования других видов ресурсов остаётся достаточно высокой. Мы предлагаем модель поведения параллельных приложений для сбора типичных характеристик таких как необходимое процессорное время, память, пропускная способность сети и ресурсы дискового ввода/вывода.
Типичных подходов балансировки нагрузки, которые акцентируют внимание только на максимальном использовании одного типа ресурсов, не достаточно для широкого спектра приложений. Высокопроизводительные вычисления требуют от кластеров способности выполнять различные типы приложений, представленные пользователями [20], [26], [31] одновременно. По этой причине, коммуникационно-зависимая балансировка нагрузки разработана таким образом, чтобы обеспечивать высокую производительность при большой нагрузке в различных ситуациях.
Остальная часть статьи организована следующим образом: Раздел 2 представляет собой резюме соответствующей работы. Раздел 3 представляет модель поведения приложения и модель системы, которая собирает информацию о потребностях в ресурсах для приложений и эмулирует вычислительную среду кластера. В разделе 4 представлен наш метод коммуникационно-зависимой балансировки нагрузки. Раздел 5 представляет вам компьютерную модель и методы, используемые для сбора данных для оценки эффективности. В разделе 6 приводится сводная оценка эффективности предложенного метода путем моделирования кластера, работающего как множество имитируемых синхронных и реальных интенсивно коммуницирующих параллельных приложений. Наконец, в разделе 7 подытожен основной вклад этой статьи и планы будущих исследований.
Ссылки