Accept offer、拿到学号、激活邮箱,可登录 myStudentAdmin 验证。登录服务器用的帐号是要另外申请、邮件告知的,但密码跟登 myStudentAdmin 是同一个。
国内/校外访问要连 UTS 的 client。有两个:[3] 是 FortiClient,而 [4] 是 F5 Edge Client。[3] 那个好像连不了超算(不知道有没有记错,没有重新测试过),用 [4] 的可以,所以跟 [4] 步骤装软件、连 就好(UTS 的页面 firefox 好像刷不出内容,可以试下用 chrome)。后续步骤都要连着操作,连申请帐号都要。
参照 [4],在 iHPC 主页[6] -> Account Request,填资料,submit,然后等他们创号(我等了几分钟,挺快),好了会发到 UTS 邮箱,有几封,其中一封 iHPC Admin 发来的邮件底部会告诉超算的用户名:
Username 是登 iHPC 主页[6]、shell 连服务器的用户名;Password 那「standard UTS password」就是登 myStudentAdmin 那个密码。
在 [6] -> Login 登录,就会跳到 iHPC Overview[7],可以看到当前各集群的使用状态。集群是用行星命名的,如 Jupiter、Mars 等。点 Documentation 有介绍。
Access And Connectivity 介绍连集群的方法,其中命令行连看 Connecting via SSH Command Line[8]。几条基本信息:
access.ihpc.uts.edu.au
,是登录节点/堡垒机连进登录机后,参考 [8],可用 cnode
命令看集群信息(其实可以直接在 iHPC Overview 看?);选好要连的集群之后用 ssh <集群名>
连去相应集群,集群名在 iHPC Overview 有列出,如 mars1
。
有两个集群好像要另外申请才能连:Jupiter、Saturn,详见 [8]。
可以配 ssh 免密登录,然后用 VS Code 连。
Getting Started[9] -> File Stores、File Systems[10] 有介绍存储空间,应该都是指连去特定集群后的空间,而不是登录机的。主要关注几点:
~
):是各集群同步的,见 [9],所以 ssh 只在一个集群上配一次就好,会自动同步。只有 32G。ls /usr/local
得:AnsysEM Cytoscape-3.9.1 nccl-2.15-11.8
apptainer-1.1.9 DassaultSystemes2022 nccl-2.16-11.0
arb-6.0.6 dock6 nccl-2.16-11.8
bin eclipse nccl-2.16-12.0
blender-3.3.2 eeglab2022.1 nccl-2.6-10.0
chimera-1.16 ESI_Software_2019.5 nccl-2.8-10.1
cluster_reporter ESI_Software_2021.5 nccl-2.8-11.1
CodeBlocks-Fortran-1.7 etc nccl-2.8-11.2
comsol61 FastQC nccl-2.9-11.3
containers feko NetLogo-6.3
CST_STUDIO_SUITE_2022 Fiji.app openblas-0.3.21
cuda-10.0 fragpipe openmpi-intel-4.1.1
cuda-10.1 fragpipe16 ParaView-5.11.0
cuda-10.2 FreeCAD Perseus
cuda-11.0 games protobuf-3.19.6
cuda-11.1 gephi-0.10.1 pycharm-community-2022
cuda-11.2 gsl-2.7 quantlib-1.27.1
cuda-11.3 hyperworks R-3.6
cuda-11.4 IGV-2.15.4 R-4.1
cuda-11.5 ImageJ R-4.2
cuda-11.6 include R-4.3
cuda-11.7 lib rstudio-2022
cuda-11.8 lib64 rstudio-2023
cuda-12.0 libexec SAS-9.4
cudnn7.6-10.0 matlab2020b sbin
cudnn8.0-10.1 matlab2021a share
cudnn8.2-10.2 matlab2021b singularity-3.8.7
cudnn8.2-11.4 matlab2022a singularityce-3.10.5
cudnn8.3-10.2 matlab2022b Slicer-5.2.1
cudnn8.3-11.5 matlab2023a SPSS
cudnn8.4-10.2 MaxQuant src
cudnn8.4-11.6 MeshLab stata17
cudnn8.5-10.2 NAG stata18
cudnn8.5-11.7 ncbi-blast-2.13.0+ tecplot
cudnn8.6-10.2 ncbi-blast-ihpc-2.13.0+ TensorRT-8.5-10.2
cudnn8.6-11.8 nccl-2.11-11.4 TensorRT-8.5-11.8
cudnn8.7-10.2 nccl-2.11-11.5 vmd-1.9.3
cudnn8.7-11.8 nccl-2.12-11.6 VSCode-linux-x64
cudnn8.8-11.8 nccl-2.14-11.7 weka-3.8.6
cudnn8.8-12.0 nccl-2.15-10.2 Wolfram
如果有包装不了(如 pytorch 1.2.0),可以用 singularity 容器,基本用法、创建文件 recipe 写法、build 方法见 [17-21]。
在 UTS 的机器上写 recipe、build 都有些要另外注意的。recipe 示例,[21] 说 %post
中要加两句:
export DEBIAN_FRONTEND=noninteractive
:当创建基于 ubuntu / debian 的容器时要;mkdir -p /data /projects /scratch
:这 3 个路径都是 UTS iHPC 的机器中有的,在 iHPC 机器上跑的 singularity 都会自动尝试挂载它们,要保证镜像中有这几个文件夹。# py36_pt120
Bootstrap: docker
From: pytorch/pytorch:1.2-cuda10.0-cudnn7-runtime
%labels
Python 3.6.9
CUDA 10.0
cuDNN 7
PyTorch 1.2.0
torchvision 0.4.0
%post
# required by UTS iHPC
export DEBIAN_FRONTEND=noninteractive
mkdir -p /data /projects /scratch
# python packages
pip install --upgrade pip setuptools wheel
pip install --no-cache-dir \
"scikit-learn>=0.23.2" "munkres>=1.1.4" "opencv-python==4.3.0.38" "numpy>=1.19.1" \
click Cython easydict fire graphviz h5py matplotlib \
ninja pandas PyYAML scipy tensorboard xlwt
build 的时候,[20] 说因为没有 root,[19] 的普通 build 命令可能不行,要用 [21] 的 builder,而 recipe、创建的镜像文件都要在 /scratch 下。步骤:
ssh mars1
。后面创建要用 singularity_build
脚本,集群中才有,登录节点没有;cd
过去;singularity_build
,提示、步骤参考 [21]:
1
(Build from Recipe File);/scratch//py36_pt120
;y
改 n
跳过;1
(Image),如果要编译 cuda 代码(可能指 StyleGAN 那种有自写 cuda 文件的?)就选 2
(Image-nv)。其实感觉可以无脑选 2
?py36_pt120
则输出的文件就是 py36_pt120.sif;10
(To exit)退出;用容器跑程序:singularity exec --nv /share/$(whoami)/py36_pt120.sif python main.py
;或写一个驱动脚本(singu-run.sh),套娃执行真正的实验脚本(my_experiment.sh):
#!/bin/bash
# singu-run.sh
IMAGE_F=/share/`whoami`/py36_pt120.sif
if [ -z $1 ]; then echo Please specify script to run; exit; fi
if [ ! -f $1 ]; then echo No such file: $1; exit; fi
singularity exec --nv $IMAGE_F bash $1
然后:bash singu-run.sh my_experiment.sh
。
想像 [11] 一样,用脚本筛选能用的集群。首先 cnode all
的输出形如:
*******************************************************
* Welcome to the iHPC *
* *
* To connect to a node use the ssh command *
* (eg. ssh mars6). *
* *
*******************************************************
Node Index Connect %CPU %Mem %GPU %GPU Mem User(s)
jupiter1 3 no 100.0 11.4 edehghan,dmartins
mars1 3 no 0.5 4.9 0.0% 0.1% xwang12,mfeizi
mars24 2 yes 1.6 5.3 0.0% 0.1% aetminan
mercury8 0 yes 0.5 7.7 0.0% 0.3%
(...更多...)
Node
是 host name,用 ssh
连;Connect
表明能不能连,因为每个集群最多同时连两个人,User(s)
是正在连的用户;%GPU
是 gpu load、%GPU Mem
是显存占比,如果集群无 gpu 则此两列为空,如 jupiter1
。cnode all | \
awk 'NR > 10 && NF > 6 {print $1" "$3" "$6" "$7}' | \
grep -v 'jupiter' | grep -v 'saturn' | \
grep yes | \
awk '{print $1" "$3" "$4}' | \
sort -n -k 2 -k 3
其中:
awk 'NR > 10 && NF > 6 {print $1" "$3" "$6" "$7}'
,虑掉前面一些 welcome 输出和元信息(NR > 10)、无 gpu 的行(NF > 6),只输出 Node
、Connect
、%GPU
、%GPU Mem
4 列(NR 是当前行数;NF 是当前行的列数,默认空格分隔。都从 1 开始);grep -v 'jupite' | grep -v 'saturn'
筛掉 jupiter 和 saturn 的集群,因为要另外申请,还没申;grep yes
选能连的;awk '{print $1" "$3" "$4}'
去掉 Connect
一列;sort -n -k 2 -k 3
升序排序,先按 %GPU
,再按 %GPU Mem
。Building 2 某自习室是升降台,型号是 ICF motion rectangular,发现一开始高度只能升到 780mm 就卡住,不能站着工作。在网页右下角客服聊天那要了一份说明书(instructions),其实高度可调最大范围是 [670, 1320] mm,但它可能根据使用习惯自动定死在一个更小的范围,要重调这个范围。分 set highest / lowest height limit,方法类似:
Research student 学校会发一台电脑,同时送电脑包、键鼠套装。键鼠套装是 Dell KM7120W Multi-Device Wirreless Keyboard and Mouse Combo,键盘有 Fn 键,F1 ~ F12 默认不是 F1 ~ F12,而是功能键。想改回默认 F1 ~ F12 的话,参考 [22],按 Fn + Esc,就可以了。