Научная статья на тему 'Технология параллельного решения нелинейных систем булевых уравнений на вычислительном кластере'

Технология параллельного решения нелинейных систем булевых уравнений на вычислительном кластере Текст научной статьи по специальности «Математика»

CC BY
108
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / PARALLEL COMPUTING / БУЛЕВО МОДЕЛИРОВАНИЕ / BOOLEAN MODELING / РЕШЕНИЕ БУЛЕВЫХ УРАВНЕНИЙ / BOOLEAN EQUATIONS SOLVING

Аннотация научной статьи по математике, автор научной работы — Богданова Вера Геннадьевна, Горский Сергей Алексеевич

Рассматриваются принципы организации, основные функции и структурные компоненты инструментального комплекса для автоматизации параллельного решения булевых уравнений на однородном вычислительном кластере с SMP-узлами. В частности, обсуждается параллельное решение булевых уравнений на основе гибридного подхода.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Богданова Вера Геннадьевна, Горский Сергей Алексеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE TECHNOLOGY OF PARALLEL SOLUTION OF NONLINEAR SYSTEMS OF BOOLEAN EQUATIONS ON A COMPUTING CLUSTER

Enterprise principles, base functions and structural components of toolkit for automation of parallel computing of Boolean equations on a homogeneous computing SMP cluster is considered. In particular, the parallel solution of Boolean equations based on the hybrid approach is discussed.

Текст научной работы на тему «Технология параллельного решения нелинейных систем булевых уравнений на вычислительном кластере»

нии : тр. XV Байкальской Всерос. конф. Ч. 1. Иркутск : ИСЭМ СО РАН, 2010. С. 174-182.

3. Пугачев В. С. Теория вероятностей и математическая статистика : учеб. пособие. 2-е изд., испр. и доп. М. : Физматлит, 2002. 496 с.

4. Айвазян С. А. Прикладная статистика. Основы эконометрики. Т. 1 : Теория вероятностей и прикладная статистика. / С. А. Айвазян, В. С. Мхитарян. М. : Юнити-Дана, 2001. 656 с.

5. Бокс Д., Дженкинс Г. Анализ временных рядов. Прогноз и управление. Вып. 1. М. : Мир, 1974. 406 с.

6. Хрусталёв Ю. П., Спиридонова Е. В. Алгоритмы обработки измерительной информации, по-

лучаемой в процессе хранения единиц времени и частоты // Техника средств связи. Сер.: Радиотехнические измерения. 1986. Вып. 1. С.58-72.

7. Хрусталёв Ю. П., Овечкина А. А., Щербаков Е. В. Построение моделей многомерных временных рядов по результатам наблюдений в динамических системах. // Методы исследований и моделирования технических, социальных и природных систем : сб. науч. тр. Новосибирск : Наука, 2003. С. 293-307.

8. Гантмахер Ф. Р. Теория матриц. М. : Наука, 1966. 576 с.

УДК 519.685 Богданова Вера Геннадьевна,

к. т. н., с. н. с., Федеральное государственное бюджетное учреждение науки Институт динамики систем и теории управления Сибирского отделения Российской академии наук (ИДСТУ СО РАН), лаборатория параллельных и распределенных вычислительных систем, e-mail: [email protected]

Горский Сергей Алексеевич,

к. т. н., н. с., Федеральное государственное бюджетное учреждение науки Институт динамики систем и теории управления Сибирского отделения Российской академии наук (ИДСТУ СО РАН) , лаборатория параллельных и распределенных вычислительных систем, тел. 89149230010, e-mail: [email protected]

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

V. G. Bogdanova, S.A. Gorskiy

THE TECHNOLOGY OF PARALLEL SOLUTION OF NONLINEAR SYSTEMS OF BOOLEAN EQUATIONS ON A COMPUTING CLUSTER

Аннотация. Рассматриваются принципы организации, основные функции и структурные компоненты инструментального комплекса для автоматизации параллельного решения булевых уравнений на однородном вычислительном кластере с SMP-узлами. В частности, обсуждается параллельное решение булевых уравнений на основе гибридного подхода.

Ключевые слова: параллельные вычисления, булево моделирование, решение булевых уравнений.

Abstract. Enterprise principles, base functions and structural components of toolkit for automation of parallel computing of Boolean equations on a homogeneous computing SMP cluster is considered. In particular, the parallel solution of Boolean equations based on the hybrid approach is discussed.

