有没有适合这种情况的并行框架?

时间:2019-04-25 13:05:24

标签: parallel-processing cluster-computing

我想知道是否有适合这种情况的框架。

  

例如,我有3个从属计算机,10个处理任务,每个任务都有一定的处理时间,并且任务之间存在处理依赖性。因此,如何有效地将10个任务分配给3个从属计算机,让它们执行高性能计算。   考虑到从机之间存在通信开销。例如,无关紧要的任务放在从属上。

以下是示例代码,

任务1.(node1)

callback receive(msg){
   print(msg); 
   reply(ack);
}
loop(){
   ...// initializing
   ..// do computing
   ..// sampling data.
   prepare_packet(&packet);
   send(packet, len(packet), node2);
   wait_for_packet(TIME_OUT);
   delay(1000);
}

任务2(节点2)

callback receive(msg){
   print(msg); 
   reply(ack);
}
loop(){
   ...// initializing
   ..// do computing
   ..// sampling data.
   prepare_packet(&packet);
   send(packet, len(packet), node1);
   wait_for_packet(TIME_OUT);
   delay(1000);
}

以上是用于说明处理任务及其关系的简单示例。 我们发现节点1(任务1)和节点2(任务2)之间存在通信行为。如果节点1和节点2在不同的计算机上执行,则执行速度可能会因各种计算机性能而有所不同。然后,每个节点都将等待另一个节点来执行任务。

例如,当节点1在时间(t1,t5)内执行wait_for_packet时,它将等待并查看是否有来自节点2的数据包,以确定是否可以触发回调函数receive

那么,是否有任何计算框架可以满足上述要求? 谢谢!

0 个答案:

没有答案