我知道这个问题对我之前在此处找到的问题有点熟悉,但是我现在从一个稍微不同且更笼统的角度来解决这个问题。
假设我有一个运行时间在几天到几周范围内的代码。由于某种原因,无法更改代码以提高性能。我的目标是购买一台计算机以尽可能快地运行此特定代码。它目前在某些方面是并行的,但必须是共享内存。
目前我有两台计算机可以运行它。它们都运行相同的 Linux 发行版,并且都运行在 Intel-Xeon 处理器上,但是 CPU 型号不同,内存速度和其他硬件值也不同(计算机之间的年龄差异约为 5 年)。在两台计算机上,我都可以轻松更改用于运行代码的内核数量,并且两者中较新的一个支持超线程。
我的问题是,有没有一种方法可以分析代码在一台或两台计算机上的运行情况,这可以让我找到硬件瓶颈所在,从而调整购买的新计算机,以获得使用此代码的最佳性能。