2017-09-04 149 views
0

我开展图搜索算法的研究。在这项研究中,为了比较两种算法的运行时间性能,可靠地(即可重新生成)测量单线程程序的运行时间的能力是极其重要的。运行时间是在程序内部测量的(用C++编写的),并且不包括任何对二级存储器的访问(只发生在初始输入阶段)。我曾经有权访问真实(即非云)HPC群集的专用节点。我记得,当我在这样一个节点上运行程序两次(使用相同的输入)时,我得到的时间测量结果只有百分之几的不同。问题是:我可以在云HPC平台上获得如此可靠的时间测量吗?云高性能计算的可靠时间测量

为了更多地证明这个问题,对于一些算法和问题实例,我的程序可能会使用大量的内存(比如64GB)。如果我理解正确,即使承诺没有超线程和专用内存的专用内核的云平台也会构建虚拟机来满足这种内存要求。组成该虚拟机的节点在两次运行之间可能不同,导致不同的通信开销,并因此导致不同的时间测量。因此,重复一个问题:我可以在云HPC平台上获得可靠的时间测量吗?

回答

1

根据herehere中描述的讨论和经验,似乎可以安全地说,您不应该期望测量结果总是相似。

虽然,我认为根据测试次数,测试持续时间以及测试运行之间测试VM的分配/释放,您可以达到可接受的可靠程度。

+0

谢谢你的伟大的指针。这些文章是专门针对* Microsoft *平台的,它可能会为* Linux *下开发的程序描述可移植性问题。 – AlwaysLearning