使用超算小结

最近在学习使用超算来跑实验室的程序,将一周的学习心得记录在这。另外,Linux的及超算使用的基础几乎为0,描述有错请及时指正!

前提:使用的超算集群分为登录服务器user@login和其他运算服务器,以下统称为n节点,且整个集群共用同一存储。可以理解为系统为每一位用户开辟一块存储,登录节点只允许登录登出操作,部署任务需要切换到其他可用的节点,但由于这些节点共用存储,所以只需将程序和数据上传一次即可在任一节点下查到。这样,我们很容易就可以实现并行运算,比如,将数据集拆成10份,调用10个可用节点分别去执行程序分析数据,最后将10份结果汇总,就得到了整个数据的结果。

使用中遇到的问题:

1.拆分数据集

这一步我们直接平均分配,由于数据集是一些分散的矩阵,可以很容易的按数量来拆分,但是对于互相之间有关联的数据就需要更精细的划分了。

2.节点的使用

使用Xshell登录服务器之后,键入bhosts指令查看当前的可用节点,利用ssh指令连接要使用的节点,之后便可以执行自己的程序了。例如

ssh 节点名称  #登录该节点,可能需要输入密码
java Test    #执行名为Test的java程序
exit     #退出当前节点,这一步很重要,直接叉掉xshell会导致该进程继续存在,可能有隐患

 

3.如何进行多节点使用

如果对脚本比较熟悉可能就没有这个疑问了QAQ(感受到知识的匮乏),为了同时调用几个节点执行任务,查阅了各种资料,其中一篇https://www.ibm.com/developerworks/cn/aix/library/au-aix-run-commands/index.html给我们带来了启示。为了实现并行还鼓弄了半天dsh和pssh,后来才顿悟我们的集群在物理上就可以实现了并行,由于共享内存,直接循环调用可用节点执行程序去分析不同的数据就完事了,此后开始研究shell脚本命令。

3.shell命令

这里需要用到循环,将节点名称进行循环,然后ssh,再执行命令,最后退出,期间要将输出信息重定向到指定文件,代码如下

#!/bin/bash
j=0   #变量,为了传参使用
for server in node06 node07 node08 node09  #循环6、7、8、9节点
do
j=`expr $j + 1`     #j++
ssh -tt ${server} <<EOF     #-tt是将虚拟终端的信息输出到当前终端
cd sun/
nohup java -jar xx.jar $j >>myout.txt 2>&1 &  #将程序设为后台执行,且将输出信息重定向
                                              #到myout.txt中,java -jar xx.jar $j为执行命令
exit
EOF
done
echo "finish"

4.其他

在ssh时可能需要输入密码,使用免密登录即可直接连接,具体做法可用查其他教程,我们只是执行了ssh-keygen就完成了免密登录,可能是各个节点共享存储吧,免去了复制公钥文件到各个服务器下的步骤。

以上就是我们使用超算的一些总结和心得,小白一只进攻参考,有错误的地方还望在评论区指正,我会及时修改,谢谢!

