Существуют ли реализации параллельной версии алгоритма Рете?

Я провел некоторое исследование алгоритма Рете и нашел несколько статей о том, как сделать его параллельным (как сопоставление, так и запуск правил), самые ранние из которых относятся к середине 80-х годов. Однако я не могу найти никакой информации о какой-либо параллельной реализации ни в одном из механизмов правил, представленных сегодня на рынке. Я понимаю, что запуск параллельных правил проблематичен, но есть несколько предлагаемых решений. Реализует ли какой-либо механизм правил какую-либо параллельную версию Rete? Если да, то какие? Если нет, то почему? Слишком сложно добиться значительного прироста производительности или есть другие причины? Любые ссылки на дополнительную информацию приветствуются.


person hyldetoft    schedule 15.05.2012    source источник


Ответы (1)


Я верю, что ReteNT знает.

Этим летом мы работаем над чем-то для проекта Drools, я надеюсь, что к концу этого года у нас будет что-то прототипное. Мы подходим к этому с двух сторон. 1) Алгоритм слияния Rete и Leaps, который обеспечивает ленивое бета-распространение, а оценки выполняются на основе курсора правила (упрощает параллельную оценку правил). 2) Переход от распространения коллекции на основе кортежа к распространению. Это позволит планировать узлы как задачи. Дальнейшие узлы с большим количеством объектов могут быть локально «уменьшены на карте» для дальнейшего распараллеливания создания коллекции, которая будет распространяться из узла.

Если вы хотите больше общаться, присоединяйтесь к нам в irc :) http://www.jboss.org/drools/irc

person Mark Proctor    schedule 16.05.2012