群集中混合的AMD和Intel节点......考虑因素?

时间:2013-11-09 23:28:07

标签: mpi cluster-computing nfs

我正在我的大学建立一个小型的256核心计算集群,用于流体动力学模拟。我们使用的代码是用C和Fortran混合编写的,目前在大型超级计算机上运行就好了。

在我们的集群开发中,我们有16个计算节点,每个节点有16个AMD CPU。我们还有一个8核戴尔盒子,我们想用它作为“头”或“登录”节点。不过,这个盒子是Intel Xenon。

我们希望将每个用户的主目录NFS挂载到登录节点,并限制他们对计算节点的访问。这将要求用户通过登录节点上的mpirun编译和运行他们的程序。我们的问题是:

  1. 这样的混合CPU系统可以实现吗?或者我们会在编译英特尔并在AMD上执行时遇到问题吗?
  2. 如果这是一个问题,是否有解决方法?我们可以以某种方式让用户在计算节点上透明地编译他们的代码,同时只登录到登录节点吗?
  3. 在具有头节点的群集中,是否应该只通过NFS挂载共享主目录?或者是否还有其他目录,我们也应该在计算和头节点之间共享?
  4. 如果那里有一个可以提供帮助的好资源,我们也会很感激。我们在各个页面上找到了很多建议和想法......很高兴被指向一个社区认为有信誉的人。 (免责声明......我们不是计算机科学家,我们只是常规科学家。)

1 个答案:

答案 0 :(得分:1)

英特尔和AMD处理器具有很大的二进制兼容性,但是如果代码是针对英特尔的优化编译的话,那么高速缓存大小和指令调度之间的差异会导致AMD上特定代码的次优运行,反之亦然。两家供应商实施的指令集存在一些差异,但这些指标在科学计算方面通常都不是很有用。

由于(1)不是问题,因此不需要解决方法。还有一点必须记住,一些编译器默认为处理器启用指令集和优化,编译代码。因此,当头节点使用来自不同供应商的CPU或甚至来自同一供应商但来自不同代的CPU时,必须特别注意编译器选项。对于英特尔的编译器套件尤其如此,而GCC默认情况下不那么激进。另一方面,人们通常可以指示编译器定义和优化的架构,例如,通过向GCC提供适当的-mtune=...选项。

至于共享文件系统,它取决于数据存储的组织方式。并行应用程序通常需要访问所有级别的相同文件(例如配置文件,数据库等),因此需要共享主文件系统和工作文件系统(除非使用主文件系统作为工作文件系统)。此外,您可能希望共享诸如/opt之类的内容(或存储群集范围软件包的任何位置),以简化群集管理。

由于世界各地的集群安装有尽可能多的“最佳实践”,因此很难将您指向一个明确的来源。只需坚持使用工作设置并迭代调整,直到达到收敛。安装TORQUE是一个好的开始。