BrainNet实验室内网服务器使用说明
服务器资源:
Linux计算服务器(ssh访问)
spider
: 计算服务器(10.2xx.xx.140):AMD EPYC 7642 48-Core Processor (96 threads), RTX4070 ×2, 128GB RAM, 8TB HDD;Ubuntu 22.04 OSleopard
: 计算服务器(10.2xx.xx.25):AMD EPYC 7642 48-Core Processor (96 threads), RTX4070 ×2, 128GB RAM, 8TB HDD;Ubuntu 22.04 OSwolf
: 计算服务器(10.2xx.xx.25):AMD EPYC 7642 48-Core Processor (192 threads), RTX3080Ti ×1, 128GB RAM, 8TB HDD;Ubuntu 18.04 OS
Linux存储服务器(ssh访问)
zebra
: 存储服务器(10.2xx.xx.127):Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz (28 threads), 64GB RAM, 250GB SSD + 87TB HDD;Ubuntu 22.04 OShippo
: 存储服务器(10.2xx.xx.70):Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz (28 threads), 64GB RAM, 250GB SSD + 102TB HDD;Ubuntu 22.04 OS
Windows服务器(remote desktop访问)
- I7-14700/64GB DDR5/2T SSD/8T HDD/ RTX4060
使用说明
- 服务器均是校园网IP,校外使用请登录学校VPN。
- 存储服务器只用于存放公用数据(不能跑计算),其数据存储的唯一可用空间为
/data
。存储服务器的存储空间已映射到计算服务器的本地路径,如/zebra
,/hippo
,因此可以直接从计算服务器访问存储数据。 - 对于计算服务器,私有数据存放在
/data/
目录。例如对于用户cyc
,私有目录为/data/cyc
。 - 大体量数据切勿存放在
/home
路径,因为根目录空间有限(对应SSD系统盘)。 - 请使用ssh方式连接服务器,本地客户端推荐使用tabby和winscp工具。
- 并行计算时,线程数不要超过逻辑CPU核数,同时警惕内存溢出。
- 跑计算任务,或者基于
vscode
/jupyter
调试,务必使用tmux
管理会话,以防ssh连接意外断开。具体参考这里。 - python编程请用户使用各自的conda虚拟环境进行管理,装包切勿都装在
base
环境。具体参考这里。 - 对于pipeline编写和调试(尤其深度学习),建议在服务器docker容器内操作。参考Jupyter远程调试docker容器具体 及VScode远程调试docker容器。
spider
目前只安装了显卡驱动,没有装cuda和cudnn。基于GPU的深度学习算法研究推荐用docker容器,可以根据需求拉取pytorch官方镜像,或者使用为师倾力打造的神经影像分析基础镜像mindsgo-sz-docker.pkg.coding.net/neuroimage_analysis/base/msg_baseimage_cuda11:deepFS
,内置python3.8 + cuda11.0.221 + cudnn8.0.3 + pytorch1.7.0 + nibabel + scikit-learn + nilearn
,同时集成了ANTS
,FSL6.0.4
,MRtrix3.0.2
,c3d
,freesurfer7.3.2
等常用软件。- 目前
zebra
服务器空间比较紧张,数据优先在hippo
服务器存储。Updated 2024-08
- 机房停电后服务器重启,若出现docker镜像丢失、存储服务器挂载路径失效等问题,请联系管理员。
- 使用rm命令删文件前,三思后再执行。原则上存储服务器的数据不要做任何删除操作。若出现重要数据误删,后果自负。
- Linux计算服务器的coding,若涉及可视化,优先用jupyter;否则优先用vscode remote。
- 使用matlab,优先用Windows服务器。
一些简单的常用命令
-
查看当前CPU和内存状态:
htop
-
查看硬盘信息:
df -h
-
查看硬盘挂载:
lsblk
-
查看当前Docker镜像:
docker images
-
查看正在运行的Docker容器:
docker ps
-
进入Docker容器进行调试:
docker run -it --rm --gpus all --name deepFS -v <localpath>:/dataio mindsgo-sz-docker.pkg.coding.net/neuroimage_analysis/base/msg_baseimage_cuda11:deepFS
-
进入已经运行的Docker容器:
docker exec -it docker_container bash
-
查看显卡运行状态用命令:
nvidia-smi -l 2
-
创建名为
freesurfer
的tmux新会话:tmux new -s freesurfer
-
退出当前tmux会话:
同时按住ctrl和b,松开再按d
-
进入后台中名为
freesurfer
的tmux会话:tmux a -t freesurfer
-
后台中的tmux会话:
tmux ls
-
停止后台中名为
freesurfer
的tmux会话:tmux kill-session -t freesurfer
-
使用ssh将远程的校园网登录网址映射到本地:
# 本地运行下面代码将服务器的校园网映射到本地8088端口
ssh -N -f -L localhost:8088:10.248.98.2:80 用户名@服务器IP
# 在本地浏览器输入下面的网址来登录8088端口并登陆即可使得服务器成功访问校园网
http://localhost:8088/srun_portal_pc?ac_id=1&theme=basic2
计算服务器已安装软件:
- tmux
- MRtrix3
- docker
- conda
计算服务器如何启用jupyter编程:
以下命令可能需要sudo权限。
- 创建自己的conda环境
sudo apt install jupyter-notebook
# 以ole为例
sudo conda create -n ole python=3.10
# 若报错command not found,需要添加conda的绝对路径。
# 查看绝对路径:
which conda
- 激活zyx环境
conda activate ole
# 如果报错conda: error: argument COMMAND: invalid choice: 'activate'
# 则重新初始化conda:
conda init
- 将当前conda环境添加进jupyter kernel
pip install notebook ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple
python -m ipykernel install --user --name ole
# 以上实现了jupyter kernel的环境添加,只需要操作一次即可
- 验证获取服务器的jupyter可用端口:
jupyter notebook
根据提示获知可用端口,如8888,然后ctrl+C退出。
- 打开windows自带的powershell,新建端口转发的ssh通道。
# 以下在windows powershell中执行
# 8000是本地端口,8888是远程jupyter端口(根据上一步获取的实际可用端口做修改)
# remote_server_ip改成服务器真实IP
ssh -L 8000:localhost:8888 用户名@服务器IP
- 进入编程目录(自行指定),启动jupyter会话
tmux new -s jupyter_ole # 新建tmux会话,保持后台运行
cd <编程目录>
jupyter notebook
此时会生成IP,如:http://localhost:8888/tree?token=XXXXXXXXX
把其中8888
端口替换成本地端口8000
即可,本地浏览器键入IP实现访问。
- 新建conda环境对应的ipykernel,即可使用。如果访问不了,需要换新的本地端口重新尝试,如
8001
。