我正在研究DMTCP(http://dmtcp.sourceforge.net/),我正在研究开发一个跨多个远程计算机工作的应用程序,并通过消息计算结果。例如,计算3台机器A,B,C
的Fibonacci序列A计算起始编号并将结果发送给B
B获取A的结果并使用它来计算下一个数字并将其发送给C.
我正在尝试构建这样一个应用程序,以便我可以检查它从故障重启。但是,我无法想象这样的应用程序的代码。这是我第一次使用任何分布式应用程序。
任何帮助都将受到高度赞赏:)
谢谢:)
更新:正如所建议的,我的机器不是一个集群,但我有多台机器,它们各自的操作系统通过LAN相互连接。我的主要目标是在多台机器上运行我的程序实例,以便它们可以如上所示进行通信。
我希望这会解决一些问题。
答案 0 :(得分:0)
你可以使用很多选项,我目前正在开发一个ZeroMq的项目,它可以很好地完成工作,任何other message queue software也是如此。你也可以尝试一些网格框架(想到IceGrid),但这很可能是一种过度杀伤。
对于ZeroMQ,请参阅推/拉+可能的路由器......优点是“ØMQ系统可以在没有专用消息代理的情况下运行”。缺点是你必须提出数据的序列化/反序列化(ØMQ不提供一个,这并不坏)。
另一种选择是google的Protocol Buffers。在这里,您将集成客户端/服务器和序列化/反序列化,但您必须学习新的元语言来定义消息。它们非常灵活 - 版本化,向后兼容性......它有点沉重。
答案 1 :(得分:0)
如果您的计算机是群集,则应使用MPI(消息传递接口)。它提供了丰富的通信原语,是高性能计算中的并行化主力。