В настоящий
момент можно констатировать, что создание и использование многопроцессорных
(параллельных) вычислительных систем является важнейшей составляющей развития
компьютерной техники.
В свою
очередь, кластерные вычислительные системы составляют заметную часть
параллельных вычислительных систем и играют важнейшую роль в связи с некоторыми
присущими им уникальными особенностями: относительно низкой стоимостью,
сравнительной простотой развертывания, возможностью постепенного наращивания
мощности при одновременном использовании «старого» оборудования, и
т.д.
В связи с
этим, все крупнейшие научные центры и ведущие промышленные предприятия либо
обладают, либо имеют планы установки параллельных вычислительных систем
кластерного типа.
Таким
образом, вопросы, связанные с проектированием, построением и дальнейшим
эффективным использованием кластерных систем являются крайне
актуальными.
Данные
раздел посвящен одной из важнейших проблем, которая возникает на всех этапах
жизненного цикла кластерной системы – от проектирования, до поддержки
продуктивной эксплуатации – проблеме тестирования кластерной
системы.
Необходимость тестирования
Прежде чем
перейти к рассмотрению конкретных методик тестирования и программных продуктов,
эти методики реализующих, следует определиться, почему вообще возникает
необходимость в тестировании кластерных систем. Представляется, что резонов для
проведения тестов может быть два:
-
определение работоспособности системы;
-
выявление существенных характеристик (особенностей)
кластерной системы.
Первый пункт
в списке абсолютно понятен и вряд ли требует каких-то пояснений – кластер, как и
всякая другая система, эксплуатируемая в промышленном режиме должен иметь
средства самодиагностики. Такие средства как правило имеются и обычно опираются
на средства диагностики, встроенные в операционную систему, сетевое оборудование
и/или коммуникационное программное обеспечение. Следует отметить, что построение
подобных систем является важной задачей и очень часто она решается в рамках
специализированных программных комплексов, называемых системами управления
кластерами (Cluster Management
System, CMS).
В рамках
этого раздела будут рассматриваться тесты второго рода – а именно выявляющие
некоторые существенные характеристики тестируемых систем. В качестве
существенных характеристик мы будем рассматривать такие характеристики, которые
напрямую влияют на производительность рассматриваемых систем. Измерение этих
характеристик для конкретного кластера позволяет решить сразу несколько важных
задач:
-
сравнить полученную вычислительную систему с другими
аналогичными (что может дать некоторое усредненное понимание того, правильно
настроена система или нет)
-
выявить «узкие места» в тестируемой вычислительной
системе, устранение которых потенциально способно повысить общую
производительность;
-
выбрать алгоритм решения задачи (или его готовую
реализацию), позволяющий максимально эффективно «подстроиться» под имеющиеся
характеристики вычислительной системы;
-
определить, на этапе тестирования, достаточна мощность
кластера для решения конкретной задачи в заданное время или нет, и
т.д.
Кроме
указанных, достаточно очевидных применений измерений, можно предложить и более
сложные ситуации. Скажем, анализируя опубликованные результаты тестов различных
систем и обладая информацией о показателях, которых необходимо достичь, можно на
этапе проектирования попытаться определить необходимый программно-аппаратный
состав будущей системы. Или, скажем, зная для разных классов задач необходимые
требования к соответствующим характеристикам, заранее подобрать кластер,
наиболее пригодный для них. Ну и, наконец, появляется возможность оценивать
время выполнения той или иной задачи (при условии наличия оценки ее
сложности, выраженной в единицах измеряемых тестом), что позволяет
реализовывать различные варианты планирования выполнения задач на
кластере.
Таким
образом, результаты тестов позволяют:
-
на стадии проектирования принимать решения о
примерном составе будущей вычислительной системы;
-
на стадии отладки и ввода в эксплуатацию путем
сравнения с аналогами принимать решение о достижении необходимых
характеристик;
-
на стадии эксплуатации/модификации выявлять узкие места
системы,
что делает тестирование необходимой составляющей всех этапов процесса работы
с кластерной вычислительной системой.
Статьи по теме
Ниже представлены ссылки на страницы сайта и статьи связанные с тестированием производительности кластерных систем: