优化 Linux 计算集群

优化 Linux 计算集群

我正在工作中设置一个超级计算 Linux 集群。我们使用 OpenMPI 和 GoToBlas2 运行了最新的 HPCC 基准测试,但结果非常糟糕。当我使用集群中每个核心的一个进程运行基准测试时,结果比在单个进程中运行基准测试要差得多(超过 100 倍)。这显然不是我们期望的性能。我唯一的想法是 MPI 在进程之间传输消息的时间太长了。有人知道我该如何优化服务器设置,以使性能不会太差吗?

我们使用搭载 OpenMPI v1.4.3 的 Rocks 集群发行版。我们的计算节点是戴尔机架式服务器,每个服务器配备两个四核 Intel Xeon 处理器。它们通过千兆以太网电缆连接。

答案1

当观察科学集群和性能时,我发现以下一些主要瓶颈:

  • 您使用的是哪种网络。是的,您说您有千兆以太网,但是您是否使用非阻塞交换机,以便交换机上的每个节点都可以获得全线速?
  • 您是否使用分布式文件系统或优化的 NAS?
  • 你的所有链接都是全线速的吗?这又回到了第一点,但你会惊讶地发现,偶尔在节点上运行 iperf
  • 您的延迟是多少?如果您有网络问题,那么这在千兆网络上会不时出现问题,并且会严重影响需要使用 MPI 的应用程序。
  • 您的主线设备设置是什么network-scripts?您的 MTU 设置为 9000 吗?

Iperf 通常可以在 RHEL 系统上找到

/apps/rhel5/iperf/bin/iperf

要运行 iperf,首先在节点上设置一个服务器。

/apps/rhel5/iperf/bin/iperf -s

然后从您希望测试链接的节点执行

/apps/rhel5/iperf/bin/iperf -c <host or IP of server>

如果成功,您将在客户端看到如下输出:

------------------------------------------------------------
Client connecting to <host or IP of server>, TCP port 4200
TCP window size:   256 KByte (default)
------------------------------------------------------------
[  3] local 123.11.123.12 port 4400 connected with 123.456.789.12 port 4200
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.1 GBytes  1.01 Gbits/sec

如果您没有安装它,可以在许多平台上从存储库轻松检索它,如果没有,可以免费下载并从源代码编译。在每个节点上运行它,看看实际以太网线是否存在问题。之后,在所有节点上运行它,看看它是否会使交换机陷入困境。

相关内容