如何优雅地使用武大超算跑MATLAB

写在前面

实验室里有一项拖了很久的研究,去年年末被交予我做收尾工作。这项研究的实验代码是用MATLAB编写的,本来一月份左右已经差不多改好了代码逻辑,但还没来得及在大规模数据集上得到验证。不巧的是碰上新冠肺炎爆发,原本二月份便可回到实验室开展的工作不得不在家完成。但实验室的服务器智能在实验室局域网范围内连接,腾讯云、AWS之类的云服务器要么不支持MATLAB,要么收费坑爹,于是不得不另辟蹊径。
好在跟老师沟通过之后,惊喜地发现我校还有超算中心这么好的资源,又惊喜地从学姐那儿得到了账号和密码……但事情并不总是那么顺利,超算中心官网上的文档组织得比较混乱,让作为小白的我踩了不少坑,于是写下这篇博客记录一下武大超算正确而简便的使用步骤。

正文开始

申请账号

上面也提到了,我用的账号是老师给的现成的……这部分就暂且跳过去吧QAQ

上传项目资源

使用 sftp 客户端(如 Xmanager、SSH Secure Shell Client 等本身自带的文件传输功能,或者使用 FileZilla、WinScp、FlashFTP 等的 sftp 数据传输软件)登录至202.114.96.177(校外访问需要通过VPN)。
登录sftp客户端
登录成功后会显示三个链接,点击project进入数据分区,这块分区容量大且读取速度快,应将需要运行的脚本和相关数据上传至此分区。

编写脚本

超算上提交作业的命令有两种,srunsbatch,前者适合运行需要命令行交互的程序,后者适合运行需要挂在后台运行的程序。针对MATLAB执行大规模数据运算的任务而言,最简单的方法是先编写一个可以执行所有步骤的MATLAB脚本,然后将其放入Linux脚本执行,格式如下:

#!/bin/bash
module load matlab/R2018b
matlab -nosplash -nodesktop -r test_robot

其中第1行以 “#!” 字符开头,并制定脚本文件的解释程序;
第2行加载运行环境,MATLAB的具体版本号可参考/software/MATLAB/下的内容进行选择,这里用的是R2018b;
第3行就是普通的命令行运行MATLAB脚本的命令了。
最后将上述脚本以文本格式保存在project分区中留用,至此sftp端的准备工作已全部完成。

提交作业

使用 ssh 客户端(如 Xmanager、Putty、SecureCRT、SSH Secure Shell Client)登录至swarm.whu.edu.cn(校外访问需要通过VPN)。
依次执行cd project/[脚本所在目录]sbatch [选项] [脚本名]即可将作业提交至后台运行。
提交作业
这时你可以通过squeue命令查看作业执行状态,也可以退出终端做其他的事情。

查看结果

重新登录sftp客户端,在之前提交过Linux脚本的目录下会出现名为slurm-[任务号].out的文件,这里便记录着MATLAB执行的所有输出信息。至于其他的输出结果,如.mat格式的数据,则跟在普通服务器上输出的方式完全一致。

THE END

发布了2 篇原创文章 · 获赞 1 · 访问量 71

猜你喜欢

转载自blog.csdn.net/qq_43908441/article/details/104948165