2011-10-03 22 views
0

当我在N个不同的节点上运行同一作业的N个副本时,我有MPI独占访问权限,每次执行完所有进程都会得到不同的执行时间,你认为最可能的原因是什么?每次运行的执行时间差异可高达100%!这些进程每次运行都执行相同的操作,没有随机元素可以使执行时间因运行而异。MPI执行时间中的异常行为

+0

有两个问题:你确定你没有在MPI_Init之前调用MPI_Wtime(假设你正在计时)?您是否还尝试在开始计时以排除流程创建之前尝试插入初始MPI_Barrier? – Quantumboredom

+0

我是使用clock_gettime的程序中的两点之间的时间点,这是在MPI初始化之后。 – Tarek

回答

0

您的问题来自您的进程中[基于MPI的进程和MPI线程]之间的调度问题以及其他进程。

一个很好的尝试和测试溶液以使其实时:

  1. 强制对处理传入数据和/或命令(作业)的MPI接收机线程CPU亲和力。

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