USTC服务器使用笔记
本機(jī)系統(tǒng):Windows 10 (我真是堅(jiān)持走在用Windows寫python的路上不回頭。。。)
使用軟件:putty(ssh連接) 和 WinSCP(文件管理)
1.登陸
putty軟件輸入IP地址和端口號(hào), 登陸gwork
2.環(huán)境
/ghome下的有一userid命名的文件夾,賬號(hào)創(chuàng)建即生成,限額20G, 代碼及script文件放在這里
/gdata下可以自從創(chuàng)建userid命名的文件夾,限額300G,用于儲(chǔ)存job生成的結(jié)果。
/gpubg公共數(shù)據(jù)區(qū)
3.使用
調(diào)試:從gwork主機(jī)sshG101,斷開ssh連接的方法,logout
startdocker -u "-it" -c /bin/bash bit:5000/deepo bit:5000/deepo是一個(gè)集中了幾乎所有深度學(xué)習(xí)框架的一個(gè)docker 鏡像,使用上述命令將進(jìn)入docker container內(nèi)部,相當(dāng)于一個(gè)虛擬機(jī),你在內(nèi)部對(duì)系統(tǒng)所做的任何操作都將在系統(tǒng)退出后丟失,但對(duì)用戶根目錄下(/ghome/<username>)的文件操作將不會(huì)丟失。此命令沒有用-P命令掛載用戶代碼和配置目錄,系統(tǒng)默認(rèn)掛載了整個(gè)用戶根目錄,也沒有使用-D掛載數(shù)據(jù)目錄,用戶可以根據(jù)需要掛載。退出docker的命令:
exit退出G101后,查看鏡像的命令
sudo docker images如果沒有正確得退出docker(如直接關(guān)閉terminal),需要利用命令查看docker id,并且關(guān)閉
sudo docker pssudo docker stop CONTAINER_ID
調(diào)試成功后,編寫pbs文件提交,注意windows系統(tǒng)下的換行符需要改成unix模式(可以使用notepad++編輯器)。
pbs中的命令行如下:
startdocker -D <mydatapath> -P <my-proc-config-path> -s <my-script-file> bit:5000/deepo """-s 參數(shù)后的my-script-file 可以是shell腳本或python腳本,但都需要在第一行加解釋器,如shell腳本需要加:#!/bin/bashpython腳本需要加:#!/usr/local/bin/bash
""" 下面是一個(gè)pbs文件示例: #PBS -N myjob1 #PBS -o /home/liulm/myjob1.out #PBS -e /home/liulm/myjob1.err #PBS -l nodes=1:gpus=1:S #PBS -r y cd $PBS_O_WORKDIR echo Time is 'date' echo Directory is $PWD echo This job runs on the following nodes: cat $PBS_NODELIFE cat $PBS_GPULIFE ./myproc
"""
-N: job 名
-o: 輸出文件路徑
-e: 報(bào)錯(cuò)文件輸出路徑
-l: 集群資源分配, 節(jié)點(diǎn)數(shù)和gpu數(shù)(通常一就可以滿足要求)
-r:? 任務(wù)操作類型, -r表示job立即執(zhí)行
"""
對(duì)job的操作指令集合:
qsub myjob1.pbs #提交作業(yè) qstat -n #查看作業(yè) qhold job_id #掛起作業(yè),被掛起的job狀態(tài)顯示為H qrls job_id #取消掛起作業(yè),job重新運(yùn)行 pbsnodes #查看節(jié)點(diǎn) pbsnodes -l free #查看空閑節(jié)點(diǎn)?4.自定義docker鏡像文件(相當(dāng)于安裝庫(kù)?)
emmm,步驟比較復(fù)雜。
而自己python程序中比較小的packeage可以使用如下方法:
不需要構(gòu)建鏡像。以numpy為例: 1. 下載numpy的源碼(一般能從個(gè)人PC上拷貝),放入服務(wù)器上的某個(gè)目錄,比如/gdata/xxx/pylib 2. 掛載目錄,-v /gdata/xxx/pylib:/data/pylib 3. 將掛載后的目錄加入python import的搜索路徑,兩個(gè)方法a. 指定容器的PYTHONPATH, 在startdocker的-u里面加入-e PYTHONPATH=/data/pylib,此時(shí)/data/pylib的優(yōu)先級(jí)可能次于系統(tǒng)自帶路徑(沒測(cè)過),import numpy 會(huì)導(dǎo)入系統(tǒng)的numpyb. 在程序的一開始加入下面兩行代碼import syssys.path.insert(1, '/data/pylib')1表示/data/pylib的優(yōu)先級(jí)僅次于程序所在目錄此時(shí)/data/pylib的優(yōu)先級(jí)高于系統(tǒng)自帶路徑,import numpy 會(huì)導(dǎo)入/data/pylib的numpy?
5. DGX1服務(wù)器使用
slurm構(gòu)成的小集群, 操作仍在gwork 上,共享文件系統(tǒng)
script格式如下:
my.slurm#!/bin/bash #SBATCH --job-name=myjob1 #SBATCH -gres=gpu:4 #SBATCH --output=myjob.out echo "Submitted from $SLURM_SUBMIT_DIR" on node "$SLURM_SUBMIT_HOST" echo "Running on node "$SLURM _JOB_NODELIST echo "Allocate Gpu Units:" $CUDA_VISABLE_DEVICES ##program here## startdocker {-c <mycd>|-s <myscript>} nvdl.githost.io:4678/dgx/cuda:9.0-cudnn7-devel-ubuntu16.04操作命令:
sbatch <myscript> #提交文件 squeue #查看隊(duì)列情況 scancel <jobid> #取消job?
轉(zhuǎn)載于:https://www.cnblogs.com/fassy/p/8818883.html
總結(jié)
以上是生活随笔為你收集整理的USTC服务器使用笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css中background-image
- 下一篇: 三种虚拟化技术比较