<think> 嗯,用户现在想了解个人使用超算服务的方法,这和我之前讨论的超算耗电问题完全不同呢。用户可能是个科研工作者或者学生,刚接触超算领域,需要从最基础的使用流程开始了解。 翻看对话历史,用户之前关注的是超算的耗电问题,现在突然转向使用方式,说明ta的实际需求可能分阶段:先了解宏观特性,再解决实际操作问题。有趣的是,用户特意强调“个人使用”,这个限定词很重要——ta不需要企业级解决方案,而是聚焦个人账户场景。 注意到用户提供的四个引用材料里,[2][3][4]其实已经包含实用线索:[2]展示数据传输命令,[3]是软件安装流程,[4]给出作业脚本样例。这些正好构成个人使用超算的三个核心环节:数据准备→环境配置→任务提交。 用户可能最卡在入门环节,比如如何申请账号、连接方式这些基础操作。考虑到超算平台差异大,我需要区分通用流程和平台特性:通用部分讲清楚SSH连接、模块加载、SLURM提交;平台特性则提示ta查看目标超算的专属文档。 特别要注意的是[4]展示的GPU作业脚本,用户既然保留这个案例,说明ta可能需要GPU资源。不过ta没明确说计算类型,我在回答里应该补充CPU/GPU任务的区分要点。 安全方面也不能忽视,引用[1]提到超算互联网的安全体系,个人使用时尤其要注意密钥管理和数据传输加密。这个点到为止即可,毕竟新手最怕复杂的安全条款。 最后生成的问题要引导用户深入:从监控作业状态到成本控制,都是个人用户实际使用时的痛点。尤其是预算有限的情况下,理解计费方式特别关键——毕竟之前讨论过超算惊人的耗电成本呢。 </think> 以下是针对个人用户使用超算服务的详细指南,结合引用资料的关键操作步骤: --- ### 一、超算服务使用全流程 #### 1. **账号申请与连接** - **Step 1**: 向目标超算中心提交个人账号申请(需提供机构邮箱及研究计划) - **Step 2**: 通过SSH连接超算服务器(引用[2]案例): ```bash ssh username@supercomputer_ip # 例如 scxlab0069@ssh.cn-zhongwei-1.paracloud.com ``` > 首次登录需配置SSH密钥认证增强安全性[^1] #### 2. **环境配置** - **软件安装**(引用[3]方法): ```bash conda create -n myenv python=3.8 # 创建虚拟环境 conda activate myenv mamba install openmc hdf5 parallel # 安装并行计算库 ``` - **模块加载**(超算预装软件): ```bash module load cuda/11.4 gcc/9.3 # 加载GPU编译器 ``` #### 3. **数据传输** - **本地→超算**(引用[2]命令): ```bash rsync -avzP /local/data/ username@supercomputer_ip:/remote/path/ ``` - **云平台→超算**(阿里云案例): ```bash rsync -avz --partial /mnt/data/oss_beijing/user/ user@ip:/target_path/ [^2] ``` #### 4. **任务提交** - **GPU作业脚本**(引用[4]模板): ```bash #!/bin/bash #SBATCH --job-name=MyJob # 任务名称 #SBATCH --nodes=2 # 节点数 #SBATCH --ntasks-per-node=4 # 每节点GPU数 #SBATCH --partition=gpu # 使用GPU分区 #SBATCH --gres=gpu:4 # 每节点4卡GPU #SBATCH --output=%j.log # 日志输出 srun python my_code.py # 并行执行命令 ``` - **提交作业**: ```bash sbatch job_script.sh # 提交SLURM作业 squeue -u $USER # 查看任务状态 ``` --- ### 二、个人用户注意事项 | **环节** | **关键要点** | |----------------|-----------------------------------------------------------------------------| | **资源限制** | 个人账号通常受限:<br>• GPU卡时≤200小时/月<br>• 存储空间≤1TB[^4] | | **成本控制** | 监控资源消耗:<br>`sacct -j <jobid> --format=JobID,Elapsed,AllocCPUs,ReqMem` | | **调试技巧** | 优先使用测试队列:<br>`#SBATCH --partition=debug`(免排队但限时1小时) | | **数据安全** | 敏感数据需加密传输:<br>`rsync -e "ssh -p 22" --progress -avz data.tar user@ip:/path` [^1] | --- ### 三、典型问题解决方案 1. **环境依赖冲突** ```bash # 创建隔离环境 conda env export > environment.yml # 本地导出 conda env create -f environment.yml # 超算重建 ``` 2. **作业排队过长** • 使用弹性资源策略: ```bash #SBATCH --qos=flexible # 可接受资源动态调整 ``` 3. **数据传输中断** • 启用断点续传: ```bash rsync --partial --progress -avz /data user@ip:/path [^2] ``` > **核心建议**:首次使用建议申请超算中心的**新手训练营**(通常免费提供10小时指导上机)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值