Решение задач обращения некоторых дискретных функций в проекте добровольных вычислений SAT@home
О.С. Заикин, ИДСТУ СО РАН, н.с., [email protected]
Введение
Многие важные в практическом отношении задачи представляют собой задачи обращения дискретных функций, то есть функций, преобразующих двоичные слова в двоичные слова. В [1] была предложена параллельная технология решения таких задач. При этом применяется SAT-подход - задачи обращения дискретных функций ставятся как задачи поиска выполняющих наборов пропозициональных выражений (SAT-задачи). Реализация данной технологии в виде параллельного SAT-решателя PD-SAT с использованием библиотеки MPI описана в работе [2]. С применением решателя PD-SAT на вычислительном кластере Blackford ИДСТУ СО РАН [3] были успешно решены задачи обращения некоторых криптографических дискретных функций. А именно, были решены задачи обращения функций порождения ключевого потока, используемых в генераторе Гиффорда, а также в суммирующем и пороговом генераторах (с длинами инициализирующих последовательностей 64, 66 и 80 бит соответственно). Обращение функции порождения ключевого потока генератора A5/1 потребовало весьма значительных вычислительных ресурсов. В связи с этим было принято решение о переносе технологии распараллеливания SAT-задач в распределенные вычислительные среды. Первым удачным опытом такого рода стало успешное решение задачи обращения функции порождения ключевого потока генератора A5/1 в грид-системе BNB-Grid [4].
Проект добровольных вычислений SAT@home
Дальнейшим развитием технологии [1] стало использование добровольных распределенных вычислений. Для использования таких вычислений создаются проекты, к которым для решения задач (в основном научных) подключаются персональные компьютеры (ПК) частных пользователей со всего мира. В сотрудничестве с Институтом системного анализа РАН был создан проект добровольных вычислений SAT@home [5]. Для этого была использована открытая платформа BOINC и пакет SZTAKI Desktop Grid [6].
С использованием библиотеки DC-API [7] было создано распределенное приложение, состоящее из серверной и клиентской части. Схема работы приложения представлена на Рис. 1. Серверная часть отвечает за создание заданий в БД проекта, а также за обработку результатов выполнения заданий, присылаемых с ПК пользователей. Отправкой заданий на ПК пользователей и получением результатов занимаются стандартные службы BOINC. Для формирования заданий в серверную часть приложения были перенесены процедуры из решателя PD-SAT, отвечающие за декомпозицию SAT-задач.
Серверная Стандартные ■ЦЩ BOINC-клиент г т
часть > службы Клиентская часть ПК № 2
приложения BOINC приложение
Рис. 1. Схема работы распределенного приложения в проекте SA T@home
Клиентскую часть приложения в виде исполняемых файлов для конкретной ОС запускает на ПК пользователей стандартный BOINC-клиент. В клиентскую часть приложения перенесены процедуры решения SAT-задач из решателя PD-SAT. Фактически в распределенное приложение проекта перенесена те процедуры решателя PD-SAT, которые требуют малую интенсивность межпроцессорных обменов. На кластере Blackford ИДСТУ СО РАН с помощью решателя PD-SAT продолжаются вычисления, направленные на нахождения параметров декомпозиции, т.к. эти вычисления используют интенсивные межпроцессорные обмены. Эти параметры затем используются для решения задач в гриде проекта SAT@home.
В настоящий момент в проекте используется схема, представленная на Рис. 2. По данной на вход SAT-задаче (КНФ в формате DIMACS [8]) с помощью маломощного вычислительно кластера для нее вычисляются «хорошие» параметры декомпозиции. Под «хорошими» параметрами имеются в виду параметры, найденные в результате применения специальной техники прогнозных функций. Параметры декомпозиции
включают в себя: тип SAT-решателя, вариант декомпозиции (т.е. способ выбора переменных) и мощность декомпозиции. Данный этап занимает небольшое количество времени. Найденные параметры передаются в серверную часть приложения проекта, по ним осуществляется декомпозиция с последующим решением подзадач в гриде проекта. В результате решения в общем случае всех подзадач находится решение исходной SAT-задачи.
Рис. 2. Схема решения SA T-задач в проекте SA T@home
Основу клиентской части приложения составляют SAT-решатели minisat-1.14.1 и minisat-2.0 [9], модифицированные с учетом особенностей КНФ, кодирующих задачи обращения дискретных функций.
1. Текущее состояние проекта SAT@home
Проект SAT@home был запущен 29 сентября 2011 г. По состоянию на 6 ноября 2011 г. проект имеет следующие характеристики:
• 508 пользователей, 86 % иностранных;
• 1172 ПК, суммарно 4488 ядер процессоров, 85 % под управлением
• ОС Windows;
• версии клиентского приложения: windows x86, linux x86.
На Рис. 3 отображена динамика количества подключаемых к проекту ПК с 29 сентября по 6 ноября 2011 года. Каждый столбец - количество подключенных ПК за конкретный день. На графике видно, что с 10 октября подключений стало значительно больше. В этот день проект был добавлен на статистический сайт Free-DC (содержащий информацию о проектах на платформе BOINC), а также был включен экспорт статистики, позволяющий другим статистическим сайтам добавлять проект в свои списки. Наличие информации о проекте на основных статистических сайтах - важный фактор для привлечения новых пользователей. На Рис. 4 представлена динамика увеличения пиковой мощности грида проекта в GFLOPs. Пиковая мощность здесь -это сумма мощности всех подключенных ПК. При этом фактическая мощность грид примерно в 2-4 раза ниже (точная ее оценка пока не проводилась), т.к. подключенные к проекту ПК работают в обычном
режиме - выключаются на ночь, на выходные, и т.д. К тому же многие ПК подключены к нескольким проектам, между которыми делятся доступные мощности.
Рис. 3. Динамика количества подключаемых к проекту ПК
Рис. 4. Динамика изменения пиковой мощности проекта (в GFLOPs)
2. Результаты
В проекте были решены задачи обращения функций, порождающих ключевой поток в суммирующем и пороговом генераторах (с длинами инициализирующих последовательностей 66 и 80 бит соответственно). Для их решения потребовалось меньше времени, чем требовалось ранее при использовании параллельного решателя PD-SAT на кластере Blackford ИДСТУ СО РАН [3]. При этом данный кластер продолжает использоваться для вычисления параметров декомпозиции с их последующим использованием в гриде проекта SAT@home. Для нахождения параметров декомпозиции описанных выше SAT-задач с помощью решателя PD-SAT потребовалось около 2 минут работы 32 ядер кластера Blackford. В данный момент в проекте запущен эксперимент по решению SAT-задачи, кодирующей обращение функции, порождающей ключевой поток в генераторе A5/1 (длина инициализирующей последовательности 64 бита, анализируется фрагмент ключевого потока длиной 160 бит). Для нахождения параметров декомпозиции для данной SAT-задачи потребовалось 12 минут работы 32 ядер кластера Blackford. Была поставлена задача найти все выполняющие наборы соответствующей КНФ (по этим наборам эффективно строятся искомые инициализирующие последовательности). Подобная задача решалась в системе BNB-Grid [4] в 2009 г., на это тогда потребовалось 16 суток, были найдены три выполняющих набора для КНФ. Сейчас в проекте спустя 20 суток работы 98 % подзадач решены, найдены два выполняющих набора.
Заключение
Представленные результаты показывают перспективность использования добровольных вычислений для решения масштабных SAT-задач, кодирующих задачи обращения некоторых дискретных функций. В дальнейшем планируется решать в проекте SAT@home другие задачи обращения дискретных функций, а также задачи дискретной оптимизации и биоинформатики, которые допускают эффективные сводимости к SAT-задачам.
Работа выполнена при поддержке гранта «Лаврентьевский конкурс молодежных проектов СО РАН» 2010-2011 гг. и гранта РФФИ № 11-07-00377-а. Автор приносит благодарность всем участникам проекта SAT@home за предоставленные вычислительные ресурсы.
Литература
1. Заикин О.С., Семенов А.А. Технология крупноблочного параллелизма в
SAT-задачах // Проблемы управления. 2008. №1. С. 43-50.
2. Заикин О.С. Реализация процедур прогнозирования трудоемкости параллельного решения SAT-задач // Вестник УГАТУ. 2010. Т. 14, №4(39) С. 210-220.
3. Кластер Blackford ИДСТУ СО РАН [http://www.mvs.icc.ru]
4. Alexander Semenov, Oleg Zaikin, Dmitry Bespalov and Mikhail Posypkin. Parallel logical cryptanalysis of the generator A5/1 in BNB-Grid system. LNCS 6873, pp. 473-483, Springer, 2011.
5. Проект добровольных вычислений SAT@home [http://sat.isa.ru/pdsat/]
6. P.Kacsuk, J.Kovacs, Z. Farkas, A. Cs. Marosi, G. Gombas and Z. Balaton: SZTAKI Desktop Grid (SZDG): A Flexible and Scalable Desktop Grid System,Journal Of Grid Computing, Vol 7 , No. 4, pp. 439-461, 2009.
7. Z. Balaton, G. Gombas, P. Kacsuk, A. Kornafeld, J. Kovacs, A. C. Marosi, G. Vida, N. Podhorszki, and T. Kiss. Sztaki desktop grid: a modular and scalable way of building large computing grids. In Proc. of the 21th Int. Parallel and Distributed Processing Symposium, Long Beach, California, USA, pp. 1-8, 2007.
8 Формат DIMACS [http://www.cs.ubc.ca/~hoos/SATLIB/benchm.html]. 9. The MiniSat page [http://minisat.se/MiniSat.html]