其实,这个标题好搞笑……
集群系统
一个能正常工作的基于Linux系统的并行计算集群,应该具备以下的特征。
- 有一个调度器,比如Slurm,OpenPBS等。商用的就不提了。
- 运行同一个版本的Linux系统,也就是系统版本唯一。
- 用户信息唯一和数据唯一。意味着用户在任何一个节点上,看到的数据程序都是一样的。
- 除了登录环节外,用户通过调度器访问任何资源,鉴权过程均是无感知的。
- 用户仅可访问调度器分派的资源。依靠用户自觉遵守规则,不盗用资源是不现实的。
- 添加和删除用户,只需在管理节点完成类似useradd/userdel的操作。
- 关机,开机,重启某一个机器或者整个集群,只需在管理节点操作一次。任何实际过程,均不直接操作任何一个计算节点。
别迷信术语/行话
别迷信什么并行环境。这种专业的术语都是糊弄人的。
科学计算中的并行计算,就我接触到的而言,绝大多数是通过MPI进行的。
调度器自动传递参数给MPI,然后程序自动通过MPI并行。不用额外搞什么环境的。
当然了,程序代码本身决定了支持那种MPI(比如MPICH和OpenMPI),以及能否通过MPI并行。有些程序还是通过OpenMP方式并行的。
不支持MPI的程序,当然不可以通过mpirun来运行了。
未必需要MPI
如果采用hpc4you的集群方案,MPI都不需要。
使用hpc4you_toolkit完成集群搭建之后,下载