我想使用 MPI 开发一个任务调度程序,其中有一个主处理器并且有工作/客户端处理器。每个工作人员都有它需要计算的所有数据,但从主服务器获取索引来处理。计算完成后,worker 将一些数据返回给 master。问题是有些进程会很快,有些进程会很慢。如果我运行一个循环,以便在每次迭代中主机发送和接收(阻塞/非阻塞)数据,那么它无法继续下一步,直到它从分配给它的上一个索引中接收到来自当前工作人员的数据。底线是,如果一个 worker 的计算时间过长,那么它就会成为限制因素,即使使用了非阻塞技术,master 也无法继续为下一个 worker 分配索引。
我开始认为 MPI 可能不是这样做的范例。python会是一个很好的平台来进行任务调度吗?