Keywords: parallel computing, Boolean modeling, Boolean equations solving.

Введение

Современный этап развития вычислительной техники характеризуется массовым распространением параллельных компьютеров. Расширяется круг предметных областей, в которых для решения задач применяются параллельные технологии. В последние годы бурно развиваются исследования, связанные с использованием высокопроизводительных кластеров для решения обладающей высокой вычислительной сложностью задачи удовлетворения булевых ограничений, являющейся фундаментальной проблемой в математической логике и теории вычислений. Следует отметить, что многие практические задачи могут быть сформулированы как задачи булевой выполнимости (решения системы булевых уравнений). В силу востребованности инструментария для решения этой задачи активно ведется разработка технологий, методов и программных средств, повышающих его эффективность для различных типов архитектур многопроцессорной техники. Особое внимание привлекает вычислительный кластер

Системный анализ. Математика. Механика и машиностроение

ш

на базе SMP-узлов ([1]). В работе [1] также отмечается, что широкое распространение таких кластеров подталкивает к использованию гибридного подхода, при котором программа представляет собой систему взаимодействующих MPI-процессов, а каждый процесс программируется на OpenMP, поскольку использование OpenMP может для некоторых задач дать заметный выигрыш в эффективности. Возникает вопрос, будет ли относиться к таким задачам решение систем булевых уравнений. Много работ посвящено оцен^ применения параллельных подходов к решению задачи булевой выполнимости на основе стандартов MPI и OpenMP. Так, в работе [2] рассматриваются последовательные и параллельные SAT-решатели, приводятся способы декомпозиции булевой функции с подробным описанием ряда эвристик, обсуждаются стратегии поиска в пространстве состояний, используемые различными решателями, оценивается балансировка загрузки процессоров, описываются вычислительные эксперименты, направленные на сравнение эффективности последовательных и параллельных решателей, подчеркиваются преимущества и недостатки последних, перечисляются перспективные направления исследований в этой области. В числе таких направлений упомянуты, в частности, гибридные методы решения задачи булевой выполнимости. Стили гибридного программирования для вычислительного кластера с SMP-узлами рассматриваются в работе [3]. В более поздней работе [4] приводится обзор современных параллельных решателей и отмечается, что все еще остается открытым вопрос разработки решателя, позволяющего достигнуть приемлемой производительности на многоядерных архитектурах.

В свете всего вышесказанного актуальной является задача разработки технологии, методов и инструментальных средств для организации параллельного решения нелинейных систем булевых уравнений на вычислительном кластере с SMP-узлами. В статье рассматривается одно из таких инструментальных средств, а именно, подсистема параллельного исполнителя, используемая в инструментальном комплексе (ИК) РЕБУС, ориентированном на применение в фундаментальных и прикладных исследованиях при проведении вычислительных экспериментов в разнообразных предметных областях, где естественным образом возникают дискретные модели в виде систем булевых уравнений.

1. Постановка задачи

Формально задача решения булевых уравнений формулируется следующим образом: пусть

X = (—,..., хи) - упорядоченное множество булевых переменных (— е В2 для всех /; ' = 1, п;

В2 = {0,1}). Задано т булевых соотношений (система уравнений) вида

_ /<(-v..,\(,))=0, (1)

