CluBORun: средство использования свободных ресурсов вычислительных кластеров для BOINC-расчетов Манзюк М.О., Заикин О.С. ИДСТУ СО РАН, Иркутск BOINC + кластеры BOINC – платформа для организации грид-вычислений и добровольных вычислений. BOINC на кластерах – 2 подхода. 1. С использованием платформы BOINC создается гетерогенный грид, в него добавляются кластеры. Пример – грид*, созданный в ИПМИ КарНЦ РАН. В состав этого грида входят серверы, ПК сотрудников, а также вычислительный кластер ЦКП КарНЦ РАН. * Ивашко Е.Е., Никитина Н.Н. Использование BOINC-грид в вычислительноемких научных исследованиях // Вестник НГУ. Серия: Информационные технологии. 2013. Т. 11, Вып. 1. С. 53–57. 2 BOINC + кластеры 2. Узлы кластера напрямую подключаются к проекту добровольных вычислений на основе BOINC. При этом каждый узел кластера будет рассматриваться как отдельный компьютер (хост) в проекте. В проекте Einstein@home впервые кластер был подключен в 2007 году. Благодаря этому производительность проекта выросла с 64 до 89 TFLOPs. С тех пор в проекте Einstein@home постоянно используются кластеры. В 2011-2012 гг. к проекту SAT@home был подключен кластер ИМЭИ ИГУ, на котором не проводились другие расчеты. 3 BOINC + кластеры Для реализации обоих подходов необходимы права администратора на использование кластера. На узлах кластера запускается BOINC-клиент в обход очереди заданий. Если на узле запускаются процессы пользователей кластера (через очередь заданий), то BOINC-клиент ставит свои вычисления на паузу (как на обычном ПК). + простой и надежный способ – неприменим без прав администратора 4 Кластеры в BOINC-проектах : актуальность • Прирост производительности от кластеров может быть весьма значительным. • Вычислительные мощности кластеров могут простаивать, а запуск BOINC-расчетов решит эту проблему. • Кластер – надежное устройство. Результаты расчетов на кластере можно принять как эталонные при проверке результатов копий заданий. • Важно для репутации проекта – если не задействуются имеющиеся у научного сообщества вычислительные мощности, то почему они запрашиваются у мирового сообщества? • Одна единица задействованных мощностей может привлечь еще несколько единиц благодаря конкуренции среди команд за лидирующие позиции в рейтингах статистики. 5 Предлагаемый подход Требования: • Использовать только права обычного пользователя кластера. • Использовать только свободные ресурсы кластера. Решение: • Периодически анализировать очередь заданий кластера. • Если есть свободные ресурсы, запускать на них MPI-задачи, которые в качестве промежуточного ПО используют BOINC. • Если в очереди появляются задачи других пользователей, прерывать MPI-задачи с BOINC. 6 Реализация Cluster for BOINC Run (CluBORun) – средство для запуска BOINC-расчетов на кластерах. Аналог BOINC-менеджера, который управляет процессом вычислений на ПК добровольцев – только вместо свободных ресурсов ПК предлагается использовать свободные ресурсы кластера. Использован awk - интерпретируемый скриптовый Cподобный язык, работает в bash (sh) скриптах. 7 Реализация. Компоненты • Каталоги с экземплярами BOINC-клиента – для каждого узла свой каталог. • Файлы-флаги, соответствующие экземплярам BOINCклиентов. При запуске BOINC-клиента создается startфлаг, в случае необходимости его остановки – stop-флаг. • Скрипт start_boinc.sh, который запускает BOINC-клиент на выделенном ему узле кластера • Скрипт catch_node.sh, предназначенный для анализа загрузки кластера, запуска скриптов start_boinc.sh и для остановки BOINC-клиентов. 8 Реализация. Скрипт catch_node.sh • Каждые 5 минут (через crontab) выполняется скрипт анализа очереди catch_node.sh • catch_node.sh запрашивает список задач, запущенных на кластере и стоящих в очереди. • параметр clusterNodes определяет максимальное допустимое количество узлов кластера, на которых может быть запущен BOINC. • при обнаружении свободных узлов запускаются BOINC-задачи, используя скрипт запуска start_boinc.sh. • если в очереди появились задания других пользователей, которые могли бы начать выполняться на высвобождаемых узлах, то BOINCзадачи останавливаются. 9 Реализация. Скрипт start_boinc.sh • скрипт start_boinc.h на выделенном ему узле запускает BOINC-клиент с использованием MPI через очередь заданий. • MPI используется как оболочка – управление передается BOINC-клиенту который использует узел кластера как обычный ПК. • главный MPI-процесс отсчитывает время работы и выполняет своевременную остановку BOINCклиента при достижении лимита на время работы. • параметр timelimit определяет на какое время запускается BOINC-задача. Рекомендуемое минимальное значение для SAT@home – 1 час. 10 Общая схема вычислений 11 Связь с интернетом На кластере может быть открыт доступ в интернет: • только с управляющего узла • со всех узлов На кластере blackford ИДСТУ СО РАН доступ был открыт со всех узлов. CluBORun запускает на каждом узле BOINC-клиент, который связывается с сервером проекта. TODO Настроить прокси, чтобы связь была только через управляющий узел. Для этого тоже не нужны права администратора. 12 Проект добровольных вычислений SAT@home Совместный проект ИДСТУ СО РАН и ИППИ РАН. Предназначен для решения вычислительно сложных задач, эффективно сводимых к SAT-задачам. 29.09.2011 – запуск проекта. Успешно решены задачи логического криптоанализа генератора A5/1, а также задачи поиска систем ортогональных латинских квадратов. С помощью CluBORun ресурсы кластера Blackford ИДСТУ СО РАН были использованы в SAT@home 13 2013.04.12 13:40 2013.04.13 07:40 2013.04.14 18:40 2013.04.15 12:40 2013.04.16 06:40 2013.04.17 00:40 2013.04.17 18:45 2013.04.18 12:45 2013.04.19 06:45 2013.04.20 00:45 2013.04.20 18:45 2013.04.21 12:45 2013.04.22 06:45 2013.04.23 06:20 2013.04.24 00:20 2013.04.24 18:20 2013.04.25 12:20 2013.04.26 06:20 2013.04.27 00:20 2013.04.27 18:20 2013.04.28 12:20 2013.04.29 06:20 2013.04.30 00:20 2013.04.30 18:20 2013.05.01 12:20 2013.05.02 06:20 2013.05.03 00:20 2013.05.03 18:20 2013.05.04 12:20 2013.05.05 06:20 2013.05.06 00:20 2013.05.06 18:20 2013.05.07 12:20 2013.05.08 06:20 2013.05.09 00:20 2013.05.09 18:20 2013.05.10 12:20 2013.05.11 06:20 2013.05.12 00:20 2013.05.12 18:20 2013.05.13 12:20 Число ядер Загрузка кластера Blackford с 12.04 по 13.05 Заблокиров ано Приложения BOINC Время Св ободно Очередь 224 208 192 176 160 144 128 112 96 80 64 48 32 16 0 14 Варианты использования • Использовать все свободные ресурсы кластера • Использовать не более определенного числа ресурсов 15 Перспективы • Связь с сервером проекта с только с главного узла через прокси. • Поддержка различных систем очередей. • Выделение в SAT@home доверенных хостов, подключенных через CluBORun. • Попасть в список дополнений BOINC, чтобы разработанным средством пользовались в других проектах. http://boinc.berkeley.edu/addons.php 16 Перспективы 17 Спасибо за внимание! 18