什么图书馆存在其他的编程语言提供的有爱尔兰风格的并发模型(进程、邮箱模式匹配的收,等等)?

注:我特别感兴趣的东西都是旨在为以类似于爱尔兰,不是任何线或排队图书馆。

有帮助吗?

解决方案

消息传递接口(MPI)(http://www-unix.mcs.anl.gov/mpi/)是一个高度可伸缩的和强大的图书馆并行程序,旨原朝C但现在可以在几个味道 http://en.wikipedia.org/wiki/Message_Passing_Interface#Implementations.同时,图书馆不会引进新法,它提供了一个通信协议,以协调之间分享数据惯例是并行.

传统上,它是用于大型的集群计算,而不是在一个单一的系统并发,尽管多核心系统当然可以利用这个图书馆。

另一个有趣的问题的解决方案的并行程序是于,这是试图提供一个便携式扩展在各种平台上提供的提示来编译器什么的章节的代码很容易并行.

例如(http://en.wikipedia.org/wiki/OpenMP#Work-sharing_constructs):

#define N 100000
int main(int argc, char *argv[])
{
  int i, a[N];
  #pragma omp parallel for
  for (i=0;i<N;i++) 
     a[i]= 2*i;
  return 0;
}

有的优点和缺点,当然,但是前者已被证明是非常成功的,在学术界和其他重科学的计算应用程序。情况因人而异。

其他提示

Ulf Wiger 有一个很大的后最近关于这一主题-这里都是性能他的定义之前,需要可以叫什么"爱尔兰风格的并发":

  • 快过程中创建/销毁
  • 支持能力>>10 000并行进程与大致保持不变的特征。
  • 快步信息的传递。
  • 复制消息传递义(分享-没有什么并发).
  • 过程的监测。
  • 选择性的信息的接收。

编号2以上是最难以支持虚拟机和语言实现的,这不是最初设计并发。这不是敲二郎上下的并发实现在其他语文,但很多朗的价值来自能够创建 数以百万计 的进程,这漂亮的该死的努力,如果处理的抽象有1-1的关系有一个操作系统-水平线或进程。Ulf有很多在这上面的链接。

斯支持行为者。但是我不会把斯卡拉故意类似于二郎.

尽管如此卡拉绝对是值得考虑一下!

Microsoft 并发和运行时的协调 为。网。

CCR是恰当的 应用程序模型,该模型将 组成了碎片就可以 互动只能通过的消息。组件在此模型中需要装置 坐标之间的信息,处理 复杂故障的情况下,和 有效地处理异 编程。

kilim 是图书馆为java,带来了爱尔兰风格的消息传/行动者Java的语言。

迈克Rettig创建一个.净图书馆叫 Retlang 和一个Java口称为Jetlang这是灵感来自爱尔兰的并发模型。

Microsoft不生产-准备好回答朗: Microsoft阿克苏姆

为蟒蛇,你可以尝试使用 处理模块.

白蚁 为开端的方案。

如果您使用的是红宝石,看看Revactor:[http://revactor.org/][1]

Revactor是一个演员模式的实施,红宝1.9建立在转高性能的活动图书馆。Revactor是主要设计用于编写朗-等网络服务和工具。

看看这个代码样本:

  myactor = Actor.spawn do
    Actor.receive do |filter|
      filter.when(:dog) { puts "I got a dog!" }
    end
  end

Revactor只运行的红宝石1.9.我相信提交人的图书馆已经停止维持,但文件上,他们的网站是非常好的。

你可能还想要看看区域环境影响评价:红宝石-如脚本语言建立在爱尔兰的虚拟机。区域环境影响评价是新项目的创建者的Revactor:托尼Arcieri.

警告:无耻的插头!

我开发了一个图书馆为这样的消息传递在Haskell:二郎山风格的分布Haskell.

Volker

JoCaml 延伸OCaml与参加演并发和分发程序。

Akka(http://akka.io)是严重影响尔朗OTP。它建立在卡拉的行动者,是伟大的并发JVM。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top