Performance MPI执行时间中的异常行为

Performance MPI执行时间中的异常行为,performance,mpi,cluster-computing,Performance,Mpi,Cluster Computing,当我使用MPI在N个不同节点上运行同一作业的N个副本时,我有独占访问权,并且每次都会获得不同的执行时间,以便所有进程完成,您认为最可能的原因是什么?每次运行的执行时间差异可能高达100%!进程在每次运行时都执行相同的操作,没有任何随机因素会使执行时间因运行而异。您的问题来自[基于MPI的进程和进程内的MPI线程]与其他进程之间的调度问题 一个经过实践检验的解决方案,可实现实时性: 在处理传入数据和/或命令(作业)的MPI接收器线程上强制执行CPU关联 确保在所有节点上运行的非有用进程(基于MPI

当我使用MPI在N个不同节点上运行同一作业的N个副本时,我有独占访问权,并且每次都会获得不同的执行时间,以便所有进程完成,您认为最可能的原因是什么?每次运行的执行时间差异可能高达100%!进程在每次运行时都执行相同的操作,没有任何随机因素会使执行时间因运行而异。

您的问题来自[基于MPI的进程和进程内的MPI线程]与其他进程之间的调度问题

一个经过实践检验的解决方案,可实现实时性:

  • 在处理传入数据和/或命令(作业)的MPI接收器线程上强制执行CPU关联

  • 确保在所有节点上运行的非有用进程(基于MPI的应用程序除外)更少(没有)。这将减少基于MPI的应用程序cpu时间块上的其他进程


  • 两个问题:你确定你没有在MPI_Init之前调用MPI_Wtime(假设你是这样计时的)?另外,您是否尝试在开始计时之前插入初始MPI_屏障以排除进程创建等?我使用clock_gettime在程序中的两点之间计时,这是在MPI初始化之后。