凇云用户手册凇云用户手册
首页
新手快速入门
  • 计费平台说明
  • 集群使用说明
  • 文件下载
  • 远程桌面
  • Ai工具
  • 凇云远程工具箱
Q&A
首页
新手快速入门
  • 计费平台说明
  • 集群使用说明
  • 文件下载
  • 远程桌面
  • Ai工具
  • 凇云远程工具箱
Q&A
  • Q&A

Q&A

Q1:我要提交一个shell命令,如mpirun XXX或者python XXX等,该怎么运行?

此处以运行python为例

# 1. 创建虚拟环境
$ module load conda # 加载conda环境
$ conda create -n hello_world python=3.11 # 创建名为hello_world的python版本为3.11的环境
$ conda activate hello_world # 激活此环境

# 2. 复制示例文件夹
$ cd ~ && cp $EXAMPLEDIR . -r  # 复制示例文件到主目录
$ cd examples/04-conda/01-hello_world # 切换到示例文件
$ cat sub-conda.sh # 查看文件内容
#!/bin/bash -l
#SBATCH --job-name=conda                    # 任务名称:conda
#SBATCH --nodes=1                           # 申请节点数:1
#SBATCH --ntasks=1                          # 总task数:128             -> MPI
#SBATCH --cpus-per-task=1                   # 每个task使用的CPU数:1     -> OMP
#SBATCH --partition=zen2                  # 提交的任务分区:zen2分区
## 上述行##号为注释,#为打开
##################分割##################
echo "before activate env,the python is $(which python)"
module load conda
conda activate hello_world
echo "after activate env,the python is $(which python)"
python <<EOF
print("hello world")
EOF

# 3. 在debug分区上做测试,确保脚本无报错
$ sbatch -p debug sub-conda.sh # 提交任务
Submitted batch job XXX # XXX是此任务的jobid
$ cat slurm-XXX.out # 查看输出
before activate env,the python is /public1/arch/common/software/other/conda/2024.06/bin/python
after activate env,the python is /public1/home/test/.conda/envs/hello_world/bin/python
hello world
# 可以看到我们已经成功调用了hello_world环境下的python,并且得到正确的输出

# 4. 在zen2分区提交正式作业
# 此时我们可以简化原脚本中的指令,删除echo输出
$ cat sub-conda.sh # 查看文件内容
#!/bin/bash -l
#SBATCH --job-name=conda                    # 任务名称:vasp
#SBATCH --nodes=1                           # 申请节点数:1
#SBATCH --ntasks=1                          # 总task数:128             -> MPI
#SBATCH --cpus-per-task=1                   # 每个task使用的CPU数:1     -> OMP
#SBATCH --partition=zen2                  # 提交的任务分区:zen2分区
## 上述行##号为注释,#为打开
##################分割##################
module load conda
conda activate hello_world
python <<EOF
print("hello world")
EOF
$ sbatch sub-conda.sh # 脚本里面已经指定了zen2分区,无需再次指定
Submitted batch job XXX # XXX是此任务的jobid

# 5. 任务管理工具
$ squeue # 查看任务状态
$ scancel XXX # 取消此任务
$ scontrol show job XXX # 查看任务详情
最近更新: 2024/11/12 22:20
Contributors: Ricardo, lihaojie87