有人可以为Ocaml推荐一个库,为分布式计算提供基于actor的并发模型吗?
这里注意“基于actor”和“分布式” - 我喜欢基于actor的模型,但我也希望无缝处理分布式actor - 我不想编写协议来与他们交谈。理想情况下,图书馆还应提供标准模式,如主管树等。
我喜欢Erlang并发模型以及透明地处理分布式流程和本地流程的能力。但是,我发现Erlang的语法相当有限,并且想要一种更具表现力的语言。我正在考虑从Erlang迁移到Scala或Ocaml。
我知道Scala有一个Akka库,似乎提供了一个很好的Scala版本的Erlang并发模型。我想看看Ocaml方面的可用内容。
我也很高兴听到其他语言(特别是C ++,Haskell,Python和Ruby)的基于actor的并发库。
答案 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我不太了解
答案 4 :(得分:1)
虽然这是一个非常古老的问题,但事情发生了变化。 C ++有一个非常健壮的actor模型实现。它还提供OP要求的分布式计算功能。主页位于http://actor-framework.org/
此外,它还可以使我们的OpenCL for HPC模块位于其中一个存储库的github。