Ocaml和其他语言的基于Actor的分布式并发库

时间:2011-09-27 09:00:45

标签: scala erlang ocaml distributed actor

问题

有人可以为Ocaml推荐一个库,为分布式计算提供基于actor的并发模型吗?

这里注意“基于actor”和“分布式” - 我喜欢基于actor的模型,但我也希望无缝处理分布式actor - 我不想编写协议来与他们交谈。理想情况下,图书馆还应提供标准模式,如主管树等。


动机

我喜欢Erlang并发模型以及透明地处理分布式流程和本地流程的能力。但是,我发现Erlang的语法相当有限,并且想要一种更具表现力的语言。我正在考虑从Erlang迁移到Scala或Ocaml。

我知道Scala有一个Akka库,似乎提供了一个很好的Scala版本的Erlang并发模型。我想看看Ocaml方面的可用内容。


除了

我也很高兴听到其他语言(特别是C ++,Haskell,Python和Ruby)的基于actor的并发库。

5 个答案:

答案 0 :(得分:11)

虽然它可能与Erlang使用的模型不完全相同,但您可能需要查看基于连接微积分的JoCaml

答案 1 :(得分:5)

您可以查看parvel - ocaml的消息传递库/框架。它尚未完成,但已包含一些与演员编程的原语。

答案 2 :(得分:3)

“我正在考虑从Erlang迁移到Scala或Ocaml。”

你应该考虑scalang,它允许你在Scala中编程,但是使用Erlang的actor。

我最近在Strange Loop会议上看到了@moonpolysoft(Cliff Moon)关于该语言的演讲。 Cliff Moon为https://boundary.com/开发了它,并在今年早些时候开源。

答案 3 :(得分:2)

你可能会花很多时间阅读:

Scala和F#有akka和MailboxProcessor正在生产应用程序中使用(注意:Scala演员,我认为,akka,与Hotspot非常相关;我不确定MailboxProcessor是否可以在MONO)

Haskell有用户空间线程和at least 1 actor implementation我不太了解

对于ML和ocaml,一些可能没有广泛使用的库:poly/MLoc4mc

netmulticore

答案 4 :(得分:1)

虽然这是一个非常古老的问题,但事情发生了变化。 C ++有一个非常健壮的actor模型实现。它还提供OP要求的分布式计算功能。主页位于http://actor-framework.org/

此外,它还可以使我们的OpenCL for HPC模块位于其中一个存储库的github。