我有一些巨大的比较本地 x 服务器进程时运行时间的差异。
我们的实验室有一台专用服务器,运行 Ubuntu 14 LTS 作为操作系统,PBS 用于作业调度。总共有 96 个核心分为两个队列。我们使用 Python 例程进行不同的实验,使用 CPU 使用率,没有任何 I/O 或网络请求。
我的例程是用 Python 开发的,当我使用本地机器时,它大约需要 10 到 11 个小时才能运行。当我在我们的服务器上使用相同的例程时,做同样的事情需要超过 25 个小时。
使用 htop 监控服务器状态时,每个核心的 CPU 处理能力约为 100%。我已经尝试降低每个核心的平均负载(每个核心约 0.8),但处理时间没有显著差异。
本地 x 服务器之间的这种差异是否与 CPU 容量有关?它真的可以使处理时间加倍吗?
服务器 CPU:英特尔 (R) 至强 (R) CPU E5-2650 v4 @ 2.20GHz
本地CPU:英特尔(R) 酷睿(TM) i7-4770 CPU @ 3.40GHz
答案1
Broadwell 服务器 CPU 应该比 Haswell 台式机 CPU 具有多项优势。这意味着在服务器上调度作业时会有一些开销。
E5-2650 v4 是 2 插槽服务器的 12 核部件。一台这样的服务器应该只获得 24 个 CPU 密集型工作负载线程;将 Linux 平均负载限制在 24 左右。
一个系统中的 96 个核心需要 4 个节点(总共 8 个插槽),并通过 MPI 等互连连接在一起。如果您只有一个节点,那么 96 个线程就太多了。您有多少台 24 核服务器?
分析 CPU 上的情况。适用于 Linux 使用perf top
和研究记录性能数据以供分析. 了解哪些函数占用了大部分时间,以及它们是否是您的程序或内核的开销。
另外,升级你的操作系统。你需要购买延长 Ubuntu 安全更新. 更高版本肯定具有更好的性能分析工具,并且可能仅仅因为更新的内核就能实现更好的性能。