登录交我算集群¶
约 1122 个字 57 行代码 预计阅读时间 4 分钟
本部分内容用于指导如何在校内赛中连接交我算集群并进行开发
命令行连接¶
使用下述命令即可登录到本次比赛所需使用的集群登录节点
# 请根据你得到的账号填写<your account name>,例如 stu1500
# CPU 集群
ssh <your account name>@armlogin.hpc.sjtu.edu.cn
# NPU 集群
ssh <your account name>@ascend.xflops.org
信息绑定
首次登录 CPU 集群时可能会看到如下报错:
This account have not bind Email/jAccount, refer to https://docs.hpc.sjtu.edu.cn/accounts/security.html
此时需要前往超算管理系统进行信息绑定,绑定后即可正常登录。
在信息绑定处只需要绑定 jAccount 和邮箱其中一个即可。这里我们推荐填写邮箱,如果有同学的 jAccount 已经绑定了其他交我算账号可能会出现未知问题。
NPU 集群无此问题。
配置 config 文件¶
可以通过配置 config 文件进行更为方便的连接,例如 Windows 系统可以在 C:\Users\<用户名>\.ssh\config 文件中配置 ssh 连接。
这里我们推荐采用如下配置:
Host arm
HostName armlogin.hpc.sjtu.edu.cn
# 请根据你解密得到的账号填写$YOUR_USERNAME,例如 stu1500
User $YOUR_USERNAME
Host arm_cal
# 请根据你申请到的计算节点名称修改,例如 kp007
HostName $CALCULATOR_NODE_NAME
User $YOUR_USERNAME
ProxyJump arm
Host ascend
HostName ascend.xflops.org
User $YOUR_USERNAME
Host ascend_cal
# 请根据你申请到的计算节点名称修改,例如 ascend6
HostName $CALCULATOR_NODE_NAME
User $YOUR_USERNAME
ProxyJump ascend
完成配置后即可使用下述命令进行连接
ssh arm # 连接到 CPU 集群登录节点
ssh arm_cal # 连接到 CPU 集群对应的计算节点
ssh ascend # 连接到 NPU 集群登录节点
ssh ascend_cal # 连接到 NPU 集群对应的计算节点
使用 VSCode 连接¶
在完成配置 config 文件后,进入 VSCode 点击左下角的连接到远程主机即可通过选择主机名 arm/arm_cal 连接到对应节点进行 VSCode 上的远程开发。
交我算密码登录时采用 keyboard-interactive 认证方式
VSCode 仅在 password 认证时会自动弹出窗口输入密码,但是 keyboard-interactive 认证不会弹出窗口
请在 VSCode 的 Remote.SSH 设置中勾选 Show Login Terminal。再次重新连接,此时 VSCode 的终端会提示你输入登录密码,输入完成后即可连接成功。
请在计算节点上使用 VSCode 开发
登录节点因使用用户较多且存在内置的资源占用限制,使用 VSCode 开发可能会略显卡顿。同时,如果 VSCode 插件较多甚至可能会使用过多资源导致你的账号被封禁
配置公钥免密登录¶
CPU 集群¶
交我算特殊的免密登录方式
交我算为了增强账号的安全性,现在直接将自己的公钥放入 ~/.ssh/authorized_keys 无法成功免密登录。需要在交我算的平台上申请证书后免密登录。
参考链接:
申请证书完成之后请将下载的证书文件(与私钥)放置到 ~/.ssh/ 目录下(Windows 系统通常为 C:\Users\<用户名>\.ssh\),并按照如下方式配置 config 文件:
Host arm
HostName armlogin.hpc.sjtu.edu.cn
# 请根据你解密得到的账号填写$YOUR_USERNAME,例如`stu114`
User $YOUR_USERNAME
# 使用的私钥文件地址
IdentityFile id_ed25519
# 使用的证书文件地址
CertificateFile id_ed25519-cert.pub
Host arm_cal
# 请根据你申请到的计算节点名称修改,例如`kp007`
HostName $CALCULATOR_NODE_NAME
User $YOUR_USERNAME
ProxyJump arm
# 使用的私钥文件地址
IdentityFile id_ed25519
# 使用的证书文件地址
CertificateFile id_ed25519-cert.pub
之后即可使用命令行与 VSCode 进行免密登录。
NPU 集群¶
采用默认方式将自己的公钥放入 ~/.ssh/authorized_keys 即可成功免密登录。
如何从私钥生成公钥
如果上一步选择直接让交我算自动生成私钥与对应证书,则可以在本地使用如下命令生成公钥:
ssh-keygen -y -f id_ed25519 > id_ed25519.pub
随后将生成的公钥 id_ed25519.pub 中的内容复制进 NPU 集群的 ~/.ssh/authorized_keys 文件中即可。
申请计算资源¶
CPU 集群¶
本次校内赛使用的队列均需要加入 -q 选项申请
使用 salloc 申请示例:
salloc -p kp_interact -q kp_interact -c 8 -t 2:00:00 # 在kp_interact 队列上申请单节点8核心的任务,限时2小时
使用 slurm 申请示例:
#!/bin/bash
#SBATCH -p kp_interact
#SBATCH -q kp_interact
#SBATCH -c 8
#SBATCH -t 2:00:00
hostname
将上述内容写入文件后运行 sbatch <filename> 即可成功申请。
请注意所有题目均预期你在计算节点上运行,你可以运行 hostname 查看自己当前所在的节点。特别提醒 salloc 命令运行完成后得到的终端在原节点而不是分配到的节点。
常见报错
-
如果在使用
salloc时出现如下报错:salloc: error: Job submit/allocate failed: Requested partition configuration not available now请检查是否正确填写 -t 选项
-
sbatch提交任务无报错,但作业静默消失请检查是否重定向输出到不存在的目录。
NPU 集群¶
基础操作与 CPU 集群类似,使用 -p contest-slice -q contest_slice -c 12 --gres=npu:1 申请单卡资源,使用 -p contest-full -q contest_full -c 192 --gres=npu:8 申请多卡资源。
NPU 资源说明
由于 NPU 总数有限,我们对于 NPU 资源的使用进行了一定限制,具体如下:
contest-slice队列为单卡资源,允许每个账号同时申请 1 个任务,必须申请 1 卡 12 CPU。contest-full队列为多卡资源,允许每个账号同时申请 1 个任务,必须申请 8 卡 192 CPU。该队列需达成一定条件后才解锁,具体条件详见比赛说明。