对不起,如果这个问题是常见或微不足道的,我对MPI不是很熟悉,所以请耐心等待。MPI同步矩阵的向量
我有一个向量矩阵。每个矢量都是空的或者有几个项目。
std::vector<someStruct*> partitions[matrix_size][matrix_size];
当我启动程序的每个进程将在这个矩阵相同的数据,但随着代码的进展每个进程可能会从一些载体删除多个项目,并把他们在其他载体。
所以当我到达障碍时,我不知何故必须确保每个进程都有这个矩阵的最新版本。最大的问题是每个进程都可能操纵任何或所有的向量。
我该如何去确保每个进程在屏障后都有正确的更新矩阵?编辑: 对不起,我不清楚。每个进程可以将一个或多个对象移动到另一个向量,但只有一个进程可以移动每个对象。换句话说,每个进程都有一个可能移动的对象列表,但矩阵可能会被所有人改变。而且两个进程无法移动同一个对象。
如果每个处理器都操纵任何可能的元素,那么你会怎样决定“正确更新的矩阵”是什么? – 2013-03-05 13:11:19
对不起,我不清楚。每个进程可以将一个或多个对象移动到另一个向量,但只有一个进程可以移动每个对象。 – Chippen 2013-03-05 13:25:09