MPI单边消息时代
我们正在调整一个依赖MPI窗口和单边消息的基准测试。我们发现了一些关于基准测试的非常奇怪的行为,这与我们使用MPI_Win_fence调用推动窗口时代的频率有关。是否有一种标准方法来调整围栏窗口的频率 考虑以下伪代码:MPI单边消息时代,mpi,openmpi,Mpi,Openmpi,我们正在调整一个依赖MPI窗口和单边消息的基准测试。我们发现了一些关于基准测试的非常奇怪的行为,这与我们使用MPI_Win_fence调用推动窗口时代的频率有关。是否有一种标准方法来调整围栏窗口的频率 考虑以下伪代码: MPI_Win_fence(0,AWin); for( i=0; i<iters; i++ ){ MPI_Compare_and_swap(...) if( (i%Foo) == 0 ){ MPI_Win_fence(0,
MPI_Win_fence(0,AWin);
for( i=0; i<iters; i++ ){
MPI_Compare_and_swap(...)
if( (i%Foo) == 0 ){
MPI_Win_fence(0, AWin);
}
}
MPI_Win_fence(0,AWin);
MPI\u-Win\u围栏(0,AWin);
对于(i=0;i=100000)(并增长到1M+)。我们发现,对于在节点之间唯一分布的少量列组(纯分布式内存),基准测试挂起在窗口上,永远无法完成。我们尝试了Foo
的模10、50、100、1000等。在两个节点上使用两个列时,所有这些都挂起。但是,在三个节点上运行相同的基准测试(相同的算法,Foo
的相同值),基准测试运行良好。我们目前正在使用OpenMPI4.1.0,它是使用GCC7.5.0在1GbE上编译的