Решение рекуррентных задач с помощью технологии CUDA

Всем доброго времени суток. Сразу извинюсь, за возможные некорректные формулировки и т.д. Только недавно начал изучать эту задачу, да и вообще не слишком опытный пользователь. В-первые решил обратиться за советам к интернет сообществу). Честно не знал куда податься, так как помощи по большей части ждать не от куда.
Данную задачу решаю в рамках моей курсовой работы. Общий вид задачи:
Программа (реализация предполагает использование CUDO, соответственно пишу на расширенном C), считывая КНФ с файла формата Dimacs. Пример как выглядит данный формат:

p cnf 3 5
1 2 0
-1 3 0
-3 2 0
-2 1 3 0
-3 1 0

Тут мы имеем: в первой строке после ключевых фраз два параметра, который обозначают количество переменных и количество литералов. В данном примере 3 и 5 соответственно. Ниже идут сами литералы, 0 - означает конец литерала. Т.е. данная формула в более привычном виде будет выглядеть следующим образом:

(X1 or X2) and (-X1 or X3) and (-X3 or X2) and (-X2 or X1 or X3) and (-X3 or X1)

Далее, необходимо создать всевозможные наборы переменных. Для данного примера:

000
001
010
011
100
101
110
111

А затем, с помощью CUDO, отправляя на каждую нить исключительный набор переменных и собственно саму КНФ (уже переведенную с Dimacs формата). Найти решение данной формулы. Задачу можно считать решенной, как только хотя бы одна из нитей, на своем наборе параметров найдет правильное решение.

Собственно, сейчас я на первом шаге - считывание формулы. Еще до конца не определился с выбором организации структур данных. Буду рад любой помощи и любым советам как по конкретной реализации, так и по задачи в целом.

Контакты:
Skype: R100500B
ICQ: 243402199

Forums: 

Что понимается под решением?

Что понимается под решением? Набор параметров при котором функция истина/ложна?
По тексту вашего сообщения, у меня сложилось впечатление, что вы плохо представляете как решить эту задачу с помощью обычных средств, не так ли? Если да, то для начала нужно реализовать алгоритм обычными средствами, искать ответы на соответствующих форумах.

Совет по реализации - не надо отправлять на каждый поток набор переменных. Лучше вычислять набор переменных в зависимости от ID потока(может ещё от какого-нибудь параметра).