返回文章列表
服务器

即用的云超算服务器怎么使用?

小小
2025-11-06
1天前
即用的云超算服务器怎么使用?

一. 创建一个仅能个人访问的文件夹

我们为何要创建一个这样的文件夹:

  • 数据安全保证,除去管理员权限以外,任何其他用户都无权访问我个人的文件夹
  • 计算进程需要在云端进行,要使用云端计算资源,文档必须上云
如果有更高的安全需求,比如实现从端到端的加密,请使用严格的加密处理

以下命令可以找到我们现在的位置

$ pwd# 比如我的账号# 输出:/home/u23301020039

按照学校的要求,要在/share子目录下创建我们自己的文件夹;我们一并确定操作权限

注意:/share的绝对路径是 /home/u23301020039/share

操作权限解释:

  • 读 = 4,写 = 2,执行 = 1,每个用户的权限就是可用的权限的加和
  • 三个数字分别是:文件所有者,文件所有者组,所有用户
$ mkdir share/MBW # 这不是绝对路径!!!$ ckmod 700 share/MBW

如此,我们建立的文件夹就是一个仅我个人可读可写可执行的目录,其他人没有任何权限(除了管理员权限和无法防御的外界攻击)

如果课题组需要共同在一个目录下协作,那么需要向管理员申请创建一个group,把相关人员写入其中,这时可以将权限设置为770,以满足课题组协作需求 因为不允许user直接创建组...,组只能使用管理员权限创建

二. 上传文件到我的文件夹中

打开云超算平台 - 数据,找到我们刚刚创建的文件夹,点击上传,然后把我们的数据/代码拖进去,就成功上传啦!

注意:计算完成之后,可以将不需要的文件删除,一方面节约云平台的内存,另一方面也是保证原始数据的安全。

这里我们上传一个py文件test.py和一个R文件test.R

三. 执行文件(普通版)

首先设置好我们的工作目录,然后使用命令工具;

需要注意的是,代码和数据的路径一定要正确,从local直接上传可能没法直接运行
实用小建议1:local打包为文件之后一齐上传,数据只要原始数据,避免一次占用过多空间,这样工作目录指定只需要查找修改前缀即可(比如在local工作目录文件夹名称之前统一加上"share/MBW")
实用小建议2:强烈推荐!!!把很长的代码文件分块,使用什么部分就运行什么部分,不要一次使用过多计算资源,节约时间且简单(也可以指定运行的行数
$ cd share/MBW# 1. 在终端直接使用Rscript命令$ Rscript test.R#输出:[1] "hello world"# 2. 进入到R的交互环境$ Rsource("test.R")# 同样输出:[1] "hello world"# 指定运行的行数 需要在后台打开文件对照!# 这里是执行test_line.R的1,3,4行和5~7行$ sed -n -e '1p' -e '3p' -e '4p' -e '5,7p' test_line.R | Rscript -

以上的用法都需要终端存续期间完成,不能在后台运行!!! 但是云超算平台的终端使用很容易超时断开连接,不太建议使用这些方法

四. 执行文件(slurm版)

srun在终端进行,sbatch可以在终端关闭时继续进行,推荐slurm

# 首先查看服务器的可用分区和节点状态$ sinfo# 输出:# PARTITION    AVAIL  TIMELIMIT  NODES  STATE NODELIST# interactive*    up    6:00:00      1   drng cpu7# interactive*    up    6:00:00      1  drain cpu16# interactive*    up    6:00:00     14    mix cpu[1,4-6,8-11,13,15,17-20]# interactive*    up    6:00:00      3  alloc cpu[2-3,12]# interactive*    up    6:00:00      1   idle cpu14# dna             up 5-00:00:00      8    mix cpu[1,4,9-11,13,15,22]# dna             up 5-00:00:00      4  alloc cpu[2-3,12,21]# dna             up 5-00:00:00      1   idle cpu14# rna             up 10-00:00:0      1   drng cpu7# rna             up 10-00:00:0      1  drain cpu16# rna             up 10-00:00:0     11    mix cpu[5-6,8,10-11,13,15,17-20]# rna             up 10-00:00:0      1  alloc cpu12# rna             up 10-00:00:0      1   idle cpu14# protein         up 15-00:00:0      1  drain cpu16# protein         up 15-00:00:0      5    mix cpu[15,17-20]# cell            up 5-00:00:00      1    mix fat1# organ           up 5-00:00:00      1 drain* gpu2# organ           up 5-00:00:00      2    mix gpu[1,3]# organ           up 5-00:00:00      2   idle gpu[4-5]# body            up 10-00:00:0      1 drain* gpu2# body            up 10-00:00:0      2    mix gpu[1,3]# body            up 10-00:00:0      2   idle gpu[4-5]

check计算资源状态之后,选择STATE为完全空闲idle和部分占用mix的节点进行计算。

我们下一步要写一个slurm脚本test_slurm.sh(可以用记事本写作,但window的记事本写出来必须转换一步格式才能给Linux用)注意一个进程只能在一个节点上跑!!! 所以剩余资源还不如local的时候,不如在本地跑。

以下是一个 test_slurm.sh 脚本

#!/bin/bash# ====== Slurm 参数 ======# 指定作业名称#SBATCH --job-name=MBW_slrum_test# 指定分区(队列)#SBATCH --partition=dna# 申请1节点#SBATCH --nodes=1# 在该节点上运行4个任务(进程)#SBATCH --ntasks=1# 每个任务分配1个CPU核心#SBATCH --cpus-per-task=4# 设置作业最大运行时间为1h#SBATCH --time=01:00:00# 指定标准输出文件,%j 会替换为作业ID#SBATCH --output=slurm_%j.out# 指定错误输出文件#SBATCH --error=slurm_%j.err# ====== 你的程序命令 ======# 打印开始时间echo"开始运行: $(date)"# 加载所需环境模块(如果需要)# module load lang/R# module load python/3.9# 进入作业目录cd share/MBW# 运行程序# Python脚本,使用绝对路径python3 /home/u23301020039/share/MBW/test.py# R脚本,使用绝对路径python3 /home/u23301020039/share/MBW/test.R# 打印结束时间echo"运行结束: $(date)"echo"作业完成!"

这里可以将程序分块,每执行一块写入一个作业时间,以供追踪运行状态

常用参数:

  • -J, --job-name:作业名称
  • -p, --partition:指定分区
  • -N, --nodes:需要的节点数
  • -n, --ntasks:总任务数(进程数)
  • -c, --cpus-per-task:每个任务需要的CPU核心数,用于多线程程序
  • --mem, --mem-per-cpu:指定内存,如 `--mem=4G
  • -t, --time:作业运行时间限制
  • -o, --output:标准输出文件
  • -e, --error:标准错误文件
  • --gres:申请特殊资源,如GPU `--gres=gpu:1
cd share/MBW# 转换格式dos2unix test_slurm.sh# sbatch运行sbatch test_slurm.sh# 任务编号# 输出:Submitted batch job 1371427

scontrol show job 1371427可以显示作业的详细信息,sacct可以查看历史作业,查看任务完成情况 如果想要取消作业 则输入scancel 1371427


本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

分享文章
合作伙伴

本站所有广告均是第三方投放,详情请查询本站用户协议