当前位置: 服务支持 >  技术文档 >  超算使用心得:北航限定,踩坑与避坑指南

超算使用心得:北航限定,踩坑与避坑指南

阅读数 76
点赞 14
copyright 著作权
article_banner

由于超算的便捷性,目前开始使用超算,但本人对于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 网。

总共电脑数有几个不知道啊。

  1. nn表示计算节点数,这里你可以自己选择,因为cpu最多160个计算节点

计算节点数/计算机数 = 每台计算机运行节点数
为什么要分配节点数,因为一台计算机的内存有限,最常见的原因是求解器所需的内存太多,无法在一台主机上运行。系统最大384GB 内存

nnhost表示要在每个主机计算几个节点。

  1. 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
    注意把里面的破解包也下过来 密码:qalz

  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

修改完了;当然你也可以对所有文件修改权限,注意要用resursively

  1. 开始安装

  2. 直接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

后来发现:必须静默模式下安装,因为没有可视化界面

  1. 修改后命令 ./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

  1. 接着回上一层文件夹/gs/home/XX/matlab/
    然后 ./install -mode silent -agreeToLicense yes -fileInstallationKey 09806-07443-53955-64350-21751-41297
    接着报错:
    Error: 不能在home文件创造xx(英文反正这个意思)
    确实,我没有根目录的权限也不可能装在学校根目录下啊,得手动修改安装路径

  2. 只能自己打开安装包信息看看了,在/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了

  1. 询问超算老师,得知是负载过高....

忍住吐槽的心(安装个matlab也能负载过高,你这可是超算啊),把原来的安装残余文件删除(不然这些残余文件会影响下次安装)
自己写个脚本提交计算节点好了

于是我把脚本放在这里了, 建立了脚本 install_mat.sh,注意要改成 LF格式。不然提交会报错说识别不了\n\r.
(Batch script contains DOS line breaks (\r\n))

#!/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.

妥了

  1. 回来一看,准备打开,想起来还需要激活,于是看下前面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

  3. 两个文件都搞定以后,直接cd到安装好的matlab路径(在bin文件位置):

./matlab

(网上说需要./matlab -chome/usr/matlab2016/licenses/license_standalone.lic, 但是我直接matlab就打开了,前面也说直接copy就行,不知道为啥)

出现以下文字


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)

  1. 提交作业
    两种方式:
  2. 采用后台计算,并不是提交到计算节点上,cd到作业的目录,然后输入
nohup matlab -nodesktop -nosplash < test.m >running.log 2>running.err

这种方法不推荐,因为不能调度服务器的资源

  1. 采用脚本提交作业
    首先要在之前环境变量中加入matlab路径。首先先新建文本文件.bashrc
    在文件中加入
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
# export SYSTEMD_PAGER="/gs/home/xx/Matlab/bin/matlab"
export PATH="/gs/home/baoyue/Matlab/bin/:$PATH"
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER="/gs/home/xx/Matlab/bin:$PATH"

# User specific aliases and functions

然后接着激活,在命令行中输入

. ~/.bashrc

激活后即可使用。
于是采用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
https://blog.csdn.net/weixin_45092662/article/details/121299887

二、Comsol

Comsol安装并无大碍,非常顺利,我的是6.0版本
1 如前一样。
修改权限

2 按照流程安装comsol,其他没啥可说的。因为comsol需要无图形界面安装
需要修改 setupconfig.ini 文件,主要是一个静默安装、一个同意条款、安装文件路径、然后破解许可证文件路径。

#
# COMSOL automated installation answer file.
#
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空