我想构建一个分布式计算系统,运行Matlab、C和其他编程语言进行科学计算。现在我有几台安装了 Lion Mac OS 的旧 Mac 机器作为网络服务器或个人电脑。我还有一台最新的 16-Xeon 核机器要安装 Linux。我还没有决定我们的新机器应该使用哪个 Linux 发行版,但我们需要考虑以下因素。请帮助我决定我可以使用哪个 Linux 发行版、我可以使用哪些分布式计算软件以及如何管理数据备份和队列分配。
所有装有 Mac 或 Linux 操作系统的机器都可以作为并行或分布式计算的集群系统。具体来说,我们希望在具有多个用户和线程的队列中跨机器运行程序。在所有机器不对称的情况下,但我们不想降低最强大机器的速度。
新机器最好用作头节点,但至少辅助机器也应该能够充当头节点,以防头节点关闭。
备份过程应该易于设置,并且可以远程控制。这并不像前两个因素那么重要。至少我们可以手动备份重要数据。
我已经搜索过谷歌,但还没有找到适合我的情况的合适解决方案。预先感谢您的建议!
答案1
在我建立了一些 HPC 集群之后,我可以告诉你,你想要做的事情将会给你带来集群中节点之间兼容性问题的巨大麻烦 - 这可能就是为什么你找不到一个 HPC 集群的原因。通过谷歌直接回答。
这些兼容性问题包括软件版本、系统库、数值和计算库、C 和 Fortran 等编译器(及其库)、PATH 和 LD_LIBRARY_PATH 等变量的差异、GNU 和非 GNU 版本的 shell 实用程序之间的差异,可能是 CUDA 与用于 GPGPU 计算的 OPENCL(或相同版本)等等。
仅使用两个不同的 Linux 发行版(甚至在集群的不同节点上使用同一发行版的不同版本)就会遇到许多此类问题。
您可能会发现设置两个集群更加容易 - 一个具有单个节点(运行 Linux 的 Xeon),另一个具有多个节点(运行 OS X Lion 的旧 Mac)
然而,如果这不是一个选择,那么最需要考虑的是调度程序,而不是 Linux 发行版。
我个人不想设置你想要的,但如果必须的话,我不会考虑使用PBS 或扭矩,我会用泥浆。 Slurm 对哪些应用程序可以在哪些节点上运行有更细粒度的控制。甲骨文的网格引擎是另一种选择,可以做你想做的事,但我对它不够熟悉,除了提及它存在的事实之外,无法做更多的事情。