0.1 摘要
本文对我校A100服务器进行配置,利用 Docker容器 实现多用户的共享使用,同时实现远程运维、硬件资源监控等高权限管理操作。
文中部分敏感信息不予公布,本文仅用作技术日志,不作为服务器维护参考。
0.2 更新日志
- 2024.10.28 考察当前对高性能算力服务器单机/集群的多人共享方案
- 2024.10.29 抛弃开源管理平台,转入手撕Docker。
- 2024.10.30 搭建基本完成,准备投入灰度上线。
- 2024.10.31 简化用户使用流程,完善用户视角文档。
- 2024.12.06 更新Jupyter Lab
0.3 背景依托
博0阶段横向
0.4 服务器配置
- 浪潮NF5280M6
- 2*Intel Xeon Platinum 8352V(32C,2.1GHz)
- 4*32G DDR4
- 2*960GB SSD(SATA) 后续会扩展SSD
- 出厂Raid1已关闭
- 2千兆电口+2千兆光口
- 2*1300W 380V电源供给
- A100 80G
0.5 资源申请与技术支持
请电联15065889121 崔锴华(临潼校区15-101)
目录
- 0.1 摘要
- 0.2 更新日志
- 0.3 背景依托
- 0.4 服务器配置
- 0.5 资源申请与技术支持
- 目录
- 1 终端基本连接配置
- 2 Jupyter服务器
- 3 VS Code
- 4 Pycharm
- 5 提供的预置镜像
1 终端基本连接配置
1.1 SSH连接(返单验收步骤)
本文推荐使用MobaXterm
软件安装过程略。
请填写返单中的IP地址、SSH外漏端口,检查无误后点击OK建立连接。
首次连接需要验证秘钥,单击Accept即可。
在终端对话框中,login as输入返单中的用户名并回车,一般情况下为
root
。
然后输入返单中的管理密码,默认密码为xustckh
。
注意:密码的输入过程并不显示,输入完毕后直接回车即可。 请输入命令
nvidia-smi
若有以下输出,则为环境配置正常,通过验收。
若出现以下输出,请联系技术支持并提供返单中的
容器名
,我方协助修复。
Failed to initialize NVML: Unknown Error
请注意,以上异常我方称之为
掉驱动
,经过实际测试发现,这属于官方docker基础镜像配置的Bug,但扔不排除用户在使用中由于错误的程序释放、爆显存等情况导致的容器自保护
措施。
此章节完成了对下发资源的验收、终端的连接,请保留此连接,后续步骤将经常使用。
1.2 MobaXterm的使用技巧
- 复制:选中文本后自动复制,不能使用Ctrl+C
- 粘贴:右键点选
Paste
,可在设置中手动设置粘贴快捷键。
1.3 科研常用命令
1.3.1 修改密码
passwd root
1.3.2 安装所需库
基础环境中已经包含CUDA、Pytorch、Matplotlib等常用深度学习库,不建议对自带库进行升级,此处仅针对基础环境中不包含的库
pip install XXX
已经配置好清华源。
1.3.3 数据集与冗余文件
请将代码、数据集等较大文件放到返单中的
数据盘挂载点
目录下,若将数据文件存放在容器的其它位置,出现数据丢失、空间告警等情况暂不提供技术支持,届时请及时备份文件到本地,并重新提起资源申请流程。
2 Jupyter服务器
2.1
、2.2
小节均为启动方法,请先按照[2.3
](#23-安装中文语言包和代码补全}小节配置中文语言包和代码补全功能。
2.1 Jupyter Lab(推荐)
请在终端中输入
jupyter lab --notebook-dir=/workdata
按照提示
按照输出提示,请记录Token值
然后在浏览器中访问
http://返单IP:Jupyter宿主机端口
例如本文演示服务器的返单IP为59.74.191.171,Jupyter宿主机端口为8988,则访问地址为
http://59.74.191.171:8988
注意,若使用Vscode中的终端,可以直接使用vscode转发的端口地址
出现如下界面
有两种访问方式:
- 输入上文记录的Token。
-
推荐使用: 使用上文记录的Token设置密码,后续在上图密码框中输入设定的密码即可登录。
2.2 Jupyter Notebook
jupyter notebook --notebook-dir=/workdata
按照提示
按照输出提示,请记录Token值
然后在浏览器中访问
http://返单IP:Jupyter宿主机端口
例如本文演示服务器的返单IP为59.74.191.171,Jupyter宿主机端口为8988,则访问地址为
http://59.74.191.171:8988
注意,若使用Vscode中的终端,可以直接使用vscode转发的端口地址
出现如下界面
有两种访问方式:
- 输入上文记录的Token。
-
推荐使用: 使用上文记录的Token设置密码,后续在上图密码框中输入设定的密码即可登录。
2.3 安装中文语言包和代码补全
请在终端中输入以下命令
pip3 install jupyterlab-language-pack-zh-CN -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install jupyterlab-lsp -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install -U jedi-language-server -i https://pypi.tuna.tsinghua.edu.cn/simple
重新运行Jupyter后,在设置中手动切换语言
对Jupyter的具体使用不属于本文范围,但提供技术支持。
3 VS Code
首先请安装以下扩展
然后打开侧边栏中的远程资源管理器
添加一个SSH链接,并输入SSH连接命令
SSH连接命令格式为
root@返单IP
,例如本文示例为root@59.74.191.171
,并回车。
此处选择默认的第一项即可。
右下角弹出提示,单击“打开配置”
默认配置为
Host 59.74.191.171
HostName 59.74.191.171
User root
请增加配置项Port
,内容为返单端口,例如本文示例为
Host 59.74.191.171
HostName 59.74.191.171
User root
Port 1234
其中的Host
配置项为自定义命名,可以按需修改,此处修改为CKH-Server-Test
Ctrl+S保存,并刷新。
刷新后列表中出现新添加的主机,单击箭头建立连接
Platform选择
Linux
然后输入密码
连接成功后点击“打开文件夹”,选择远程目录。
确定后会提示再次输入密码,然后弹出以下提示,勾选后信任。
链接成功后可以在SSH远程安装Python、Jupyter插件等
-
技巧
- Python解释器的选择无差别,两者均有完整的环境,若需要自己安装新库,请选择安装库的解释器。
- 下方的终端可以代替前文的MobaXterm
- Python解释器的选择无差别,两者均有完整的环境,若需要自己安装新库,请选择安装库的解释器。
对VS Code的后续使用不属于本文范围,但提供技术支持。
4 Pycharm
请使用专业版,我校西科电邮可以用于申请学生专业版授权,具体申请方法可参考计算机学院创新创业中心实验室
2022-09任务
4.1 连接
点击工具->部署->配置
增加SFTP连接
服务器名称随意
按下图填写完成后点击
测试连接
若出现以下提示,则表明配置正确,否则请重点检查端口、密码
确定后选择刚刚新建的SSH配置,然后指定根路径为/
,
4.2 添加解释器
选择现有SSH连接并选择对应服务器。
对Pycharm的后续使用不属于本文范围,但提供技术支持。
5 提供的预置镜像
5.1 说明
提供的预置镜像以NGC镜像为底座,增加SSH、Jupyter、深度学习常用库,能够满足常见CV、LLM的训练需求。
-
容器映射
默认情况下需要映射容器内的端口有
服务 容器内端口 SSH 22 Jupyter 8888
映射后宿主机端口在返单中标注,如需映射其它端口请在申请中单独说明。
5.2 当前可提供的环境配置
提供以下基础镜像作为底座
REPOSITORY | TAG | IMAGE | ID | CREATED | SIZE |
---|---|---|---|---|---|
nvidia/cuda | 12.6.2-cudnn-devel-ubuntu24.04 | 7cb2db509a78 | 2 | weeks | 8.21GB |
nvcr.io/nvidia/pytorch | 24.10-py3 | 295f8a46d16e | 4 | weeks | 21GB |
nvcr.io/nvidia/tensorflow | 24.10-tf2-py3 | 2a8ae2ab109c | 4 | weeks | 16.1GB |
nvcr.io/nvidia/pytorch | 24.09-py3 | 112a05617efe | 8 | weeks | 21GB |
nvcr.io/nvidia/tensorflow | 24.09-tf2-py3 | 3e7732fa6910 | 8 | weeks | 16.1GB |
nvcr.io/nvidia/pytorch | 24.08-py3 | c4c51e501ca9 | 2 | months | 20.4GB |
nvcr.io/nvidia/pytorch | 23.11-py3 | 64e55e092216 | 11 | months | 21.9GB |
注意: 实际创建容器的镜像由本人重新编译,以满足5.1小节的说明,若需要NGC或Docker Hub-Nvidia中的其它镜像作为底座,可以单独提交申请,本人进行编译。