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

我研究了 MPI(及其一些实现),但据我所知,它涉及为每个任务创建一个可执行文件,并使用 mpirun. 。我不排除它,我只是希望它嵌入到应用程序中,而不是作为外部可执行文件(如果可能)。

SO 用户,您知道这样的框架(最好是开源的)吗?另外,为了让我下定决心,一些使用示例会很好。

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

任何建议,尤其是代码示例,都将受到高度赞赏。

有帮助吗?

解决方案

除了 MPI 之外,我还想到了四种系统:AMQP, 零MQ, 齐尔克, 和演员。

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

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

我没有太多经验 齐尔克 除此之外,它是 MIT 大力支持的项目,旨在与 C/C++ 一起使用。

Actor 是一种抽象,有助于本地/分布式并发,由 Erlang 和最近的 阿卡 项目(Scala、Java)。我所知道的 C++ 兼容版本有 Theron、Actor-CPP 和 libcppa,尽管我不确定其中哪些支持远程 Actor。

其他提示

我认为 榛卡斯特 正是这样的事情;可嵌入分布式计算。不过是java语言,不是C语言。但你可以从 Java 调用 C。

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