由于超算的便捷性,目前开始使用超算,但本人对于Linux命令流一窍不通,安装各种软件和命令都踩了不少坑,北航的超算平台也各种反人类。
北航超算的相关信息:
本系统配置了 3 个登录节点,260 个 CPU 计算节点(注意!),10 个 GPU 计算节点(注意!),一套 1.8P 共享存储。所有节点通过 100Gb/s EDR Infiniband 互联组成计算和存储网络。系统详细配置如下:
1) 登录管理节点:共 3 个登录节点。(只影响登陆)
2) GPU 计算节点:共 10 个 GPU 计算节点,每个节点配置 2 颗 Intel Golden 6240 系列处理
器(每个卡有18核处理器),共 36 个物理核,384GB 内存,8 个 NVIDIA V100 GPU 卡。
3) CPU 计算节点:共 260 个 CPU 计算节点,每个节点配置 2 颗 Intel Golden 6240 系列处
理器(每个卡18核处理器),共 36 物理核,384GB 内存(注意)(根据 IB 网络配置,单个作业最多使用 160 个计算节
点)。
4) 并行存储系统:配置一套 DDN 并行存储系统,共配置 1.8PB 存储容量。
5) 管理网络:配置一套千兆管理网;
6) 带外管理网络:配置一套千兆带外管理网;
7) 计算网络:配置一套 100Gb/s 高速 Infiniband 网。
总共电脑数有几个不知道啊。
- nn表示计算节点数,这里你可以自己选择,因为cpu最多160个计算节点
计算节点数/计算机数 = 每台计算机运行节点数
为什么要分配节点数,因为一台计算机的内存有限,最常见的原因是求解器所需的内存太多,无法在一台主机上运行。系统最大384GB 内存
nnhost表示要在每个主机计算几个节点。
- np表示核数
表示每个计算节点使用可用的内核数
nn*np 是活动核数(每个节点不要超过36个)
理论上可以用160个计算节点,于是160✖️36=5760。
也就是每个计算节点最多可以申请36个核,cpu最多申请活动的总核数可以到达5760个。但实际不可能让你申请那么多计算节点,全校这么多人在用。
例如:
使用4个计算节点(nn=4),每个计算节点分配8个核(np=8,np*nn=32),每个计算机分配2个节点(nnhost=2)
这样实际就用了两台计算机
使用2个计算节点(nn=2),每个计算节点12个核(np=12,np*nn=24),每个计算机分配1个节点(nnhost=1)
这样也是用了两台计算机
这些是我的观点,有错误可以指出
例子:
/gs/home/xx/Comsol/comsol56/multiphysics/bin/comsol batch -nn 1 -nnhost 12 -np 12 -inputfile ${INPUTFILE} -outputfile ${OUTPUTFILE} \
-batchlog $
表示1个计算节点,每个主机计算12个节点数,每个节点都使用12个内核
分布式计算就是希望通过指派多个节点,并行计算程序(我在瞎说,不严格就当没看到)
但并不是核越多越好问题的规模会影响加速效果。对于非常大型的模型(如几百万个自由度),加速效果会更好。如果您使用非常小的模型,则在使用多个内核时,加速会受到限制。此外,可能达到的最大加速效果还受到算法非并行部分的限制。
运行时长例子:针对同一套matlab程序,有
#SBATCH -N 4 # 使用 4 个节点
#SBATCH -n 20 # 共使用 20 个进程(cpu 核)
#SBATCH --ntasks-per-node=5 # 每个节点启动 5 个进程
结果为:
Elapsed time is 97.883870 seconds.
#SBATCH -N 4 # 使用 4 个节点
#SBATCH -n 60 # 共使用 60 个进程(cpu 核)
#SBATCH --ntasks-per-node=15 # 每个节点启动 15 个进程
结果为:
Elapsed time is 94.403575 seconds.
参考:http://cn.comsol.com/support/knowledgebase/1001
https://cn.comsol.com/blogs/hybrid-computing-advantages-shared-distributed-memory-combined/
程序安装
安装的例子b站很多,可以多搜索多试试
一、Matlab
北航超算居然没有安装matlab,滑天下之大稽,居然有高校超算不装matlab的,真是闻所未闻....
事先说明,csdn有个北航安装超算的帖子,本人亲测无用,因为是用X11的,下不到X11的我直接选择静默安装。
那个帖子如下:https://blog.csdn.net/weixin_41692946/article/details/120971906
我的安装历程:
1. 下载Linux版 matlab,这里都用2019.链接在 https://pan.baidu.com/s/17fBd0XX0At5cevaLzxUuhQ
注意把里面的破解包也下过来
2. 本地解压后上传服务器端,你要直接用服务器7zip也行
3. 将文件上传的地方进行修改权限,你可以选择手动修改,直接改为777
捕获.JPG
或者通过命令修改
chmod 777 /路径/install
好的,修改命令的指令你会了。你需要修改这几个文件的权限:
/gs/home/XX/matlab/R2019b_Linux/install
/gs/home/XX/matlab/R2019b_Linux/bin/glnxa64/install_unix
/gs/home/XX/matlab/R2019b_Linux/sys/java/jre/glnxa64/jre/bin
修改完了;当然你也可以对所有文件修改权限。
4. 开始安装
1. 直接cd到安装包所在文件夹/gs/home/XX/matlab/R2019b_Linux/,然后 ./install
结果: 报错
Error: Installation cannot proceed. You may either:
1. Set an X11 display, and restart the install process
2. Use the silent install feature by specifying the -mode silent option
后来发现:必须静默模式下安装,因为没有可视化界面
2. 修改后命令 ./install -mode silent
接着报错:说 the Installer cannot be run from inside the DVD directory. Change to your home directory and execute this command.
百度之,发现不能直接在挂载的目录即matlab文件夹下运行./install,可以返回上级目录运行./matlab/install
3. 接着回上一层文件夹/gs/home/XX/matlab/
然后 ./install -mode silent -agreeToLicense yes -fileInstallationKey 09806-07443-53955-64350-21751-41297
接着报错:
Error: 不能在home文件创造xx(英文反正这个意思)
确实,我没有根目录的权限也不可能装在学校根目录下啊,得手动修改安装路径
4. 只能自己打开安装包信息看看了,在/gs/home/xx/matlab/R2019b_Linux/install_input.txt
## SPECIFY INSTALLATION FOLDER
##
## Example:
## (Windows) destinationFolder=C:\Program Files\MATLAB\RXXXX
## (Unix) destinationFolder=/usr/local/RXXXX
## (Mac) destinationFolder=/Applications
##
## Set the desired value for destinationFolder and
## uncomment the line.
# destinationFolder=
## SPECIFY FILE INSTALLATION KEY
##
## Example: fileInstallationKey=xxxxx-xxxxx-xxxxx-xxxxx.....
##
## Set the desired value for fileInstallationKey and
## uncomment the line.
##
# fileInstallationKey=
好吧,把安装的绝对路径及序列号加上
最终安装命令:
./R2019b_Linux/install -mode silent -agreeToLicense yes -fileInstallationKey 09806-07443-53955-64350-21751-41297 -destinationFolder /gs/home/xx/Matlab
好,这下成功安装中了,接着和师弟出去吃饭了,回来一看傻眼了,被程序kill了
5. 询问超算客服,得知是负载过高....
忍住吐槽的心(安装个matlab也能负载过高,你这可是超算啊),把原来的安装残余文件删除(不然这些残余文件会影响下次安装)
自己写个脚本提交计算节点好了
于是我把脚本放在这里了, 建立了脚本 install_mat.sh
#!/bin/bash
#SBATCH -J std
#SBATCH -p cpu-normal
#SBATCH -N 1
#SBATCH -n 20
#SBATCH -t 10000:00
#SBATCH --mail-type=all
#module load intel/17.0.7-thc
cd ${SLURM_SUBMIT_DIR}
mkdir ${SLURM_JOBID}
export TMPDIR=${SLURM_SUBMIT_DIR}
./R2019b_Linux/install -mode silent -agreeToLicense yes -fileInstallationKey 09806-07443-53955-64350-21751-41297 -destinationFolder /gs/home/xx/Matlab
make
make install
提交完,系统又卡bug了,不过这次是官方的问题
美滋滋出去吃个夜宵
安装OK的标志:查看文件slurm-4537276.out
会有信息
Exiting with status 0
End - Successful.
Finished
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install`. Stop.
妥了
6. 回来一看,准备打开,想起来还需要激活,于是看下前面crack的文件 readme.txt
standalone:
- Install choosing the option "Use a File Installation Key" and supply the following FIK
09806-07443-53955-64350-21751-41297
- To install Matlab Production Server,using this
40236-45817-26714-51426-39281
- Use license_standalone.lic to activate,
or copy license_standalone.lic to %installdir%\licenses\ ,and run matlab without activation
- after the installation finishes copy the folders to %installdir% to overwriting the originally installed files
好,告诉我们两个事:
1. 需要在你安装的目录新建一个licenses的文件夹,把 license_standalone.lic 放进去
2. 把 libmwlmgrimpl.so 这个文件取代安装位置bin/glnxa64/matlab_startup_plugins/lmgrimpl/中的同名文件,记着取代之前该原始文件权限777
7. 两个文件都搞定以后,直接cd到安装好的matlab路径:
./matlab
(网上说需要./matlab -chome/usr/matlab2016/licenses/license_standalone.lic, 但是我直接matlab就打开了,前面也说直接copy就行,不知道为啥)
8.
出现以下文字
MATLAB is selecting SOFTWARE OPENGL rendering.
< M A T L A B (R) >
Copyright 1984-2019 The MathWorks, Inc.
R2019b (9.7.0.1190202) 64-bit (glnxa64)
August 21, 2019
To get started, type doc.
For product information, visit www.mathworks.com.
>> 1+1
ans =
2
成功打开
有些可能需要清空系统的缓存,命令rm -r -f ~/.matlab/(我没试过,总之看rp)
9. 提交作业
两种方式:
1. 采用后台计算,并不是提交到计算节点上,cd到作业的目录,然后输入
nohup matlab -nodesktop -nosplash < test.m >running.log 2>running.err
这种方法不推荐,因为不能调度服务器的资源
2. 采用脚本提交作业
于是采用matlab提交作业脚本进行提交,提交脚本如官方指导,奉上
matlab_slurm.sh
#!/bin/bash
#SBATCH -J test # 任务名字是 test
#SBATCH -p cpu-normal # 提交到 normal 分区
#SBATCH -N 4 # 使用 4 个节点
#SBATCH -n 20 # 使用 20 个进程(cpu 核)
#SBATCH --ntasks-per-node=5 # 每个节点启动 5 个进程
#SBATCH -t 10000:00 # 任务最大运行时间是 10000 分钟
#SBATCH -o test.out #正确的输出
#SBATCH -e err.out #错误的输出
# module add matlab # 添加 MATLAB 模块,由于在超算中我们使用的是自己的matlab程序,所以这里不载入环境
matlab -nodesktop -nosplash -nodisplay -r "test_" # 使用 MATLAB 运行当前文件夹中的 Test.m 文件
Bingo!
参考:视频
https://www.cnblogs.com/graybird/p/9104581.html
https://blog.csdn.net/yuanchheneducn/article/details/50172027
https://blog.csdn.net/weixin_40562999/article/details/112394410
https://zhuanlan.zhihu.com/p/339545166
https://blog.csdn.net/sethinking/article/details/88375995
https://blog.csdn.net/qq_15015187/article/details/107740427
二、Comsol
Comsol安装并无大碍,非常顺利,我的是5.6版本
1 cd到路径,然后直接chmod +x -R .
修改权限
2 ./setup
按照流程安装comsol,其他没啥可说的。可能需要进入根界面才有图像化界面,很简单, 为啥comsol能有安装界面啊我擦
3. 提交脚本,待执行文件为mph格式,脚本文件为sh,可以参照自己的文件。
脚本文件无私分享:
#!/bin/bash
# slurmsubmit.sh
#SBATCH -J std
#SBATCH -N 1
#SBATCH -n 20
#SBATCH -p cpu-normal
#SBATCH --mem 256G
#SBATCH -t 10000:00
#SBATCH -D "/gs/home/xx/Comsol/comsol54/multiphysics/bin/"
#SBATCH -o slurm.out
#SBATCH -e slurm.err
#SBATCH --mail-type=all
#module load intel/17.0.7-thc
# no limit Ram
ulimit -s unlimit
cd ${SLURM_SUBMIT_DIR}
mkdir ${SLURM_JOBID}
export TMPDIR=${SLURM_SUBMIT_DIR}
input=R20R100_ABH_WO_Damp
INPUTFILE=$input.mph
OUTPUTFILE=${SLURM_JOBID}/${MODELTOCOMPUTE}
BATCHLOG=${SLURM_JOBID}/${MODELTOCOMPUTE}.log
# -nn
/gs/home/xx/Comsol/comsol56/multiphysics/bin/comsol batch -nn 1 -nnhost 12 -np 12 -inputfile ${INPUTFILE} -outputfile ${OUTPUTFILE} \
-batchlog ${BATCHLOG}
参考:https://www.cnblogs.com/xiao-apple36/p/9264875.html
三、abaqus
基本需要多试几个节点
1. 将abaqus安装文件上传,首先破解license
2. 在安装目录下输入 ./lmgrd -c abaqus.lic
3. 安装成功后进入abaqus安装,首先创建一个文件夹,并cd到该文件夹
4. 通过chmod + x /setup文件位置(安全打开)
5. 接着csh /setup文件位置(可能需要创建一个scratch的文件位置,输入就好了)
6. 再chmod + x +install.bin文件位置(直接拷贝上面的)
7. 接着csh /setup文件位置
8. enjoy安装
9. 可能需要清空系统的缓存,命令rm -r -f ~/.abaqus/(我没试过)
10. 一个节点安装不成试用多个,这个安装真的靠rp
提交文件就不放在这里了,网上到处都是
参考:来自视频
四、安装解压缩程序
在超算安装其他源程序如p7zip
1. 下载需要的文件(可以用超算直接下载,超算联网的)
2. chmod打开文件,然后注意用文档查看install文件(注意修改安装位置),和前面装matlab类似
3. make&make install或者./install
参考:https://www.cnblogs.com/xiao-apple36/p/9264875.html
五、一些小白的命令
$ squeue -u xx 查看自己任务
$ scontrol show job 280675 查看自己任务详情
$ sbatch xx.sh 提交任务
./ 指在当前目录
pwd 显示文件位置
cd 进入用户主目录
$ du -hs /gs/home/xx/ 查看容量
$ rm -rf 路径 删除文件夹
Ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.
Ctrl+c是强制中断程序的执行。
Ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态。
cd进入文件(不可在Ln上直接提交,需要cd进入文件夹里面提交)
将xx.sh中的文件名与提交节点修改,将inp文件与该文件一起上传至文件区,然后使用$ sbatch xx.sh提交即可。
可同时计算三个作业。其他都会排队。
scancel (id) 取消作业
费用查询 http://10.212.66.3
网友评论