--- title: OpenMPI | zh tags: Guide, TWNIA3, TW GA: --- {%hackmd @docsharedstyle/default %} # OpenMPI ::: success ::: spoiler <b>Step 1. 設定 OpenMPI 環境</b> <br> 直接執行 `module load intel/2020u4 openmpi/4.1.6` ``` [***@lgn301 ~]$ ml intel/2020u4 openmpi/4.1.6 ``` ::: ::: success ::: spoiler <b>Step 2. 編譯程式</b> <br> ``` [***@lgn301 ~]$ which mpicc /opt/ohpc/Taiwania3/Intel/lib/intel-2020u4/openmpi-4.1.6/bin/mpicc [***@lgn301 ~]$ mpicc -o ./openmpi-hello /opt/ohpc/Taiwania3/examples/mpi/hello_world_mpi.c ``` ::: ::: success ::: spoiler <b>Step 3. 撰寫 job script (openmpi<area>.sh)</b> <br> 輸入 `vi openmpi.sh` 開啟 <b>Vim</b> ,按 `i` 進入編輯模式開始編輯。輸入 ``` #!/bin/bash #SBATCH -A ABC123456 # Account name/project number #SBATCH -J test2 # Job name #SBATCH -p ctest #SBATCH -n 32 # Number of MPI tasks (i.e. processes) #SBATCH -c 1 # Number of cores per MPI task #SBATCH -t 30:00 # Wall time limit (days-hrs:min:sec) #SBATCH -o %j.log # Path to the standard output and error files relative to the working directory #SBATCH -e %j.err # Path to the standard output and error files relative to the working directory ml intel/2020u4 openmpi/4.1.6 mpirun /work/user/openmpi-hello ``` 結束編輯時,按 <b>esc</b> 跳到命令模式,鍵入 `:wq` 接著按 <b>enter</b> 完成存檔。 ::: ::: success ::: spoiler <b>Step 4. submit job</b> <br> 輸入 `sbatch openmpi.sh` ``` [***@lgn301 ~]$ sbatch openmpi.sh Submitted batch job 85268 ``` ::: ::: success ::: spoiler <b>Step 5. 查看輸出結果</b> <br> 輸入 `less [job ID](85268).log` 查看執行結果 ``` [***@lgn301 ~]$ less 85268.log Hello, world, I am 0 of 32, cpn3001 Hello, world, I am 27 of 32, cpn3001 Hello, world, I am 4 of 32, cpn3001 Hello, world, I am 20 of 32, cpn3001 Hello, world, I am 22 of 32, cpn3001 Hello, world, I am 26 of 32, cpn3001 Hello, world, I am 19 of 32, cpn3001 Hello, world, I am 2 of 32, cpn3001 Hello, world, I am 1 of 32, cpn3001 Hello, world, I am 15 of 32, cpn3001 Hello, world, I am 18 of 32, cpn3001 Hello, world, I am 5 of 32, cpn3001 Hello, world, I am 29 of 32, cpn3001 Hello, world, I am 13 of 32, cpn3001 Hello, world, I am 11 of 32, cpn3001 Hello, world, I am 30 of 32, cpn3001 Hello, world, I am 9 of 32, cpn3001 Hello, world, I am 17 of 32, cpn3001 Hello, world, I am 28 of 32, cpn3001 Hello, world, I am 7 of 32, cpn3001 Hello, world, I am 24 of 32, cpn3001 Hello, world, I am 3 of 32, cpn3001 Hello, world, I am 10 of 32, cpn3001 Hello, world, I am 12 of 32, cpn3001 Hello, world, I am 8 of 32, cpn3001 Hello, world, I am 6 of 32, cpn3001 Hello, world, I am 14 of 32, cpn3001 Hello, world, I am 23 of 32, cpn3001 Hello, world, I am 21 of 32, cpn3001 Hello, world, I am 25 of 32, cpn3001 Hello, world, I am 31 of 32, cpn3001 Hello, world, I am 16 of 32, cpn3001 ``` :::