А.А. ТАЙГУНОВ Научный руководитель – М.М. РОВНЯГИН Национальный исследовательский ядерный университет «МИФИ» СПОСОБ ОЦЕНКИ ПРОИЗВОДИТЕЛЬНОСТИ ВЫСОКОПРОИЗВОДИТЕЛЬНОГО ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА ГЕТЕРОГЕННОЙ АРХИТЕКТУРЫ В работе предлагается способ оценки производительности гетерогенного кластера при помощи статического распределения тестовой задачи в неоднородной среде для равномерной загрузки всех узлов. Рассматриваются основные пакеты тестов для высокопроизводительных систем, приводятся описание и схема предлагаемого метода, а также основные формулы. В настоящее время для оценки производительности высоконагруженных систем применяются различные пакеты тестирования [1,2]. Каждый из них обладает своими достоинствами и недостатками. Так, для составления мирового [3] рейтинга суперкомпьютерных систем, в том числе кластерных (HPC) применяется набор тестов HighPerformance Linpack (HPL). Однако, HPL успешно справляется с задачей замера производительности на синтетической задачи в гомогенной среде, но не предназначен для использования в гетерогенных системах, где каждый узел обладает разными возможностями. Таким образом, создание адаптивного пакета тестов, который сможет подстраиваться под конкретную архитектуру, является актуальной задачей. В данной работе предлагается способ создания приложения, которое распределяло бы тестовую задачу с учётом гетерогенной архитектуры кластера, учитывая разные вычислительные особенности каждого узла. Для этого тестирующая программа сначала собирает всю информацию о доступных узлах, проводит оценку их производительности, а затем равномерно распределяет между ними основную часть программы тестирования. Обмен информацией между узлами осуществляется посредством использования технологии MPI, а распараллеливание в самом узле обеспечивается за счет применения технологии OpenMP и CUDA (при наличии соответствующего аппаратного обеспечения). Статический метод [4] распределения предполагает, что перед запуском основной программы выполняется приблизительная оценка производительности каждого узла, которая имеет эвристический характер. Для проведения замера времени выполнения тестовой операции (например, перемножения матриц) на управляющем узле генерируются исходные данные для каждого параллельного процесса, количество которых равняется числу параллельных ядер (в том числе GPU) системы. Пусть каждый процесс выполняет свою тестовую операцию за время 𝑇𝑚 , 𝑚 = ̅̅̅̅̅̅̅̅̅̅ 0, 𝑁 − 1. Соответствующая скорость выполнения таких операций в единицу времени будет 1⁄𝑇𝑚 . Выберем процесс с наибольшей скоростью в качестве эталонного и определим для остальных процессов коэффициенты по формуле 1: 1⁄𝑇𝑚 𝑘𝑚 = , 𝑚 = ̅̅̅̅̅̅̅̅̅̅ 0, 𝑁 − 1 (1) ⁄ max(1 𝑇𝑚 ) Тогда размер задачи для каждого процесса будет определяться по формуле: 𝑛𝑚 = ⌊𝑘𝑚 𝑛𝑒 + 0,5⌋ (2) Где 𝑛𝑒 — это исходная размерность задачи, которая будет исполняться самым быстрым процессом. Очевидно, что данный подход оценки производительности является весьма приблизительным, вследствие чего будет иметь место расхождение по времени между процессами. Расхождение будет тем больше, чем хуже была подобрана тестовая операция. Однако, это расхождение будет гораздо меньше, чем, при равномерном распределении. Погрешность можно и снизить если собирать статистику о выполнении реальных вычислений в гетерогенной среде. Общая схема алгоритма следующая: ПОДСЧЕТ ЧИСЛА ЯДЕР ГЕНЕРАЦИЯ ТЕСТОВЫХ МАТРИЦ ВЫЧИСЛЕНИЕ ВОЗМОЖНОСТЕЙ КАЖДОГО УЗЛА РАСПРЕДЕЛЕНИЕ ДАННЫХ ПО ЯДРАМ И НИТЯМ Таким образом, мы получили способ тестирования, который ранее не применялся в перечисленных пакетах тестирования и который учитывает гетерогенную структуру кластера. Список литературы 1. Обзор некоторых пакетов измерения производительности кластерных систем URL: http://www.ixbt.com/cpu/cluster-benchtheory.shtml (дата обращения: 1.11.2013). 2. Обзор и основные характеристики популярных тестовых программ для кластерных компьютеров / Костырко A.A., Богородицкий A.B., Трифонов И.B.; Молодежный научнотехнический вестник # 10, октябрь 2013. 3. TOP500 Supercomputer Sites / URL: http://www.top500.org (дата обращения: 1.11.2013). 4. Федотов И.Е. Модели параллельного программирования. - М.: СОЛОН-ПРЕСС, 2012. - 384 с.