1. 程式人生 > >天河二號使用指南

天河二號使用指南

使用方式

  • 節點使用方式:獨佔式
  • 機時計算:以節點為基本單元計算核時。
  • 開源軟體的安裝:超算中心根據實際情況對基於“天河二號”部署的開源軟體的安裝進行一定程度上的協助。
  • 請不要在登入結點直接執行可執行程式(極大的影響其他使用者的登入和使用效率)。
  • 如無特殊需要,請使用批處理方式(yhbatch)提交任務。
  • 請儲存好執行程式的log檔案,從而方便超算中心技術人員在作業出問題後,協助解決問題。
  • 若需登入計算結點執行程式,需要先分配計算結點,方可登入。
  • 除了可看見work分割槽的使用者,其他使用者都需在提交命令中加入引數選項“-p 分割槽名”,即提交命令應為“yhurn -p 分割槽名 …”或者“yhbatch -p 分割槽名”。

登入

  1. VPN驗證
  2. 建立了VPN安全連結後,須使用ssh 客戶端(如Xmanager、Putty、SecureCRT)來登入系統。
    • 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,然後退出。

    • 這種情況下,使用者首先應檢查所需的輸出是否已正常輸出完成。
    • 導致這種情況出現的原因是有部分程序先完成了計算而提前結束,而當一個作業的部分程序結束,系統預設為作業已完成,在一定時間內其他程序若不結束,則會被強制結束。