我正在尝试测试我用 C++ 编写的算法的性能。我使用我的大学计算集群(通过 SGE)
问题是我不知道服务器何时已满或没有其他计算,因此我无法测量有效的用户时间(我假设只要进程如此繁忙,它就不会改变,我我错了?)
用户时间不是用来计算和比较算法之间时间性能的时间吗?因为对于相同的执行,我没有得到相同的结果
我正在尝试测试我用 C++ 编写的算法的性能。我使用我的大学计算集群(通过 SGE)
问题是我不知道服务器何时已满或没有其他计算,因此我无法测量有效的用户时间(我假设只要进程如此繁忙,它就不会改变,我我错了?)
用户时间不是用来计算和比较算法之间时间性能的时间吗?因为对于相同的执行,我没有得到相同的结果
如果您是分时共享,则算法的运行时间会因运行而异。
你试过shelltime
命令吗?
time [MY PROGRAM]
或者,为了获得更多信息,GNU Time命令?
/usr/bin/time <MY PROGRAM> [ARGS]
这些命令将是一个容易开始的地方,并将为您提供一些您需要的信息。
另外,您提到了一个集群,也许您正在使用 MPI 或其他框架?也许这个框架有一些内置的计时命令(我不确定这些东西是否存在,但它可能值得研究)。
为了比较性能指标,您确实希望消除“用户时间”这一噪音。那里有很多很好的分析工具。您可以查看您的大学是否有其中之一可供您使用。
您可以编写小标准测试。该测试将代表“1”。然后您的复杂应用程序将被相对测量。例如,您的应用程序将进行 4 次标准测试。您需要同时运行标准测试和应用程序。