如何用Linux c++实现一台主机控制多台从机



谁能给一些建议,如何实现主机控制一些从机通过c++ ?

我正在尝试实现一个简单的程序,可以将任务从主分发到从。实现一台主机+一台从机很容易。但是,当有多个从机时,我不知道如何设计。

如果这个解决方案可以同时用于Linux和Windows,那就更好了。

您应该使用一个框架,而不是自己创建一个框架。您需要搜索的是Cluster ComputingBoost可能很容易实现。MPI

使用n台机器时,您需要跟踪哪些机器是空闲的,如果没有,则在slave上加载(即每个机器上排队的任务数量),然后在最低负载的机器上排队(或您的算法认为最好的机器),例如更好的硬件意味着某些slave比其他slave执行得更好等等。我会从一个简单的分配算法开始,然后在它工作后进行调整…

在特殊情况下会出现更有趣的问题(例如奴隶死亡,以及各种类似的问题)

我会使用现有的消息传递总线使您的工作更轻松(而不是重新发明),真正的智能在于分发算法和失败节点的管理。

我们需要知道更多,但基本上你只需要确保slave不会相互阻塞。在c++中这样做的细节将涉及到,但首先要做的是问自己算法是什么。最简单的情况是如果你不关心等待奴隶,在这种情况下你有

while still tasks to do
   launch a task on a slave

如果你只需要在一个从服务器上运行一个作业,那么你就需要一个标志数组,每个从服务器一个标志

 slaves : array 0 to (number of slaves - 1)
 initialize slaves to all FALSE
 while not done
    find the first FALSE slave -- it's not in use
    set that slave to TRUE
    launch a job on that slave
    check for slaves that are done
    set that slave to FALSE

现在,如果你有多个线程,你可以把它变成两个线程

 while not done
    find the first FALSE slave -- it's not in use
    set that slave to TRUE
    launch a job on that slave
 while not done
    check for slaves that are done
    set that slave to FALSE

相关内容

  • 没有找到相关文章

最新更新