将MS VC ++程序(单机)移植到rock群集时的注意事项

时间:2013-07-01 04:17:48

标签: cluster-computing rocks

我正在尝试移植MS VC ++程序以在岩石群上运行!我对linux不是很好,但我很想学习,我想移植它对我来说不是一件不可能完成的任务。但是,我不明白如何利用群集节点。因为似乎代码执行只在前端服务器上运行(显然)。

我已经阅读了一些关于MPI的内容,似乎我应该使用MPI在节点之间进行通信。目前编写的程序使得我有一个主线程来同步所有工作线程。主线程还接收命令来操纵模拟或查询其状态。如果正确设置了模拟,则可以显着减少执行线程之间的通信。我不明白的是如何在计算节点上启动该过程以及如何处理节点中的故障?也许在移植我的程序以在集群中运行时还应该考虑其他事项?

1 个答案:

答案 0 :(得分:1)

第一步是移植线程MS VC ++程序以在单个Linux机器上运行。

一旦超过这一点,然后修改程序以使用MPI和线程(或代替线程)。您也可以在一台计算机上执行此操作。

要在群集上的多个节点上运行程序,您需要将程序提交到群集使用的任何调度系统。此命令取决于用于Rocks群集的计划软件。问你的管理员。它可能看起来像mpirun -np 32 yourprogram

处理失败是节点是一个广泛的问题。你的第一遍可能只是报告失败,然后失败了程序。如果程序在集群上计算时间不长,那么重新启动程序,调整故障节点可能就足够了。除此之外,您的应用程序可以写入磁盘中间信息,以便从中断处继续。这称为检查点您的应用程序。因此,当节点发生故障时,作业将失败,但重新启动作业不会从头开始。更先进的是尝试实际检测节点故障并重新安排故障节点上的工作单元。这假设工作单元没有非幂等副作用。这种事情变得非常复杂。检查点可能已经足够好了。