где ^ (' = 1, т) - произвольные булевы функции

своих аргументов. Требуется найти одно, несколько или все решения системы (1) или установить ее несовместность.

Следует заметить, что первая NP-полная задача - задача «выполнимости КНФ» (задача булевой выполнимости, или SAT-задача) есть, по существу, задача распознавания совместности систем уравнений [5]

х^1 V... V ха'т = 1, (г = 1,...,т), (2)

'1 'к (') у з з /з V /

где переменная

Iх при = 0, _

V Ч р р ,, р=1,

I х при СТ, = 1.

^ 'р р

Двойственная к (2) система уравнений вида (1) записывается следующим образом:

x 1 л... л X,

1k (i )

= 0 (i = 1,...,m ).

Известно, что любая система вида (1) может быть представлена одним эквивалентным уравне-

нием

f О^..,x„ ) = (Jf ,...,xhm )= 0 . Поэтому

далее будем рассматривать в основном одно стандартное уравнение / (х,..., X) = 0.

2. Проведение параллельных вычислений с использованием системы мониторинга

В соответствии с технологией параллельного решения таких задач, используемой в ИК РЕБУС, в его состав входят три основные подсистемы: построения булевой модели, планирования вычислительного эксперимента и параллельного исполнения на вычислительном кластере с SMP-узлами (рис. 1).

Технология построения булевой модели была разработана в процессе решения ряда теоретических и практических задач [6]. Назначение подсистемы моделирования заключается в автоматизации построения булевой модели по содержательной постановке задачи и представлении этой модели как в формате DIMACS, так и в виде процедурного описания булевой функции.

и

и

1=1

Рис. 1. Схема проведения параллельных вычислений на SMP-кластере в ИК РЕБУС

Планирование вычислительного эксперимента осуществляется на основе анализа структуры булевой модели, постановки задачи и ряда параметров, задаваемых пользователем ИК РЕБУС. В план решения могут быть включены как вычислительные модули ИК РЕБУС [5], так и внешние вычислительные модули, входящие в штатное проблемно-ориентированное программное обеспечение кластера.

Параллельный исполнитель отвечает за проведение вычислений на кластере. ИК РЕБУС допускает следующие схемы проведения параллельных вычислений: генерация параллельной программы, использующей библиотеку MPI с последующим сохранением, компиляцией и выполнением этой программы на кластере; интеграция с ИК DISCOMP ([7]); удаленный запуск параллельной системы мониторинга PSM (Parallel System Monitor) ([8]).

Две первые схемы описаны в работе [6], предшествующей настоящей статье, являющейся продолжением проведенных ранее исследований и рассматривающей третью схему организации

параллельных вычислений. Эта схема отличается от предыдущих возможностью применения гибридного подхода.

Система PSM организует в главном процессе динамическую очередь подзадач, получаемых в результате декомпозиции исходной булевой модели, применяет механизмы квантования времени и отложенных подзадач, порождает дочерние процессы, организует взаимодействие процессов с помощью стандарта обмена сообщениями MPI. В дочернем процессе могут выполняться как многопоточные, так и однопоточные приложения. Таким приложением является либо программа, осуществляющая декомпозицию булевой модели методом расщепления (расщепитель), либо препроцессор, проводящий упрощение остаточной функции, полученной в результате расщепления булевой модели, либо решатель. В качестве препроцессора и решателя могут использоваться как решатели ИК РЕБУС, так и внешние.

Схема проведения параллельных вычислений в режиме мониторинга приведена на рис. 1.

Основными компонентами PSM являются диспетчер подзадач и диспетчер процессов.

Для распараллеливания булевой модели наиболее предпочтительным с точки зрения решения уравнения (1) является метод расщепления, позволяющий выполнить декомпозицию уравнения (1) на произвольное число независимых уравнений, объединение решений которых даст решение исходного уравнения. Каждое независимое уравнение может решаться в своем вычислительном узле. Анализатор булевой модели выбирает тактику расщепления и генерирует схему расщепления, используемую для последующей декомпозиции этой модели. Для расщепления используются несколько эвристик, либо выбирающихся в результате анализа структуры булевой модели, либо задаваемых пользователем. В процессе расщепления строится дерево. Узлы дерева соответствуют остаточным функциям и хранят информацию о них (количество переменных остаточной функции, имя файла). Для представления узла дерева разработан отдельный класс, содержащий ряд методов, в том числе рекурсивных, для работы с деревом. Управление состоянием дерева диспетчером подзадач осуществляется с помощью этих методов. Диспетчер подзадач выполняет следующие основные функции:

• поиск узлов, удовлетворяющих условиям отправки на решение;

• поиск узлов, удовлетворяющих условиям на расщепление;

• пометка узлов как отправленных на решение/расщепление;

• изменение дерева расщепления:

■ добавление новых узлов;

■ пометка узлов в соответствии с данными, полученными от расщепителей и решателей;

• удаление ненужных файлов;

• формирование заданий для диспетчера процессов;

• получение результатов расщепления/решения от диспетчера процессов.

Основные функции диспетчера процессов:

• прием заданий от диспетчера подзадач;

• сбор информации о процессах MPI (свободен, занят);

• отсылка заданий дочерним процессам;

• получение результатов от дочерних процессов;

• передача результатов диспетчеру подзадач.

Подсистема PSM реализована в виде MPI-программы на языке С++ и может работать как

в рамках ИК РЕБУС, так и автономно. Ниже приводится краткое описание алгоритмов основного и дочернего процессов.

Алгоритм главного процесса:

1. Поиск свободного процесса. Если нет свободного процесса, то переход на шаг 5.

2. Если есть узел дерева расщепления, готовый для отправки решателю, то формируется задание и происходит переход на шаг 4, иначе происходит переход на шаг 3.

3. Если есть узел дерева, готовый для расщепления, то формируется задание и происходит переход на шаг 4, иначе происходит переход на шаг 5.

4. Отсылается задание процессу, выбранному на шаге 1, и происходит переход на шаг 1.

5. Если нет запущенных заданий, то происходит переход на шаг 6, иначе ожидаются результаты от дочерних процессов. Если получено сообщение SAT, то происходит переход на шаг 6. Если сообщение UNSAT, то помечается соответствующий узел дерева и происходит переход на шаг 1. Если получены результаты расщепления, то вносятся изменения в дерево расщепления и происходит переход на шаг 1.

6. Завершается работа монитора, выводятся результаты.

Алгоритм дочернего процесса:

1. Ожидается сообщение с заданием. Если задание на расщепление, то переход на шаг 2, если на решение, то переход на шаг 3.

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

3. Запускается решатель с заданными монитору параметрами для решения полученной подзадачи. Результаты решения отсылаются основному процессу. Происходит переход на шаг 1.

Следует отметить, что ветви дерева, для которых в процессе расщепления на этапе упрощения остаточной функции получено значение UN-SAT, отсекаются. Узел дерева становится готовым для отправки решателю, когда количество переменных остаточной функции принимает граничные значения, заданные в начале работы PSM. Однако в процессе работы системы может возникнуть ситуация, когда из очереди первыми попадают на выполнение подзадачи, не имеющие решения. В системе PSM есть возможность выделять квант времени каждому дочернему процессу, в котором выполняется решатель. По истечении этого кванта подзадача получает статус «отложенной» и возвращается в очередь. В зависимости от наличия свободных процессов эта подзадача мо-

жет быть в дальнейшем либо просто возобновлена, либо предварительно декомпозирована. Граничные значения для шага расщепления и квант времени для шага выполнения могут динамически меняться в процессе работы системы. В качестве граничных значений выступают количество переменных расщепления и количество переменных остаточной функции. Если вторая граница достигнута раньше первой, процесс расщепления может быть остановлен (в зависимости от параметра подсистемы, регулирующего соотношение границ), и запускается процесс решения. Количество остаточных функций и тактика расщепления существенно влияют на скорость получения результата. Оценка времени получения результата в приводимых ниже вычислительных экспериментах включает все накладные расходы, т. е. время, потраченное на расщепление, препроцессорную обработку и обмен сообщениями между процессами.

3. Вычислительные эксперименты

Вычислительные эксперименты проводились в ИДСТУ СО РАН на кластере Blackford Multicore, имеющем 20 вычислительных узлов с двумя четырехъядерными процессорами Intel Xeon 5345 в каждом под управлением ОС Linux. Время выполнения приводится в секундах.

Вычислительный эксперимент преследовал несколько целей. Во-первых, получение оценки ускорения распараллеливания с применением PSM. Во-вторых, на основании этих оценок получение вывода о необходимости и условиях применения гибридного подхода.

При экспериментах с последовательным решателем оценка величины ускорения определялась как отношение времени решения исходного булева уравнения на одном процессоре к времени ее решения на нескольких процессорах. Для задач небольшой размерности решатель запускался на каждом ядре SMP-узла. Для задач большой размерности при запуске последовательного решателя на одном SMP-узле кластера ему выделялись все ресурсы узла.

При экспериментах с параллельным решателем оценка величины ускорения определялась как отношение времени решения исходного булева уравнения на одном узле к времени ее решения на нескольких узлах.

В качестве тестовых были выбраны задача о голубях и клетках, не имеющая решения [9], и задача Эйлера о ходе шахматного коня [10], являющаяся частным случаем задачи о нахождении гамильтонова цикла. Булевы модели для этих задач были построены с помощью подсистемы моделирования ИК РЕБУС.

Прежде чем остановиться на выборе решателей для проведения экспериментов, были произведены некоторые предварительные оценки. Ниже

приведена табл. 1, в которой находятся результаты решения задачи о голубях и клетках (hole10, hole 11 и hole 12), полученные с помощью последовательных и параллельных решателей, как общеизвестных, так и специализированных решателей ИК РЕБУС [6]. Параллельные решатели запускались на одном узле кластера на восьми потоках.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Т а б л и ц а 1

hole Последовательные Параллельные

Пер. minisat rebus manysat prebus

110 121 220 18 15

132 2316 2450 156 212

156 >45000 >45000 3357 4470

Из таблицы видно, что использование параллельных решателей, применяющих технологию работы с общей памятью, заметно ускоряет время выполнения. Следует отметить, что решатели ИК РЕБУС, разработанные в самом начале создания рассматриваемых в статье инструментальных средств, в силу этого не относясь к самым современным, т. е. не имея возможностей «state-of-the-art solver», тем не менее ненамного уступают по результатам времени выполнения для задачи, не имеющей решения, одним из самых известных SAT-решателей. Видимо, это объясняется тем фактом, что эвристики выбора переменной, использующиеся в известных SAT-решателях, и стратегия «learning clauses» не ускоряют нахождение выполняющего набора, т. к. его нет, и поиск с отсечением ветвей происходит по всему дереву пространства состояний вектора булевых переменных. В случае такого систематического поиска начинают приобретать преимущество структуры данных для представления булевой функции и средства восстановления среды при интеллектуальном возврате, использующиеся в решателе РЕБУС. Однако цель статьи заключается не в сравнении самих решателей, требующем проведения значительного количества экспериментов для решения разных наборов тестовых SAT-задач, описание которых выходит за рамки данной статьи, а в оценке подсистемы организации параллельных вычислений PSM. Поэтому в качестве тестовых были выбраны наиболее известные SAT-решатели, а именно последовательный решатель minisat и параллельный manysat ([1]), использование которых, по мнению авторов, может сделать оценку наиболее объективной.

Первая серия экспериментов для оценки ускорения была проведена для задачи о голубях и клетках hole12, последовательное решение которой занимало более 12 часов. При подсчете ускорения выбиралось среднее время выполнения из серии запусков. На рис. 2 приведены результаты ускорения при решении этой задачи в системе

Системный анализ. Математика. Механика и машиностроение

ш

PSM последовательным и параллельным решателями. Последовательный решатель запускался на каждом ядре SMP-узла кластера. В этом случае в системе PSM использовалась модель параллелизма по данным. Параллельный решатель запускался на каждом SMP-узле и занимал 8 ядер для восьми потоков. В этом случае использовался гибридный подход. По рис. 2 видно, что применение системы PSM для последовательного решателя дает ускорение, близкое к линейному, для задачи Ьо1е12. Время выполнения сокращается в 38 раз на 40 процессорах. Параллельный же решатель, работающий на одном узле в 10 раз быстрее последовательного, ускоряется при увеличении числа узлов стабильно, но медленно.

Рис. 2. Ускорение для последовательного и параллельного решателей в Р8М для задач небольшой размерности

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

Для следующей серии экспериментов требовалась задача, становящаяся достаточно трудной при повышении размерности с тысяч до десятков тысяч переменных (табл. 2). Задача Эйлера о ходе шахматного коня, сформулированная в терминах задачи булевой выполнимости и протестированная на ряде SAT-решателей, отвечала таким требованиям. В первом столбце табл. 2 приведены условные названия булевых моделей этой задачи (представленных в КНФ) разной размерности.

Т а б л и ц а 2

КНФ Количество Количество

переменных дизъюнктов

к8 4096 491024

к9 6561 1007603

к10 10000 1913276

к11 14641 3456362

В табл. 3 приведены результаты решения этих задач последовательным и параллельным решателями на одном узле без системы PSM.

Т а б л и ц а 3

КНФ Время (последовательный) Время (параллельный)

к8 250 45

к9 - 604

к10 - -

к11 - -

В табл. 4 приведены результаты решения этих задач в системе PSM. Система ускоряет время выполнения обоих решателей, причем параллельный решает уже все задачи, а последовательный продвигается до к10 на 40 ядрах. В таблице приводится среднее время выполнения серии запусков в секундах для экспериментально подобранных границ и тактики расщепления. Прочерк в третьей колонке означает, что решатель не закончил работу в приемлемое время (либо превышено время ожидания, либо задача аварийно заканчивалась).

Т а б л и ц а 4

Ядра (решатель) к8 к9 к10 к11

16 (параллельный) 188 543 1029 4065

40 (параллельный) 97 501 911 3861

16 (последовательный) 149 603 — —

40 (последовательный) 130 572 28180 —

По табл. 4 видно, что с увеличением размерности задачи применение гибридного подхода, т. е. выполнение в дочернем процессе на SMP-узле многопоточного параллельного решателя, существенно повышает эффективность ее решения. Увеличение количества процессоров ускоряет время выполнения и обеспечивает возможность решения задачи большей размерности для последовательного решателя. На рис. 3 наглядно изображены достигнутые последовательным и параллельным решателями показатели времени выполнения и размерности задач (см. табл. 2) на 16- и 40-процессорных ядрах._

I паралл., 16 ■ паралл40

последоват., 16 □ последоват., 40

Рис. 3. Показатели производительности решателей в системе Р8М для задач большой размерности

Заключение

В результате проведенных экспериментов можно сделать вывод, что применение гибридного подхода на кластере с SMP-узлами, характеристики которого приведены в статье, дает преимущество, а иногда является единственно возможным способом получения решения за приемлемое время по сравнению с применением одноуровневого параллелизма по данным для рассмотренных задач большой размерности. Параллелизм по данным при использовании PSM позволяет получить линейное ускорение для ресурсоемких (по времени) задач небольшой размерности. Подсистема планирования вычислительного эксперимента ИК РЕБУС учитывает размерность задачи и структуру булевой функции, обеспечивая построение теоретически оптимального плана решения. Подсистема PSM позволяет варьировать границы расщепления и кванты времени, описание вычислительных экспериментов с которыми выходят за рамки данной статьи. В целом, применение указанных подходов к решению поставленной задачи показало эффективность технологии параллельного решения систем булевых уравнений. Для получения более общего вывода о преимуществах гибридного подхода будут проведены дальнейшие эксперименты с привлечением более мощной вычислительной техники и дополнительных тестовых задач.

Дальнейшее направление исследований связано с улучшением характеристик параллельного решателя ИК РЕБУС, улучшением граничных оценок расщепления, подбора кванта времени, выделяемого подзадачам и новыми эвристиками для системы PSM. Планируется модификация системы

для проведения распределенных параллельных

расчетов в гетерогенной вычислительной среде.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Modem Parallel SAT-Solvers / Holldobler Steffen, Norbert Manthey, Van Hau Nguyen, Julian Stecklina, Peter Steinke [Electronic Resources] // Technical report, TU Dresden, Knowledge Representation and Reasoning, 2011. URL: http://www.wv.inf.tu-dresden.de/Publications/2011 /report11-06.pdf. (24. 01.2013).

2. Крюков В. А. Разработка параллельных программ для вычислительных кластеров и сетей // Информационные технологии и вычислительные системы. 2003 № 1-2. С. 42-60.

3. Daniel Singer, Alain Vagner. Parallel Resolution of the Satisfiability Problem (SAT) with OpenMP and MPI // Parallel Processing and Applied Mathematics. Lecture Notes in Computer Science Volume 3911, 2006, Р 380-388.

4. Rolf Rabenseifner. Hybrid Parallel Programming on HPC Platforms // Published in the proceedings of the Fifth European Workshop on OpenMP, EWOMP '03, Aachen, Germany, Sept. 22-26, 2003. URL: www.compunity.org. (Дата обращения 26. 01.2013).

5. Горшков С. П., Применение теории NP-полных задач для оценки сложности решения систем булевых уравнений // Обозрение прикладной и промышленной математики. Сер.: Дискретной математики, 1995. Т. 2. Вып. 3. С. 325-398.

6. Опарин Г. А., Богданова В. Г., Макеева Н. Г. Инструментальная среда параллельного решения систем булевых уравнений // Современные технологии. Системный анализ. Моделирование. 2009. №3. С. 62-68.

7. Васильев С. Н., Опарин Г. А., Феоктистов А. Г., Сидоров И. А. Интеллектуальные технологии и инструментальные средства создания вычислительной инфраструктуры в сети Интернет // Вычислительные технологии. Спец. Выпуск. 2006. Т. 11. С. 34-44.

8. Монитор параллельного решения Sat-задач на кластере с SMP-узлами : свидетельство об официальной регистрации программы для ЭВМ № 2012618307 / Горский С. А., Богданова В. Г. М. : Федеральная служба по интеллектуальной собственности, патентам и товарным знакам, 2012.

9. Haken A. The Intractability of Resolution // Theor. Comp. Sci. 1985. № 39. P. 297-308.

10. Окунев Л. Я. Комбинаторные задачи на шахматной доске. М. : НКТП, 1935. 87 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.