天河二号使用指南
- 使用方式
- 登錄
- 文件傳輸
- 文件系統
- 數據傳輸
- 環境變量管理工具module
- 編譯器
- Intel編譯器
- GCC編譯器
- MPI編譯環境
- MIC編譯環境
- 作業提交
- 常見上機問題FAQ
使用方式
- 節點使用方式:獨占式
- 機時計算:以節點為基本單元計算核時。
- 開源軟件的安裝:超算中心根據實際情況對基于“天河二號”部署的開源軟件的安裝進行一定程度上的協助。
- 請不要在登錄結點直接運行可執行程序(極大的影響其他用戶的登錄和使用效率)。
- 如無特殊需要,請使用批處理方式(yhbatch)提交任務。
- 請保存好運行程序的log文件,從而方便超算中心技術人員在作業出問題后,協助解決問題。
- 若需登錄計算結點運行程序,需要先分配計算結點,方可登錄。
- 除了可看見work分區的用戶,其他用戶都需在提交命令中加入參數選項“-p 分區名”,即提交命令應為“yhurn -p 分區名 …”或者“yhbatch -p 分區名”。
登錄
- Step 1:從管理員處獲取認證文件
- Step 2:使用終端工具連接,通過使用系統管理員提供的Private Key文件(隨賬號通知郵件附件給出)進行認證。
文件傳輸
文件系統
天河二號高性能計算平臺文件系統被分為/home和/work兩個區
/home分區
- 僅用于存儲代碼和程序編譯。
- 在腳本中使用“/home/系統賬號”引用該分區下的用戶主目錄。
- 試用用戶磁盤限額:50GB;簽約用戶磁盤限額:100GB。
- 所有登錄服務結點和計算結點皆可以訪問該分區下的文件。
/work分區
- 用于數據存放和運行作業。
- 在腳本中使用“/work/系統賬號”引用該分區下的用戶主目錄。
- 該分區磁盤容量大,數據讀寫快。試用用戶磁盤限額:200GB~300GB;簽約用戶磁盤限額根據用戶的具體需求進行配置。
- 所有登錄服務結點和計算結點都可以訪問該分區下的文件。
數據傳輸
- 從外部機器向天河二號上傳或下載文件,可以使用sftp 客戶端(如Xmanager、FileZilla、WinScp、FlashFTP)
- 密鑰所在路徑不能含有中文。
- 文件傳輸時,數據應上傳至“/home/系統賬號/workspace/”下。
- 程序編譯應在“/home/系統賬號/”下進行
- 提交作業以及運行程序應在“/home/系統賬號/workspace”下進行。
- 在有大量文件需要下載時,建議使用tar命令進行打包,以加快下載速度,減少出錯幾率。該命令為:tar –cvf file.tar file,其中file為需要打包壓縮的文件或目錄,file.tar為打包后的文件。
環境變量管理工具module
由于不同用戶在天河二號上可能需要使用不同的軟件環境,配置不同的環境變量,因而在天河二號上安裝了module ,通過配置modulefile支持環境變量的動態修改,基本命令:
- module avail:查看可用的模塊的列表。
- module load [modulesfile]:加載需要使用的modulefiles。
- module其它用法,可在help中查詢。
編譯器
- 天河二號系統已配置GNU和Intel編譯器
- 支持 C,C++,Fortran77、Fortran90 語言程序的開發。
- 天河二號系統支持OpenMP和MPI兩種并行編程模式。
- OpenMP為共享內存方式,僅能在一個計算結點內并行,最大線程數不能超過結點處理器核心數。
- MPI是分布式內存并行,計算作業可以在一個或者若干個結點上進行,最大進程數僅受用戶帳號所能調用的CPU總數限制。
- 共享內存的OpenMP并行方式通常由編譯器來支持,目前GNU和Intel的編譯器均已實現了對該標準的支持。
Intel編譯器
- 天河二號系統上已配置3個版本的Intel編譯器,分別為intel 11.1、intel 13和intel 14。
- intel 14為用戶默認編譯器。
- 若無特殊要求,用戶登錄后無需設置編譯器環境。
- 可使用module進行加載其他版本的Intel編譯器:
- 使用Intel 13編譯器:module load intel-compilers/13.0.0
- 使用Intel 11編譯器:module load intel-compilers/11.1
- which命令:查找編譯命令所在的路徑,如“which icc”
- -v:確認編譯器的版本,如“icc -v”、“ifort -v”
- –help:獲取Intel編譯器想去,如“icc –help”
GCC編譯器
- 天河二號上默認安裝的GNU編譯器版本是4.4.6
- 相關的編譯命令都安裝到/usr/bin目錄中。
MPI編譯環境
由于天河二號采用了自主互連的高速網絡,因此底層MPI為自主實現,基于Intel編譯器和GNU編譯器進行編譯。
系統默認使用/usr/local/mpi3目錄下的mpi。該mpi調用Intel 14編譯器,且該mpi的庫均為靜態庫,用戶不用擔心動態鏈接庫問題
如果編譯需要使用動態庫,請調用 mpi3-dynamic , 可用 MPI/Intel/MPICH/3.1-dyn 加載環境 。
不同MPI版本之間的切換,用戶可通過module工具來完成。
如用戶必須使用其他版本mpi,比如openmpi1.4.8,mpich2-1.3.1 等,也可以自己安裝并部署。
MPI編譯命令內部會自動包含MPI標準頭文件所在的路徑,并自動連接所需的MPI通信接口庫,所以不需要用戶在命令行參數中指定。
如果用戶使用makefile或autoconf編譯MPI并行程序,還可以將makefile中的CC,CXX,F77,F90等變量設置成mpicc,mpicxx,mpif77,mpif90,或這在autoconf的configure過程前設置CC,CXX,F77和F90等環境變量為mpicc,mpicxx,mpif77和mpif90等。
MIC編譯環境
MIC編譯器包含Intel 13和14兩個版本編譯器,目前支持native和offload兩種編程模式。
用戶環境默認支持Intel 14編譯器
若需13版編譯器,操作:module load intel-compilers/13.0.0
用戶若需登錄MIC使用native模式計算,需要配置計算結點的環境,請發郵件到客服郵箱該申請配置環境。
作業提交
yhinfo 或 yhi :查看結點狀態。(yhi為yhinfo命令的簡寫)
返回信息:- PARTITION:分區
- NODES:節點數
- NODELIST:節點列表
- STATE:節點運行狀態(idle:空閑,allocated:已分配作業)
yhqueue 或 yhq:查看作業運行情況(yhq為yhueue命令的簡寫)(推薦使用“yhq -a”查看作業狀態信息)
返回信息:- JOBID:任務ID
- Name:任務名稱
- USER:用戶
- TIME:已運行時間
- NODES:占用結點數
- NODELIST:任務運行的結點列表
yhrun:交互式作業提交
- 在shell窗口中執行yhrun 命令,格式:yhrun [options] program
- yhrun常用選項:
- -n, –ntasks=number:指定要運行的任務數。請求為number 個任務分配資源,默認為每個任務一個處理器核。
- -c, –cpus-per-task=ncpus:告知資源管理系統控制進程,作業步的每個任務需要ncpus 個處理器核。若未指定此選項,則控制進程默認為每個任務分配一個處理器核。
- -N, –nodes=minnodes[-maxnodes]:為作業分配最少minnodes個、最多maxnodes個結點(例如“-N 2-4”或“–nodes=2-4”)。如果作業的結點申請數超出了分區的結點總數,作業將被拒絕。缺省條件下,作業將被分配盡可能多的結點。
- -p, –partition=partition name:在指定分區中分配資源。如未指定,則由控制進程在系統默認分區中分配資源。
- -w, –nodelist=node name list:請求指定的結點名字列表。作業分配資源中將至少包含這些結點。可以用逗號分隔的結點名或結點范圍(如cn[1-5,7,…])指定,或者用文件名指定。如果參數中包含“/”字符,則會被當作文件名。如果指定了最大結點數如-N 1-2,但是文件中有多余2個結點,則請求列表中只使用前2個結點。
- -x, –exclude=node name list:不要將指定的結點分配給作業。如果資源請求不能立即被滿足,yhrun將阻塞等待,直到資源可用以運行作業。如果指定了–immediate選項,則yhrun將在資源不是立即可用時終止。
- -h, –help:查看yhrun更多選項。
yhbatch 批處理作業,是用戶編寫的作業腳本,指定資源需求約束,提交后臺執行作業。
- 用戶提交命令即返回命令行窗口,系統將在所分配的第一個計算結點(而不是登錄結點)上加載執行用戶的作業腳本。
- 批處理作業的腳本為一個文本文件,腳本第一行以“#!”字符開頭。由于計算節點為精簡環境,只提供 sh 和 bash 的默認支持。
yhalloc:節點資源搶占命令,支持用戶在提交作業前,搶占所需計算資源。
yhcancel:取消任務命令。格式: yhcancel jobid
- 對于排隊作業,取消作業將簡單地把作業標記為CANCELLED狀態而結束作業。
- 對于運行中或掛起的作業,取消作業將終止作業的所有作業步,包括批處理作業腳本,將作業標記為CANCELLED狀態,并回收分配給作業的結點。一般地,批處理作業將會馬上終止。
- 交互作業的yhrun進程將會感知到任務的退出而終止;
- 搶占結點資源的yhalloc進程不會自動退出,除非作業所執行的用戶命令因作業或任務的結束而終止。
- 在作業被取消時,控制進程都會發送通知消息給分配資源的yhrun或yhalloc進程。用戶可以選擇通過yhalloc的–kill-command選項設置在收到通知時向所執行的命令發送信號將其終止。
常見上機問題(FAQ)
VPN賬號連接成功,但是終端工具連接不了天河二號。
- 如果您的電腦安裝了360衛士、安全衛士等軟件,請先將軟件關閉,再重新連接VPN
- 若上一步完成后仍無法連接,請ping 系統IP,查看丟包率,若丟包率很高則是您的網速導致,若丟包率低,則請聯系中心相關人員排查。
機時以及磁盤限額查詢。
- 登錄VPN后,在非IE 瀏覽器網頁中輸入網(http://172.16.22.11:10021/)并打開。輸入系統賬號以及選擇秘鑰(Private Key)文件后,點擊登錄即可查看機時以及磁盤限額情況。
如果遇到一些作業運行時報庫無法找到,如何處理?
- 可通過locate命令查找相應的庫,并將在/home或/work目錄下的對應的庫路徑加入環境變量LD_LIBRARY_PATH中。
- 系統的庫文件,可以嘗試命令“source /work/app/osenv/ln1/set2.sh”然后再提交作業。
- 如果還是不行,可將缺少的庫拷貝到自己的文件夾如~/lib 中,并設置環境變量 :“export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH”。
提交作業報“Invalid partition name specified”。
- 報該錯時,建議用戶先用“yhi”查看是否可以看見自己所在的分區。
- 若無法看見分區,則是您的機時已到限制.。
提交作業報“Failed to allocate resources: User’s group not permitted to use this partition”。
- 用戶提交作業時通常需要加“-p 分區名”這一參數,同時該參數應寫在程序名前。
- 分區可用“yhi”來查看所在分區。
采用yhrun提交作業,關閉界面后,再次登錄時發現作業被killed。
- yhrun是交互式提交作業模式,一旦作業提交的界面關閉作業就會被killed。
- 若需要較長時間運行的作業,建議用戶采用yhbatch批處理提交方式。yhbatch負責資源分配,yhbatch獲取資源后會在獲取資源的第一個結點運行提交的腳本,當前登錄shell斷開后,加載作業仍可正常運行。
采用yhbatch提交多結點作業失敗的原因。
- 采用yhbatch提交作業首先進行的是分配資源,因此對于多結點作業,采用yhbatch提交時應在提交命令中指定-N參數,即提交命令是“yhbatch –N nodenum –n pronum –p pardition job.sh”。
計算結點無法登錄。
- 目前我們對計算結點做了限制,除非用戶分配了計算結點,否則無法登錄。
- 用戶若想登錄計算結點再算題,首先需要用yhalloc分配結點,方可登錄結點算題。
yhalloc分配資源,退出yhalloc后發現作業斷掉。
- yhalloc與yhbatch最主要的區別是,yhalloc命令資源請求被滿足時,直接在提交作業的結點執行相應任務,適合需要指定運行結點和其他資源限制,并有特定命令的作業。當當前登錄shell斷開后,申請獲得的資源以及加載作業任務會退出。
如果遇到一些作業報錯,應該如何處理?
- 較為常見的報錯如:“No enough endpoint resources”,“Job credential expired”,“bus error”
- 如遇到相關報錯問題也希望您能及時與我們進行聯系,并提供您的報錯日志信息(并加上錯誤發生的時間,提交命令等信息),以便我們進行有效的分析和處理。
作業退出后仍顯示CG狀態,是否影響作業退出?
- CG狀態是作業退出時,部分結點上的進程沒有完全停止導致,并不影響作業的正常退出。
作業完成退出時顯示部分進程被killed,然后退出。
- 這種情況下,用戶首先應檢查所需的輸出是否已正常輸出完成。
- 導致這種情況出現的原因是有部分進程先完成了計算而提前結束,而當一個作業的部分進程結束,系統默認為作業已完成,在一定時間內其他進程若不結束,則會被強制結束。
總結
- 上一篇: MIC 众核计算
- 下一篇: 解决 Python2.7 报错 Unic