有的时候我们在集群上做操作,又没有真实机器搭建环境,这时就可以用虚拟机来模拟一个集群环境。虽然性能极为低下,但是操作的直观简易程度也是真实的集群不能相比的。我的电脑是64位windows7,corei7四核处理器,8GB内存的台式机,我在VMware里面建了四个Ubuntu,每个虚拟机1个CPU core,512MB内存。四个虚拟机运行起来毫无压力。
前面一篇(SLURM安装配置 )其实也是集群配置的一项工作,不过是在单节点上安装好的。然后我把这个虚拟机拷贝了三份。
首先要做的就是让机器之间相互连通。在VMware中使用默认的NAT网络配置就可以实现虚拟机之间的互相通信了。众所周知,IP地址非常难输入,所以我们希望给每个机器起个名字,比如我起的名字就是master,worker1,worker2,worker3。每台计算机都有名字的。在/etc/hostname中修改就可以了,改完后重启一下刷新。我们还要让机器知道别的机器的名字,当然自己做DNS解析什么的请无视我,在DNS出现之前,我们还有/etc/hosts文件可以用。修改里面的内容即可。
102.168.124.129 master
102.168.124.132 worker1
102.168.124.143 worker2
102.168.124.133 worker3
ssh是linux下常用的工具。在科学计算中,MPI运行时需要用到ssh,显然是不能手动输入密码的,因此我们要配置一个不需要输入密码的ssh环境。
(1)master上
ssh-keygen -t rsa
一路回车
(2)master上
cat id_rsa.pub >> authorized_keys
(3)将id_rsa,id_rsa.pub,authorized_keys三个文件拷贝到所有机器的/home/username/.ssh/目录下。
完成了。
最后在多台电脑上跑一下SLURM看看。
@master:~$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
debug* up infinite 3 idle worker[1-3]
@master:~$ srun -N3 -l /bin/hostname
1: worker2
0: worker1
2: worker3