Распределенные параллельные библиотеки на основе акторов для Ocaml и других языков - PullRequest
16 голосов
/ 27 сентября 2011

Вопрос

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

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


Мотивация

Мне нравится модель параллелизма Erlang и способность прозрачно работать с распределенными процессами и локальными процессами вместе. Однако я нахожу синтаксис Эрланга довольно ограничивающим и хотел бы гораздо более выразительного языка. Я подумываю о переезде из Эрланга в Скалу или Окамль.

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


Помимо

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

Ответы [ 5 ]

11 голосов
/ 27 сентября 2011

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

5 голосов
/ 29 сентября 2011

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

3 голосов
/ 30 сентября 2011

«Я подумываю о переходе из Эрланга в Scala или Ocaml.»

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

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

2 голосов
/ 03 октября 2011

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

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

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

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

и netmulticore

1 голос
/ 10 апреля 2016

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

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

...