便携式网格引擎平台

时间:2012-09-29 20:41:49

标签: c++ c distributed-computing grid-computing

我正在寻找一种可以轻松嵌入到应用程序中的分布式计算平台。

我调查了MPI(以及它的一些实现)但是从我看到它涉及为每个任务创建一个可执行文件并使用mpirun启动。我不排除它,我只是想将它嵌入到应用程序中,而不是作为外部可执行文件(如果可能的话)。

SO用户是否知道这样的框架(最好是开源的)?另外,为了让我明白一些使用样本会很好。

如果可能的话,我对跨平台解决方案感兴趣,因为局域网中要部署解决方案的站点是异构的。

非常感谢任何建议,特别是代码示例。

2 个答案:

答案 0 :(得分:3)

除了MPI之外,我还想到了四个系统:AMQP,ZeroMQCilk和演员。

AMQP使用消息传递在系统之间进行通信,使用中央消息代理来处理/分发消息。一些实现保证正确传递到接收器但速度较慢(类似于TCP)。一些实现是火灾和遗忘,不允许保证交付,但更快(类似于UDP)。注意AMQP是一种协议,而不是实现 - 流行的实现包括ActiveMQRabbitMQ

ZeroMQ有点类似于AMQP减去中央消息代理。它基本上是Actors风格我认为,它更具编程性,允许您以端到端的方式设计您的系统。它是分散的(没有中央消息代理),基准测试似乎表明它比AMQP实现快得多。

我没有太多使用Cilk的经验,除了它是来自麻省理工学院的一个受到良好支持的项目,旨在与C / C ++一起使用。

Actors是一个抽象来帮助本地/分布式并发,由Erlang和最近的Akka项目(Scala,Java)推广。我所知道的C ++兼容版本是Theron,Actor-CPP和libcppa,但我不确定哪些支持远程演员。

答案 1 :(得分:0)

我认为Hazelcast就是那种东西;可嵌入的分布式计算。但是它在java中,而不是C.但是你可以从Java调用C语言。