---
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
```
:::