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 OS
  • leopard: 计算服务器(10.2xx.xx.25):AMD EPYC 7642 48-Core Processor (96 threads), RTX4070 ×2, 128GB RAM, 8TB HDD;Ubuntu 22.04 OS
  • wolf: 计算服务器(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 OS
  • hippo: 存储服务器(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

使用说明

  1. 服务器均是校园网IP,校外使用请登录学校VPN。
  2. 存储服务器只用于存放公用数据(不能跑计算),其数据存储的唯一可用空间为/data。存储服务器的存储空间已映射到计算服务器的本地路径,如/zebra/hippo,因此可以直接从计算服务器访问存储数据。
  3. 对于计算服务器,私有数据存放在/data/目录。例如对于用户cyc,私有目录为/data/cyc
  4. 大体量数据切勿存放在/home路径,因为根目录空间有限(对应SSD系统盘)。
  5. 请使用ssh方式连接服务器,本地客户端推荐使用tabbywinscp工具。
  6. 并行计算时,线程数不要超过逻辑CPU核数,同时警惕内存溢出。
  7. 跑计算任务,或者基于vscode/jupyter调试,务必使用tmux管理会话,以防ssh连接意外断开。具体参考这里
  8. python编程请用户使用各自的conda虚拟环境进行管理,装包切勿都装在base环境。具体参考这里
  9. 对于pipeline编写和调试(尤其深度学习),建议在服务器docker容器内操作。参考Jupyter远程调试docker容器具体VScode远程调试docker容器
  10. 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,同时集成了ANTSFSL6.0.4MRtrix3.0.2c3dfreesurfer7.3.2等常用软件。
  11. 目前zebra服务器空间比较紧张,数据优先在hippo服务器存储。 Updated 2024-08
  12. 机房停电后服务器重启,若出现docker镜像丢失、存储服务器挂载路径失效等问题,请联系管理员。
  13. 使用rm命令删文件前,三思后再执行。原则上存储服务器的数据不要做任何删除操作。若出现重要数据误删,后果自负。
  14. Linux计算服务器的coding,若涉及可视化,优先用jupyter;否则优先用vscode remote。
  15. 使用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权限。

  1. 创建自己的conda环境
sudo apt install jupyter-notebook
# 以ole为例
sudo conda create -n ole python=3.10 

# 若报错command not found,需要添加conda的绝对路径。
# 查看绝对路径:
which conda
  1. 激活zyx环境
conda activate ole

# 如果报错conda: error: argument COMMAND: invalid choice: 'activate'
# 则重新初始化conda:
conda init
  1. 将当前conda环境添加进jupyter kernel
pip install notebook ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple
python -m ipykernel install --user --name ole

# 以上实现了jupyter kernel的环境添加,只需要操作一次即可
  1. 验证获取服务器的jupyter可用端口:
jupyter notebook

根据提示获知可用端口,如8888,然后ctrl+C退出。

  1. 打开windows自带的powershell,新建端口转发的ssh通道。
# 以下在windows powershell中执行
# 8000是本地端口,8888是远程jupyter端口(根据上一步获取的实际可用端口做修改)
# remote_server_ip改成服务器真实IP

ssh -L  8000:localhost:8888 用户名@服务器IP
  1. 进入编程目录(自行指定),启动jupyter会话
tmux new -s jupyter_ole # 新建tmux会话,保持后台运行
cd <编程目录>
jupyter notebook

此时会生成IP,如:http://localhost:8888/tree?token=XXXXXXXXX 把其中8888端口替换成本地端口8000即可,本地浏览器键入IP实现访问。

  1. 新建conda环境对应的ipykernel,即可使用。如果访问不了,需要换新的本地端口重新尝试,如8001
    zyx.png
叶辰飞
叶辰飞
脑网络编织者

用影像解析人脑的秘密