Подтвердить что ты не робот

Распределенные библиотеки concurrency на основе актера для Ocaml и других языков

Вопрос

Может ли кто-нибудь рекомендовать библиотеку для Ocaml, которая предлагает основанную на актерах модель concurrency для распределенных вычислений?

Обратите внимание на "актер-основанный" и "распределенный". Мне нужна модель на основе актера, но я также хочу, чтобы без проблем работала с распределенными участниками - я не хочу писать протокол, чтобы поговорить с ними. В идеале библиотека также должна предлагать стандартные шаблоны, такие как деревья супервизора и т.д.


Мотивация

Мне нравится модель Erlang concurrency и способность прозрачно обрабатывать распределенные процессы и локальные процессы вместе. Тем не менее, я считаю синтаксис Эрланга довольно ограниченным и хотел бы получить гораздо более выразительный язык. Я рассматриваю переход из Erlang в Scala или Ocaml.

Я знаю, что Scala имеет библиотеку Akka, которая, кажется, предлагает приятную версию модели Scala модели Erlang concurrency. Я хотел бы посмотреть, что доступно на стороне Ocaml.


Помимо

Я также был бы рад услышать о основанных на актерах библиотеках concurrency для других языков (в частности, С++, Haskell, Python и Ruby).

4b9b3361

Ответ 1

Хотя это может и не быть той же самой моделью, которую использует Erlang, вы можете взглянуть на JoCaml, которая основана на исчислении соединения.

Ответ 2

Вы можете взглянуть на parvel - библиотеку/структуру передачи сообщений для ocaml. Он еще не завершен, но уже включает в себя некоторые примитивы для программирования с актерами.

Ответ 3

"Я рассматриваю переход из Erlang в Scala или Ocaml.

Вам следует рассмотреть scalang, который позволяет вам программировать в Scala, но использовать актеров Erlang.

Недавно я увидел разговор на языке @moonpolysoft (Cliff Moon) на конференции Strange Loop. Cliff Moon разработал его для https://boundary.com/ и открыл его в начале этого года.

Ответ 4

Вероятно, вы потратите много времени на чтение:

Scala и F # имеют akka и MailboxProcessor, которые используются в производственных приложениях (примечание: Scala актеры и, я думаю, akka, очень привязаны к Hotspot, я не уверен, что MailboxProcessor можно использовать в MONO)

В Haskell есть потоки пользовательского пространства и как минимум 1 актерская реализация, о которой я мало что знаю о

Для ML и ocaml некоторые библиотеки, которые, вероятно, широко не используются: poly/ML и oc4mc

и netmulticore

Ответ 5

Хотя это очень старый вопрос, все изменилось с тех пор, как его спросили. С++ имеет реалистичную модель актера, которая довольно надежна. Он также предоставляет распределенные вычислительные функции по запросу OP. Домашняя страница находится на http://actor-framework.org/

Кроме того, он также может сделать нас OpenCL для HPC, модуль, для которого расположен в github в одном из хранилищ.