医院网站建设方案计划书,上海信息公司做网站,呼和浩特网站建设信息,上海网站制作是什么计算机硬件和技术的发展使得高性能模拟和计算在生活和工作中的作用逐渐显现出来#xff0c;无论是计算化学#xff0c;计算物理和当下的人工智能都离不开高性能计算。笔者工作主要围绕计算化学和物理开展#xff0c;亦受限于自身知识和技术所限#xff0c;文中只是浅显地尝…
计算机硬件和技术的发展使得高性能模拟和计算在生活和工作中的作用逐渐显现出来无论是计算化学计算物理和当下的人工智能都离不开高性能计算。笔者工作主要围绕计算化学和物理开展亦受限于自身知识和技术所限文中只是浅显地尝试了整个搭建工作的步骤很多细节没有深入还望大家多指导参考《计算化学集群构建入门》张鋆博士。同时集群搭建可以分为硬件和软件两部分硬件可以参考北京科音自然科学研究中心内容这里仅是在软件部分的尝试记录下来也有个参考。本次采用VituralBox虚拟机Ubuntu16.04系统虚拟机采用VMware也是可以系统亦可采用CentOS这里相对真实的搭建缺少了交换机两者还是有所不同的。
1.操作系统安装
可以采用U盘或者移动光驱来进行安装较为简单。需要注意的是网络设置要自主设定IP、子网掩码、默认网关(/etc/network/interfaces)、DNS(/etc/resolv.conf)主机名(/etc/hostname)和域名(/etc/hosts)。而虚拟机和真实搭建也有所不同网络设定可以参考之前内容。使用ping命令尝试是否各节点间是否能够ping通与外网是否连通。
一定要注意后面是在哪些节点控制节点用control指代计算节点用compute指代、是采用什么账户root或非root用户进行。还需要及时删除所有计算节点的非root用户账户(增删用户尽量采用adduser/deluser相对useradd/userdel更为方便省去删除用户的主目录、用户的邮件箱以及其他用户相关的文件步骤)。
一些关于虚拟机和Ubuntu使用技巧虚拟机可以采用复制的方式相对节约安装系统的时间Ubuntu可以采用ctrlaltF*的方式切换图形界面(F7)与命令行模式dpkg --list可以查看已经安装的软件使用apt update/upgrade/install/autoremove更新、安装和删除相关软件/etc/init.d/networking restart此文件夹内主要是为了设置系统自启动相关项目现在已被systemd取代为避免依赖关系混乱安装命令一定要统一
2.网络通信系统
前一步中的网络设置也可以算在这里面的“前奏”这里面也可分为三部分a.SSH主机间无密码登陆b.NFS主机间文件共享c.NIS主机间用户同步
a.SSH主机间无密码登陆
SSH为了实现远程登陆数据加密。需要在所有节点(控制节点和计算节点)安装OpenSSH并在控制节点采用非root用户(用norootuser替代)登陆执行命令
ssh-keygen -t rsa
cd /home/norootuser/.ssh
cat id_dsa.pub authorized_keys
之后在控制节点ssh本机主机名即可具体配置也可以自己修改
b.NFS主机间文件共享
NFS为了实现各节点间文件保持同步。在控制节点安装nfs-kernel-server在计算节点安装nfs-client如果控制节点就是计算节点可以省去相关步骤。使用root用户在控制节点修改/etc/exports文件将需要共享的文件夹添加进去
/home 192.168.1.0/255.255.255.0(rw,sync,no_root_squash,subtree_check)
/opt 192.168.1.0/255.255.255.0(rw,sync,no_root_squash,subtree_check)
/usr/local 192.168.1.0/255.255.255.0(rw,sync,no_root_squash,subtree_check)
依次为共享文件夹、挂载IP范围、挂载配置具体配置也可以查阅相关资料按需设定
使用root用户在计算节点修改/etc/fstab文件
control:/home /home nfs rw,defaults 0 0
control:/opt /opt nfs rw,defaults 0 0
control:/usr/local /usr/local nfs rw,defaults 0 0
在控制节点和计算节点执行或者重启节点为好使用df命令在计算节点查看是否成功
control node:
/etc/init.d/nfs-kernel-server restart
compute node:
/etc/init.d/networking restartc.NIS主机间用户同步
NIS起到用户管理工作。
在所有节点控制节点和计算节点使用root用户安装nis要求输入域名时必须采用控制节点域名此处为control。如果控制节点就是计算节点亦可省去相关步骤。
在所有节点控制节点和计算节点使用root用户编辑/etc/defaultdomain填入控制节点域名默认已填入
在所有节点控制节点和计算节点使用root用户编辑/etc/default/nis控制节点设置为NISSERVERmasterNISCLIENTtrue计算节点设置为NISSERVERfalseNISCLIENTtrue
在所有节点控制节点和计算节点使用root用户编辑/etc/yp.conf写入ypserver control
在控制节点编译用户库而且以后无论控制节点对/etc/passwd或group或shadow做任何修改都应进行这一操作以同步服务器和客户端用户信息
cd /var/yp
make
在计算节点对passwdgroupshadow编辑写入“伪用户”信息
/etc/passwd 最后一行加入(一个六个:)
::::::
/etc/group 最后一行加入(一个三个:)
:::
/etc/passwd 最后一行加入(一个八个:)
::::::::
在所有节点控制节点和计算节点重启nis服务
/etc/init.d/nis restart
这样的话ssh就可以正常登陆其他节点了
3.作业管理系统
之前的作业管理系统是通过TorqueMaui来完成的随着其商用化多数用户已经逐渐采用Slurm来管理作业进程亦可参考内容。这里我们也使用Slrum来进行管理具体来说MungeSlurm来进行管理前者在集群中能够实现本地或者远程主机进程的GID和UID验证。
a.MUNGE安装
所有节点都要安装和执行
apt install munge#获取为随机数据生成munge.key (推荐给没有耐心的人):
dd if/dev/urandom bs1 count1024 /etc/munge/munge.key#修改目录属主
chown -R munge:munge /var/{lib,log,run}/munge
chown -R munge:munge /etc/munge#修改目录模式
chmod 711 /var/lib/munge
chmod 700 /var/log/munge
chmod 755 /var/run/munge
chmod 700 /etc/munge
chmod 400 /etc/munge/munge.ke
这里有些地方提到关于munge权限的问题本次直接生成了用户名为munge的用户没有将其修改为root在这里修改/lib/systemd/system/munge.service有些攻略提到权限问题这里没有遇到如若需要可以新建一个munge的用户或修改为root用户权限
#拷贝主节点密钥到其余节点
scp /etc/munge/munge.key mungeip:/etc/munge
如若单节点上面步骤可以省略
systemctl start munge # 启动munge服务
systemctl enable munge # 设置munge服务为开机自启
# systemctl另外也支持停止服务stop取消开机自启disable重启服务restart查看服务状态status
# 还碰到过munge被防火墙mask了这时候我没有关防火墙服务直接systemctl unmask munge就行了
测试安装是否成功
munge -n #本地查看凭据:
munge -n | unmunge #本地解码
munge -n | ssh node01 unmunge #验证compute node远程解码这一步验证不过报错unmunge: Error: Invalid credential 重启对端munge服务即可后记配合slurm一起使用修改/etc/slurm/slurm.confAuthTypeauth/munge
b.Slurm安装
Slurm也分为三部分slurmctld 完成管理节点的任务故障切换、资源监控、队列管理、作业调度slurmd完成计算节点的任务启动任务、监控任务、分层通信slurmdbd对于数据库管理应该也在控制节点本次没有进行配置。
按照相应作用只在对应节点安装对应软件
b.1.安装软件
apt install slurm-wlm slurmctld #控制节点执行
apt install slurm-wlm slurmd #计算节点执行
如果是单节点即控制节点就是计算节点将以上软件在同一节点进行安装slurm会自动创建用户名为slurm的账户后续可以通过登录slurm用户启动服务这里均使用root用户来操作。
b.2.配置文件
$ cd /usr/share/doc/slurmctld #此为默认位置如果不是使用dpkggrep查找
$ chmod r slurm-wlm-configurator.html
$ python3 -m http.server #前提安装python3
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
打开浏览器填入相应地址http://your_ip:8000, 点击进入 slurm-wlm-configurator.html 按照自己的需求填写设置主要就是Control MachinesCompute Machines也要注意Process Tracking可能会遇到类似问题。填写完毕后点击submit将生成的内容拷贝进 /etc/slurm/slurm.conf
b.3.创建服务并启动
$ sudo mkdir /var/spool/slurmd
$ sudo mkdir /var/spool/slurmctld
$ sudo systemctl start slurmd # 启动 slurmd, 日志文件路径为 /var/log/slurmd.log
$ sudo systemctl start slurmctld # 启动 slurmctld, 日志文件路径为 /var/log/slurmctld.log
启动后无法正常使用 slurm 的话先查看slurmd和slurmctld的状态打开日志查看报错。
$ sudo systemctl status slurmd # 查看 slurmd 的状态
$ sudo systemctl status slurmctld # 查看 slurmctld 的状态
这里需要注意slurm.conf后三行也可以用
slurm -C
不建议手动修改其中SlurmUserroot
给个脚本模板
#!/bin/bash
#SBATCH --job-nametest
#SBATCH -N 2
#SBATCH --ntasks-per-node2
#SBATCH --output%j.out
#SBATCH --error%j.err#srun --mpipmi2 ./cpmd.x ntroma01_wft.inp /home/vbox_share/pseudo-extlib ntroma01_wft.out
#mpirun -n $SLURM_NTASKS ./cpmd.x ntroma01_wft.inp /home/vbox_share/pseudo-extlib ntroma01_wft.out
mpirun ./cpmd.x ntroma01_wft.inp /home/norootuser/CPMD-v4.3/pseudo-extlib ntroma01_wft.out