В настоящее время я занимаюсь некоторыми исследованиями в области теоретической информатики, и одним из основных инструментов, которые я использую, является пролог. Я нашел его особенно удобным для написания очень быстрых тестов, чтобы опровергнуть догадки.Есть ли автоматическая параллельная реализация пролога?
Однако я дошел до того, что поиск грубой силы становится слишком медленным. Хотя я мог бы использовать другой язык, все мое использование пролога заключается в том, что очень быстро/просто написать код для проверки гипотезы.
Мне интересно, существует ли реализация Prolog, которая позволяет автоматически парализоваться? Это не должно быть бритвой быстро, но в идеале я ищу что-то, что я мог бы просто выбросить свой код и получить хотя бы небольшое ускорение.
Я не знаю, возможно ли это. Поиск Google показывает множество академических статей об автоматическом параллелизме в Prolog, но я не встречал никаких реализаций. Тем не менее, я действительно знаком с SWI-прологом, поэтому я определенно мог бы использовать советы от знакомых со многими реализациями.
В моем коде используются разрезы, но я уверен, что смогу их устранить. Что касается IO, то только IO печатает на консоли, что, вероятно, может быть перемещено за пределы любого параллельного кода.
Я знаком с несколькими реализациями Prolog, и я сделал некоторые проекты, которые включают разделение поискового пространства на части, поэтому работа может быть распределена по нескольким машинам. Однако я не знаю каких-либо вариантов drop-and-go. Один из взглядов на неудачу компьютерных систем Японии Пятого поколения заключается в том, что параллелизм и логическое программирование плохо подходят. В статье [Wikipedia] (http://en.wikipedia.org/wiki/Fifth_generation_computer#Failure) упоминается об этом и ссылки на [этот документ arXiv.org] (http://arxiv.org/abs/0904.3036). – hardmath
См. Также [Логическое программирование и параллелизм: личная перспектива] (http://dtai.cs.kuleuven.be/projects/ALP/newsletter/may06/nav/articles/ueda/article.html) Казунори Уэды, который кажется для меня довольно оптимистичный взгляд. – hardmath
Я помню, как читал о «параллельных» и «параллельных» вариантах Prolog, но я не знаю, превратилось ли это в современные среды Prolog. –