【问题标题】:MPI and DLL(SO) functionsMPI 和 DLL(SO) 函数
【发布时间】:2012-12-31 07:06:30
【问题描述】:

MPI 新手,目前我还没有超级计算机可以玩,我不知道的一件事是,DLL/SO 在集群计算中是如何处理的?我们可以像在 PC 上使用它们一样使用 DLL/SO 吗?

为什么支持 Windows HPC OS 而不是 Linux 的超级计算机那么少?目前我认为在windows上编程软件要容易得多,这要归功于visual studio,但对于集群计算来说,linux是目前的首选。

【问题讨论】:

  • 第一个问题:简短的回答是肯定的。 (虽然我很困惑为什么你会怀疑它不会?)。
  • 第二个问题,或许你应该看看Top500超级计算机的图表和它们的操作系统选择。当人们有选择的时候,他们会使用对他们来说最好的东西;当他们不这样做时,什么对他们有用。
  • 你的第二个问题有点不适合 Stack Overflow,因为它只询问与编程没有直接关系的 意见。我的意见主要是关于两件事。价格为一。 (比较 Windows Server OS 与 Free Linux 的成本)。另一个原因很简单,因为 Unix 分布式计算的历史更长
  • Windows HPC Server 是否支持 Lustre 等高性能并行文件系统?像 TotalView 或 Allinea DDT 这样的高级并行调试器是否可用于 Windows? Scalasca 等大型并行分析器是否支持 Windows MPI 库?与使用 xCAT 等免费工具来维护 Linux 集群相比,维护大型且昂贵的 Windows 安装要容易多少?找出这些简单问题的答案,您可能会自己回答第二个问题。

标签: c++ windows cluster-computing hpc


【解决方案1】:

要补充您在 cmets 中已经告诉您的问题:

a) 我认为 Linux 在超级计算领域占据主导地位的部分原因在于它是开源的。为 10^6-CPU 庞然大物开发硬件后,您可能需要稍微调整操作系统,以针对您设计和内置的特别酷的功能对其进行优化。

b) 如果您喜欢在 Visual Studio 下开发,但想在超级计算机上运行代码,您可以按照我的做法:在 Visual Studio 下开发代码并在超级计算机上运行代码。 (实际上,我的雇主并没有真正的超级计算机,只有一两个非常大的集群,但 meh。)

我有一台带有双四核 CPU 的台式电脑,安装了 VS、英特尔 Fortran 编译器和各种英特尔库,例如 MKL。我还安装了英特尔 MPI 开发套件和 PC 运行时,因此我可以在开发 MPI 程序时在我的 PC 上运行它们。

然后,当我想将代码投入生产时,我在集群上make 它们(我们拥有相同的编译器和库)然后它们就离开了。我们严格遵守语言标准,因此不会产生可移植性问题。

所以,如果你想处理超级计算机代码,我不明白为什么你必须放弃 Visual Studio。当然,您需要对make 和 Linux 方面的程序员编辑器有一定的了解,但他们并不比以前在 Windows 上的等价物更难接受。

【讨论】:

  • 是的,这是一种绕过它的方法,但是它需要相当多的维护来保持平台之间的一致性。例如,pthread 库在 windows 和 linux 操作系统中的行为往往不同,虽然 OpenMP 在这方面更好,但似乎无法提供 pthread 可以提供的丰富功能。
  • 好吧,我不会用 bargepole 来接触 pthread,所以你提出的问题对我来说不是问题,但你是对的,平台之间的差异会使开发变得更加困难。对我来说,跨平台维护代码和开发工具的负担很轻,而且好处很大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
相关资源
最近更新 更多