MPI单边消息时代

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窗口和单边消息的基准测试。我们发现了一些关于基准测试的非常奇怪的行为,这与我们使用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, 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上编译的