# HPC 進度筆記 > [name=蕭子瑜][time=Jan 20,2022, 12:35 PM ] # 1/15(六) ## 載虛擬器: https://www.virtualbox.org/ 載完=>新增 把ubuntu檔案拖進去? ### 載ubuntu https://www.ubuntu-tw.org/modules/tinyd0/ 設定: 按上面那排的裝置,共用剪貼簿跟共用拖移,再按最下面那個(載軟體讓他可以接到電腦顯示器的感覺?)插入Guest Additions CD映像... ```shell= sudo apt-get update -y #sudo(最高權限) sudo apt-get upgrade -y sudo reboot(重開機) ``` 可以切到最高權限:終端機輸入su ### 安裝vasp: 隨身碟載 vaspwiki: https://www.vasp.at/wiki/index.php/Installing_VASP.5.X.X ubuntu based installation: https://www.vasp.at/wiki/index.php/A_Ubuntu_based_installation_of_VASP 載compiler或用gnu 解壓縮vasp的檔案 載fftw跟其他東西?(透過終端機 在vasp的root設一個makefile.include,內容是照arch裡的(選哪個要看compiler) 指令:make all或make std cnl gam 會在bin產生三個檔案:std cnl gam 設環境變數 的路徑 ```shell= vim ~/.barchrc Path=/home/username/vasp/vasp 5.4.4/bin/std:$Path(?) sourse ~/.bashrc ``` # 1/17(一) ### 載CentOS https://blog.gtwang.org/linux/centos-7-installation-tutorial/ 建立虛擬器: CentOS 記憶體2MB 動態分配硬碟大小 設定可以調記憶體大小 centOS要先再安裝kernel-devel和gcc才能調整視窗 https://oldgrayduck.blogspot.com/2017/11/virtualboxcentos-7.html ```shell= # yun install kernel-devel gcc -y ``` 注意錯字、網路 ### 載vasp(給CentOS https://www.vasp.at/wiki/index.php/A_CentOS_based_installation_of_VASP `gcc-g++`因CentOS版本,要改成載`gcc-c++` pwd指令看路徑 - echo "export PATH=$PATH:/usr/lib64/openmpi3/bin" >> ~/.bashrc `>>是插入` `>是刪除其他的只剩插入的` `"比'能讀的更多` vaspkit產生input vesta可視化 # 1/18(二) shell script(環境變數腳本) docker GNU ### ventoy(工具,隨身碟開機檔,方iso檔(虛擬光碟檔),可選系統,一隻隨身碟放多個系統): download ventoy2Disk 載到隨身碟(用ventoy格式化 檢查版本、測試硬體的工具 (不用ventoy,一隻隨身碟只能放一個iso檔) ### virtual box:機器(mechine) > 取得虛擬器的快照(snapshot) ### server(可以看雲端的影片): 開機(asus出現)時按del 調boot讓隨身碟在最上面 boot option property 隨身碟在最上面 (fn)+f10儲存並離開 CentOS 安裝 網路(下面改名稱 時區 軟體 gui ; development tool 磁碟 create user:admit adviser Bios crl+alt(+ fn)+f1離開; f2以後進去 終端指令ping 8.8.8.8(google的,測試網路有沒有連上) 設定IPV4 192.168.1.116第六台(我們用六、七、八) #### 螢幕錄影ohsoft( ocam) ### putty: 連server的終端 https://www.putty.org/ ![](https://i.imgur.com/LWjRvhn.jpg) 應該是第一個 ### MobaXterm: 更好看更方便的,可以不用記密碼 https://mobaxterm.mobatek.net/download-home-edition.html ![](https://i.imgur.com/ZmbXJD5.jpg) ping(指令,呼叫看有沒有回應) - server上不能同時yum 兩人需要不同版本怎麼切割=>找能獨立安裝的(yum會蓋掉) ex:source code編說明 可以試gcc, python的獨立安裝 pip安裝工具 - 用最基本的使用者操作(因為在新加坡超電上可能不能開su) - 學用shell script載東西(快) ## 進度: server上裝CentOS 載gcc-gfortran, gcc-c++那行 yum update(還沒upgrade) # 1/19(三) Q:如何知道server reboot好了? A:在自己電腦的命令提示元或是MobaXterm的local terminal輸ping看要用的那台有沒有回應 etc/exports或etc/fstab 可以載的棒東東: Atom Nodepade++ 7zip(可用系統管理員身分執行後,在工具->選項->左邊的加號->套用)(還不確定功用) ## 進度: - 在server的116上裝好vasp跟nfs server(共享資料夾是/home/ncku/Sharefold) 117和118是nfs client(也有設好)=>vasp可以獨立用`Sharefold`裡面的vasp.Hg跑 - 關三台的防火牆(stop是關當下,之後開機不會;disable是當下沒關,之後開機會關) - nfs參考資料: https://kenwu0310.wordpress.com/2018/03/28/centos-7-nfs-%E4%B8%80-server%E7%AB%AF%E8%A8%AD%E5%AE%9A/ https://kenwu0310.wordpress.com/2018/03/29/centos-7-nfs-%e4%ba%8c-client%e7%ab%af%e8%a8%ad%e5%ae%9a/ https://www.cnblogs.com/lgj8/p/12275670.html - 搜尋關鍵字:`nfs` `CentOS` `/etc/export` `server` `client` #### 試OUTCAR轉能帶圖: 載了vaspkit 試25 252 試21 211 只出現Band.dat跟另一個東東,應該是跑到一半失敗 # 1/20(四) ## vasp跑能帶圖、產生INCAR: 可參考 https://vaspkit.com/tutorials.html#generate-input-files ```shell= vaspkit 1 101 STH6 ``` - INCAR內部(vim)的LREAL改成TRUE 上網抓POSCAR: https://materialsproject.org/ http://www.catalysthub.net/ ```shll= #用POSCAR產生KPATH.in、HIGH_SYMMETRY_POINTS、POTCAR、PRIMCELL.vasp: vaspkit 3 #K-Path for Band-Structure 303 #bulk structure #用KPATH.in產生KPOINTS和POTCAR: vaspkit 25 #Hybrid-DFT Band-Structure 251 #Generate KPOINTS for Hybrid Band-Structure Calculation Hg #如果有要輸入element symbol的話 1 0.04 0.04 (#用POSCAR產生POTCAR,跟用25 251一起產生的POTCAR一樣 (vaspkit (1 #VASP Input Files (103 #Generate POTCAR File with Default Setting (Hg #如果有要輸入element symbol跑Hg(看要什麼元素)的 #用POSCAR產生PRIMCELL.vasp再覆寫成POSCAR mv -f PRIMCELL.vasp POSCAR#也可用cp #最後要有INCAR、KPOINTS、POTCAR、POSCAR四個檔案 #平行化(ex.16核)跑(標準)vasp mpirun -np 16 vasp_std #跑能階圖,如果有跑出band.png(就是那個能階圖)就成功了! vaspkit 25 #Hybrid-DFT Band-Structure 252 #Band-Structure for Hybrid-DFT Calculation 0 #defult setting Hg #如果有要輸入element symbol ``` ## VPN 可以用自己的網路連到server的終端 用zerotier(下載) https://www.zerotier.com/download/ 加入michael的network-id,再提供自己的zerotier id給michael授權 載intel mpi(在116那台上),再用nfs讓其他兩台可以跑intel mpi https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html 這次我們是載linux的offline版本,最後載到/opt/intel/,之後可以試yum版本下載(聽說也滿快的) 用nfs,共享資料夾名稱:/share_intel/ # 1/21(五) > [name=蕭子瑜] [time=Jan 21, 2022, 11:31 AM] ## 國網登入 登入國家高速網路與計算中心:https://iservice.nchc.org.tw/nchc_service/nchc_account_verify.php 帳號:學校帳號 密碼:密碼最後1改! 主機帳號:01 可用chrom擴充Authenticator抓一直在變的OPT 登入MobaXterm ## 安裝vasp 在國網(nckuhpclab01)裡創個自己的目錄,並在裡面 ```shell= module load cuda/10.0 intel/2018 #再寫個腳本以後可以直接執行#記得source那個腳本 #vasp要用到的,vaspkit可以不用 ``` module指令們: ```shell= module av #看有什麼可以module module list #看已經module了什麼 module spider #看modle方法(先module A再module B之類的) ``` - module load 登出後要重新load,所以可以寫個腳本幫忙 照ppt在自己的目錄裡載vasp ## 載vaspkit ![](https://i.imgur.com/1nLQFaU.jpg) `setup.sh`內容,寫到會幫忙創~/.vaspkit,所以只要一個人改.vaspkit就好 ![](https://i.imgur.com/gutG6XT.jpg) ~/.vaspkit(注意PBE_PATH、VASPKIT_UTILITIES_PATH) ![](https://i.imgur.com/FveQBsH.jpg) ![](https://i.imgur.com/DgjrlfZ.jpg) ## 提交job跑vasp 1.先從頭抓POSCAR到生成四個input檔(今天試跑SiC的ex.SiC_1_32(1 nosde 32 CPU)) - INCAR裡的LREAL要改成.TRUE. 2.寫jobscript(檔名自訂ex.`SiC_1_32.sh`) ``` #!/bin/bash #----------------------------------------- #SBATCH -p gp1d ## 佇列 #SBATCH -A ACD110038 ## project id #SBATCH -J SiC_1_32_tzuyu ## job name #SBATCH --nodes=1 ## Maximum number of nodes to be allocated(幾台電腦) #SBATCH --ntasks-per-node=32 ## cpu數(gpu*4) #SBATCH --nodelist=gn1223 ## 要用的節點編號 #SBATCH --gres=gpu:8 ##要試的GPU數(一個node多少gpu) #SBATCH --time=4:00:00 ## Wall time limit (days-hrs:min:sec) #SBATCH --output=/home/nckuhpclab01/tzuyu/test_SiC/jobscript/result_SiC_1_72 ## Path to the standard output and error files relative to the working directory echo "Test Start" date hostname free -h source /home/nckuhpclab01/tzuyu/env.sh ##環境檔裡有module load和vasp、vaspkit的expor PATH nvidia-smi lscpu cd /home/nckuhpclab01/tzuyu/test_SiC/SiC_1_32/ ## 到有四個input檔的資料夾 echo "mpirun start" echo "======" mpirun -np 8 vasp_gpu #數字設node數*gpu數 echo "======" date echo "Test End" ``` nodes nodelist cpus-per-task output jobname ##用sacct看看到的是jobname 運算節點也要module lode cuda/10.0 intel/2018或是source腳本(`環境檔env.sh`) 3.用sbatch提交job ``` sbatch SiC_1_32.sh ``` - 之後:改INCAR或KPOINTS參數,或不給KPOINTS(參考vaspwiki),看能不能減少時間 台灣杉二號(命命列介面): https://man.twcc.ai/@twccdocs/doc-twnia2-main-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Fguide-twnia2-scontrol-zh - 查看節點: squeue(https://slurm.schedmd.com/squeue.html) sinfo(https://slurm.schedmd.com/sinfo.html) - 提交job: sbatch - 查看提交的job狀態: sacct - 取消提交的job: scancel - scontrol show job # 1/22(六) ## 繼續提交job 提交了很多,用gtest有跑出幾個,但後來用的不是pending就是failed ## 畫能帶圖,miniconda3 因為跑能階圖需要python環境(error是找不到python路徑),所以用miniconda創一個虛擬環境,並在裡面安裝python、numpy和matplotlib ```shell= module load miniconda3 module list conda env list ##看有什麼環境了,*是現在再的環境位子 conda create --name env_name package_names #ex.conda create --name testenv python numpy matplotlib #可以-y #也可以create完環境,再用conda install package_names安裝python、numpy、matplotlib conda activate en_name #進虛擬環境 conda deactivate #離開虛擬環境 ``` 參考:https://www.itread01.com/content/1545992705.html 再把python路徑加到`~/.vaspkit`的`PYTHON_BIN`裡 `~/.vaspkit`裡的路徑(PBE_PATH、PYTHON_PATH)有寫好,沒有activate虛擬環境也可以用vaspkit ## 畫狀態密度圖 ### 提取個別原子狀態密度 ```shell= vaspkit 11 115 Si all C all 0 ``` ![](https://i.imgur.com/6P6OiGM.jpg) ![](https://i.imgur.com/zTbsUjv.jpg) 跑出`PDOS_USER.dat`、`dos.py`跟`dos.png` dos.png: ![](https://i.imgur.com/tMEILfY.png) ### 提取total DOS ```shell= vaspkit 11 111 ``` Written tdos.dat and Itdos.dat Files ### 畫total DOS圖 1.更改vaspkit用來畫圖的python檔`dos.py` 原始的`dos.py` ![](https://i.imgur.com/vy3M0Rv.jpg) 修改讀取的部分為tdos.dat(提取出的total DOS檔案 axe.set_ylabel中的`r'PDOS(states/eV)'`,刪除P(改y座標的名字) 更改後的`dos.py` ![](https://i.imgur.com/853YQCH.jpg) ```shell= python dos.py #用python畫圖,記得先進入有numpy的虛擬環境 ``` 結果(total_dos.png) ![](https://i.imgur.com/KQxFGr1.png) # 1/24(一) ## 試不同節點數跟GPU數,所需的計算時間 nodes:1-4;gpus/node:1-8 (cpu=gpu*4) 雲端裡的"分配"試算表 - 注意載的POSCAR ## 台灣杉一號 ### 1.安裝vasp ```shell= module load intel/2018_u1 (update_1,另一個是initial) ``` 上傳vasp壓縮檔進去、解壓縮 ```shell= cp ./arch/makefile.include.linux_intel ./makefile.include ``` 修改makefile.include最下面的MPI的路徑 ```shell= make all ``` - make出現error後,再次make前要make veryclean清除之前錯的 ### 2.安裝vaspkit 上傳vaspkit壓縮檔、解壓縮 照`how_to_install`步驟,其中修改`~/.vaspkit`裡的PAW_PBE_PATH 將路徑新增到環境檔並source (module load anaconda3/5.1.10) ### 3.jobscript ex.SiC.sh,2 nodes 16 cpus ```shell= # Shell 說明 #!/bin/bash # PBS 指令 #PBS -l walltime=0:30:00 #PBS -l select=2:ncpus=16:mpiprocs=16 #PBS -N tzuyu_SiC_2_16 #PBS -q ctest #PBS -P ACD110038 #PBS -j oe #PBS -o /home/u7/nckuhpclab01/tzuyu/test_SiC/output #PBS -e /home/u7/nckuhpclab01/tzuyu/test_SiC/output/jobresult.err # 程式與指令 echo "Test Start" date hostname free -h source /home/u7/nckuhpclab01/truyu/env.sh nvidia-smi lscpu cd /home/u7/nckuhpclab01/tzuyu/test_SiC/SiC_2_gpu6/ echo "mpirun start" echo "=============" mpirun -np 32 vasp_std echo "=============" date echo "Test End" ``` ```shell= qsub SiC.sh #提交job qstat -Q #看queue的狀態 qstat #看提交的job狀態 ``` 建立虛擬環境以跑出能帶圖 ```shell= module load anaconda3/5.1.10 conda env list #看有什麼環境 conda create --name plot python numpy matplotlib #創一個叫plot的環境,裡面有python、numpy、matplotlib的package source activate plot #啟用環境 source deactivate #取消啟用環境 ``` - 明天試產生INCAR和KPOINT、POTCAR的先後有沒有差異 - 沒有,都跑得出來 - 明天確認台灣杉一號畫能帶圖、密度圖順序、error - 台灣杉一號的`/usr/bin/python/`有python,所以可以畫出能帶圖跟個別狀態密度圖,但因為沒有matplotlib,所以要進有matplotlib的虛擬環境,才能用python指令畫全部的狀態密度圖 ![](https://i.imgur.com/htNSgWI.jpg) ![](https://i.imgur.com/TnqzMtY.jpg) - 之前出現的error ![](https://i.imgur.com/XIMec9c.jpg) 應該是路徑抓不到,可能有東西跑不出來,還不確定問題 - 跑Si1C1和Si84C84的最佳化 - 找論文,看跑出的能帶圖和狀態密度圖有沒有符合 - (研究docker,把整個裝進容器) # 1/25(二) ## 跑Si 84 C 84的POSCAR 生成`KPATH.in`(3 -> 303) 時出現error: `Error! Invalid bravais lattice` 還沒找到解決方法 後來有載新的POSCAR跑 ## 台灣杉一號 可照之前順序畫圖(沒error) # 1/26(一) ## DOSCAR https://www.vasp.at/wiki/index.php/DOSCAR ## 能帶圖 http://blog.wangruixing.cn/2019/07/11/band2/ # 1/27(四) - 能帶結構圖、態密度圖 - 因為結構優化,所以每次跑vasp的結果會有小差異 - Si84C84是Si6C6拉的,所以POSCAR寫的會是Si 6 C 6,但KOPIOINT檔會不太一樣。最後做圖出來的差異,還在等Si6C6的跑出來