О GPU-реализации ограниченной версии нехронологического алгоритма DPLL

УДК 519.7

О GPU-РЕАЛИЗАЦИИ ограниченной версии НЕХРОНОЛОГИЧЕСКОГО АЛГОРИТМА DPLL1

В. Г. Булавинцев, А. А. Семенов

Описан новый решатель ngsat, предназначенный для решения SAT-задач на GPU (Graphic Processor Unit). Данный решатель основан на ограниченном варианте нехронологического DPLL без процедуры Clause Learning; в нём использованы специальные приемы, позволяющие повысить эффективность исполнения DPLL на SIMD-архитектуре. Приводятся результаты тестирования ngsat на задачах поиска систем ортогональных латинских квадратов.

Ключевые слова: GPU, алгоритм DPLL, SAT, параллельные вычислительные архитектуры, CUDA, SIMD.

Прошло всего несколько лет с момента, когда стало возможным использовать GPU для неграфических вычислений. За это время на GPU перенесено множество алгоритмов из различных отраслей науки и техники. Этот опыт показал, что класс алгоритмов, допускающих успешную реализацию на GPU, к сожалению, весьма узок. К примеру, в криптографии GPU применяются, главным образом, для реализации различных brute force-атак [1]. Серьёзные проблемы возникают при переносе на GPU комбинаторных алгоритмов, в которых используются различные стратегии обхода дерева поиска. Основным негативным эффектом в этом плане является так называемый «SIMD-эффект», когда при выполнении условного перехода часть вычислительных ядер SIMD-группы вынуждена простаивать в ожидании необходимой команды.

Одной из актуальных является проблема реализации на GPU современных алгоритмов решения SAT-задач [2] как алгоритмов, применимых в различных разделах вычислительной дискретной математики. Мы представляем реализованный на GPU SAT-решатель, названный ngsat. В данном решателе использован ряд специально разработанных техник и алгоритмов. В частности, используются специальные структуры данных для представления дизъюнктов. Эти структуры несколько медленнее стандартных «watched literals» [3], однако существенно более экономны по памяти, что даёт возможность запускать на GPU параллельно большое число SAT-задач. В решателе ngsat существенно снижена негативная составляющая SIMD-эффекта за счёт применения специальных процедур голосования и реорганизации циклов. Кратко, техника голосования заключается в периодическом опросе работающих в одной SIMD-группе вычислительных ядер о том, какую команду они готовы исполнять. По результатам такого опроса контроллер подает на SIMD-группу команду, к выполнению которой готово большинство ядер. Техника реорганизации циклов также используется для нивелирования SIMD-эффекта и заключается в перестройке вложенных циклов в процедуре «Unit Propagation». Процесс обработки очереди в «Unit Propagation» состоит из двух стадий — выбора переменной из очереди и обработки дизъюнктов, инцидентных выбранной переменной. Может оказаться так, что в некоторый момент одно ядро SIMD-группы обработало все дизъюнкты некоторой переменной и вынуждено ждать окончания аналогичного действия другого ядра. Показано, что две эти стадии в «Unit Propagation» можно очень просто перестроить таким образом, что такого простоя не возникнет.

хРабота выполнена при поддержке гранта РФФИ № 11-07-00377 а.

В решателе ngsat реализована версия DPLL с ограниченной формой нехронологического бэктрекинга. Хорошо известно, что нехронологический бэктрекинг существенно эффективнее обычного (хронологического). Однако реализации полноценного нехронологического DPLL мешает небольшой (в пересчёте на одну задачу) объём памяти GPU. Исходя из этого, в ngsat реализован ограниченный вариант нехронологического DPLL, общая идея которого описана в различных источниках (см., например, [4]). Эта идея состоит в том, чтобы для каждой переменной, значение которой выведено по BCP, хранить информацию о породивших этот вывод причинах. Для этой цели можно использовать стандартные приёмы, применяемые во всех современных SAT-решателях [5]. Хранения конфликтных дизъюнктов можно избежать, если в процессе вывода не использовать рестарты. Данный факт ограничивает «мощность вывода» [6], однако для целого ряда задач такой подход вполне оправдан.

Решатель ngsat протестирован на SAT-задачах, кодирующих поиск систем ортогональных латинских квадратов. Эти задачи являются очень трудными [7]. На данном классе тестов ngsat оказался более эффективным, чем широко известный SAT-решатель minisat [8].

ЛИТЕРАТУРА

1. Беспалов Д. В., Булавинцев В. Г., Семенов А. А. Использование графических ускорителей в решении задач криптоанализа // Прикладная дискретная математика. Приложение. 2010. №3. С. 86-87.

2. Biere A., Heule M., van Maaren H., and Walsh T. (eds.). Handbook of satisfiability. IOS Press, 2009.

3. Een N. and Sorensson N. An extensible SAT-solver // LNCS. 2003. V. 2919. P. 502-518.

4. Marques-Silva J. P. and Sakallah K. A. GRASP: A search algorithm for propositional satisfiability // IEEE Trans. Comp. 1999. V. 48. No. 5. P. 506-521.

5. Moskewicz M. W. et al. Chaff: Engineering an efficient SAT solver // Proc. 38th Design Automation Conference. Las Vegas, NV, USA: ACM, 2001. P. 530-535.

6. Beame P., Kautz H. A., and Sabharwal A. Towards understanding and harnessing the potential of clause learning // J. Artif. Intell. Res. (JAIR). 2004. V. 22. P. 319-351.

7. Zhang H. Combinatorial designs by SAT solvers // Handbook of satisfiability. IOS Press, 2009. P. 533-568.

8. http://minisat.se/

УДК 519.712

ОБ АСИМПТОТИКЕ РЕШЕНИЙ РЕКУРРЕНТНЫХ СООТНОШЕНИЙ В АНАЛИЗЕ АЛГОРИТМОВ РАСЩЕПЛЕНИЯ ДЛЯ ПРОПОЗИЦИОНАЛЬНОЙ ВЫПОЛНИМОСТИ

В. В. Быкова

Исследована традиционная техника анализа алгоритмов расщепления для решения задачи пропозициональной выполнимости. Предложена теорема, устанавливающая асимптотические верхние оценки времени работы алгоритмов в случае сбалансированного расщепления.

Ключевые слова: алгоритмы расщепления, сложность вычислений.

Задача пропозициональной выполнимости (Satisfiability, SAT) является одной из известных NP-полных задач дискретной математики. Пусть X — множество булевых