/ / Bibliotecas de concurrencia distribuidas basadas en actores para Ocaml y otros lenguajes: scala, erlang, ocaml, distribuido, actor

Bibliotecas de concurrencia distribuidas basadas en actores para Ocaml y otros lenguajes: scala, erlang, ocaml, distribuido, actor

Pregunta

¿Alguien puede recomendar una biblioteca para Ocaml que ofrece una modelo de concurrencia basado en actores para Computación distribuída?

Tenga en cuenta aquí el "basado en el actor" y "distribuido" -Me gustaría el modelo basado en actores, pero también quiero un manejo perfecto de los actores distribuidos, no quiero escribir el protocolo para hablar con ellos. Lo ideal es que la biblioteca también ofrezca patrones estándar tales como árboles supervisores, etc.


Motivación

Me encanta el modelo de concurrencia de Erlang y la capacidad deTratar de forma transparente los procesos distribuidos y los procesos locales juntos. Sin embargo, creo que la sintaxis de Erlang es bastante limitada y me gustaría un lenguaje mucho más expresivo. Estoy considerando mudarme de Erlang a Scala o Ocaml.

Sé que Scala tiene la biblioteca Akka que parece ofrecer una buena versión de Scala del modelo de concurrencia de Erlang. Me gustaría ver qué hay disponible en el lado de Ocaml.


Aparte

También me encantaría saber acerca de las bibliotecas de concurrencia basadas en actores para otros idiomas (especialmente C ++, Haskell, Python y Ruby).

Respuestas

10 por respuesta № 1

Si bien puede que no sea exactamente el mismo modelo que utiliza Erlang, es posible que desee echar un vistazo a JoCaml, que se basa en el cálculo de unión.


4 para la respuesta № 2

Puedes echar un vistazo a parvel - Pasar mensaje a la librería / framework para ocaml. Aún no está completo, pero ya incluye algunas primitivas para la programación con actores.


2 para la respuesta № 3

"Estoy considerando mudarme de Erlang a Scala o Ocaml".

Debes considerar scalang, que te permite programar en Scala, pero usar los actores de Erlang.

Hace poco vi una charla sobre el idioma de @moonpolysoft (Cliff Moon) en la conferencia Strange Loop. Cliff Moon lo desarrolló para https://boundary.com/ y de código abierto a principios de este año.


2 para la respuesta № 4

Probablemente pasará mucho tiempo leyendo sobre:

Scala y F # tienen akka y MailboxProcessor que se están utilizando en aplicaciones de producción (nota: los actores de Scala y, creo, akka, están muy ligados a Hotspot; no estoy seguro de si MailboxProcessor se puede usar en MONO)

Haskell tiene hilos de espacio de usuario y al menos 1 actor de implementación que no sé mucho acerca de

Para ML y ocaml, algunas libretas que probablemente no se usan ampliamente: poli / ML y oc4mc

y netmulticore


1 para la respuesta № 5

Aunque, es una pregunta muy antigua, las cosas tienenCambiado desde que se le preguntó. C ++ tiene una implementación de modelo de actor que es bastante robusta. También proporciona funciones de computación distribuida según lo solicitado por OP. La página de inicio está en http://actor-framework.org/

Además, también nos puede hacer de OpenCL para HPC el módulo para el cual se encuentra en github en uno de los repositorios.