我正在尝试使用 OpenMPI 将数据分布在多个工作人员之间,但是,我正在以一种相当自定义的方式进行数据划分,这种方式不适合MPI_Scatter
或MPI_Broadcast
. 我想做的是让每个处理器在队列中(或其他一些异步机制)做一些工作,这样他们就可以在第一个数据块上完成工作,获取下一个块,重复直到没有更多块。
我知道MPI_Isend
,但是如果我发送数据,MPI_Isend
则在发送完成之前无法修改它;强迫我使用MPI_Wait
,因此不得不等到线程完成接收数据!
是否有解决此问题的标准方法,还是我必须重新考虑我的方法?