1

我正在尝试测试我用 C++ 编写的算法的性能。我使用我的大学计算集群(通过 SGE)

问题是我不知道服务器何时已满或没有其他计算,因此我无法测量有效的用户时间(我假设只要进程如此繁忙,它就不会改变,我我错了?)

用户时间不是用来计算和比较算法之间时间性能的时间吗?因为对于相同的执行,我没有得到相同的结果

4

3 回答 3

1

如果您是分时共享,则算法的运行时间会因运行而异。

你试过shelltime命令吗?

time [MY PROGRAM]

或者,为了获得更多信息,GNU Time命令?

/usr/bin/time <MY PROGRAM> [ARGS]

这些命令将是一个容易开始的地方,并将为您提供一些您需要的信息。

另外,您提到了一个集群,也许您正在使用 MPI 或其他框架?也许这个框架有一些内置的计时命令(我不确定这些东西是否存在,但它可能值得研究)。

于 2012-12-10T18:02:25.960 回答
0

为了比较性能指标,您确实希望消除“用户时间”这一噪音。那里有很多很好的分析工具。您可以查看您的大学是否有其中之一可供您使用。

于 2012-12-10T18:01:28.987 回答
0

您可以编写小标准测试。该测试将代表“1”。然后您的复杂应用程序将被相对测量。例如,您的应用程序将进行 4 次标准测试。您需要同时运行标准测试和应用程序。

于 2012-12-10T18:03:06.417 回答