我们正在购买一台服务器来运行各种生物信息学软件包。 我们的testing机上的主要软件包是multithreading的,完全是CPU绑定的,IO和RAM不是限制性能 – CPU运行在100%,而RAM和磁盘IO是在最低水平。
我们希望确保为我们的工作负载提供最好的处理器,但是鉴于Intel Xeon可供select的相当大的列表,我们如何select最适合我们需求的处理器呢?
我明白从根本上说,“更多”=“更好”,但是我怎么能告诉我们,比起更大的caching,或者更多的内核比时钟更好,总线速度会更快。
那么有没有一种分析我们软件包的方法来找出select什么处理器。 有问题的软件是Python脚本的集合,所以我们可以在Linux或Windows上进行分析。
你看看cachegrind ,这是Valgrind内存分析包的一部分吗?
Cachegrind至less会给你一个caching颠簸发生的概念。 你可能会发现你的应用程序对caching进行了大量的浪费,以至于你是否拥有至强的L2 / L3caching并不重要,那么你可能会受到CPUpipe道的束缚,并且可能不会发生颠簸许多。
Cachegrind也允许你设置任意的caching大小,所以你可以在各种caching大小的情况下testing你的代码。