# 互動式繪圖節點操作流程
[TOC]
## ThinLinc 連線使用說明
:::success
1. 安裝 ThinLinc Client 工具
請依照您用來連線的個人電腦(或筆記型電腦)作業系統版本(Windows, Linux或macOS),先下載與安裝合適的ThinLinc Client軟體於您的個人電腦。
軟體下載網址為:[https://www.cendio.com/thinlinc/download](https://www.cendio.com/thinlinc/download)。

開始執行連線之前,請先確認個人電腦已經取消了延伸多部顯示器的設定。本文件將以Windows作業系統環境為範例,在ThinLinc Client軟體安裝完畢之後,即可開啟ThinLinc Client連線程式。
2. 開啟 ThinLinc Client。

3. 請先點選Options按鈕,進入Display分頁,勾選Windowed。

4. 再點選Advanced分頁,在Reconnect policy中選取Always ask how multiple sessions should be handled項目。

5. 連線訊息可參考下列表格,輸入Server連線訊息。
<table>
<tr>
<td>節點</td>
<td>FQDN </td>
<td>連線IP位址</td>
</tr>
<tr>
<td>intgpn01</td>
<td >f1-intgpn01.nchc.org.tw </td>
<td >140.110.122.206 </td>
</tr>
<tr>
<td>intgpn02</td>
<td>f1-intgpn02.nchc.org.tw </td>
<td > 140.110.122.207</td>
</tr>
</table>
6. 點選Options按鈕,進入Security分頁,設定++1111為SSH Port++,點選++OK++完成設定。

7. 輸入您在創進一號的++主機帳號++與++密碼++,點選Connect按鈕。

8. 再輸入用戶智慧型手機IDExpert App產生的++6位數字OTP碼++。

:::
## ParaView 使用說明
::: info
### 前情提要
(1)完成ThinLinc連線之後,接下來請點擊"Forward"。
如果點擊"Quit",將會關掉連線,重新打開ThinLinc Client進行連線即可。

(2)點擊"Start"

(3)點擊"Activities"

(4)點擊"Terminal"

(5)閒置過久會被桌面登出,按鍵盤上任一按鍵,和重新輸入您在創進一號的密碼,即可登入桌面。
:::
:::success
<font color="#1936C9"> 接下來都是在桌面Terminal上操作 </font>
1. 透過ThinLinc Client登入互動式繪圖節點。
2. 建立 ParaView Server Slurm sbatch script。
(1) vi 開啟一個.sh的檔
```
vi pvjob.sh
```
(2)撰寫腳本內容 ,內容如何攥寫與修改可參閱[Slurm簡介](https://man.twcc.ai/@f1-manual/slurm_instructions)。
```
#!/bin/bash
#SBATCH -J paraview_server # 工作名稱
#SBATCH -o paraview.log.%j # 輸出檔案名稱 (%j = Job ID)
#SBATCH -t 00:30:00 # 執行時間
#SBATCH --account=GOVxxxxxx # 專案計畫編號
#SBATCH --nodes=2 # 節點數量
#SBATCH --ntasks-per-node=2 # 每節點MPI行程數量
#SBATCH --gres=gpu:2 # 每節點GPU數量
#SBATCH --partition=visual
echo "Starting ParaView server"
module purge
module load gcc/8.5.0 openmpi/4.1.6 tools/paraview/server/5.12.0
PVSERVER="pvserver --force-offscreen-rendering --disable-xdisplay-test --multi-clients"
mpirun --np 2 $PVSERVER : \
--np 2 $PVSERVER
#--np 4 $PVSERVER \
#--np 2 $PVSERVER --egl-device-index=3 :\
#--np 2 $PVSERVER --egl-device-index=4 :\
#--np 2 $PVSERVER --egl-device-index=5 :\
#--np 2 $PVSERVER --egl-device-index=6 :\
#--np 2 $PVSERVER --egl-device-index=7
echo "Stopping ParaView server"
```
3. 透過 slurm 指令發送任務。
```
[user@intgpn02 ~]sbatch pvjob.sh
Submitted batch job 39254
```
4. ParaView 伺服器連線資訊可由 slurm 輸出檔案中取得。
`cat paraview_server.log.[job_id] # <job_id>: Job ID`
```
[user@intgpn02 thinlinc]$ cat paraview_server.log.39254
Starting ParaView server
gpn01:rank1.pvserver: unknown link speed 0x80
gpn02:rank3.pvserver: unknown link speed 0x80
gpn01:rank0.pvserver: unknown link speed 0x80
gpn02:rank2.pvserver: unknown link speed 0x80
gpn01:rank1.pvserver: unknown link speed 0x80
gpn02:rank3.pvserver: unknown link speed 0x80
gpn01:rank0.pvserver: unknown link speed 0x80
gpn02:rank2.pvserver: unknown link speed 0x80
-----------------------------------------------------
By loading the 'pvNVIDIAIndeX' plugin you have accepted the EULA shipped with it.
If that is not acceptable, please restart the application without loading
the 'pvNVIDIAIndeX' plugin.
-----------------------------------------------------
Waiting for client...
Connection URL: cs://gpn01:11111
Accepting connection(s): gpn01:11111
```
**備註** <font color="blue">gpn01:11111,為你之後要登入的節點主機名稱</font>
5. 在互動式繪圖節點使用 ParaView Client,透過下列指令可查看可用的module,接著載入ParaView Client。
`ml avail`
`ml load tools/paraview/client/5.12`
```
[user@intgpn03 ~]# ml avail
------------------------------------ /pkg/modulefiles/software -------------------------------------
apps/abaqus/2023 apps/lsdyna/R13.0.0 tools/paraview/client/5.12.0
apps/abaqus/2024 (D) apps/lsdyna/R13.1.0 (D) tools/paraview/server/5.12.0
apps/adf/2024.101-intelmpi-intel libs/hdf5/1.14.3 tools/rstudio/4.4.0
apps/adf/2024.102-openmpi-intel (D) tools/code-server tools/singularity-ce/4.1.1
apps/gaussian/g16 tools/jupyterlab
apps/lsdyna/R12.0.0 tools/miniconda3
------------------------------- /pkg/modulefiles/middleware/compiler -------------------------------
gcc/8.5.0 (D) gcc/11.2.0 intel/2022_3_1 intel/2024_01_46 (D)
gcc/10.4.0 intel/2019_u5 intel/2023_2
[user@intgpn03 ~]# ml load tools/paraview/client/5.12.0
```
6. 啟動ParaView Client。
```
[user@intgpn02 ~] $ paraview
```

7. 連線到繪圖計算節點

8. 繪圖計算節點的連線資訊如下,可根據您在ParaView slurm job log中的主機名稱,輸入對應的連線IP位,然後連線。
| 節點主機名稱 | 連線IP位址 |
| ------------ | ------------- |
| gpn01 | 172.16.160.21 |
| gpn02 | 172.16.160.22 |
| gpn03 | 172.16.160.23 |
| gpn04 | 172.16.160.24 |
| gpn05 | 172.16.160.25 |
| gpn06 | 172.16.160.26 |
(1)以我們剛才的例子,連線主機是gpn01,根據上表加入伺服器 IP (172.16.160.21)和 Port(1111)後即可連線。

(2)若要連線的server不在清單中,可自行加入server

8. 連線成功後,Browser會顯示繪圖計算節點主機名稱。

**備註**
++若前面操作時間拖太長,則會因為服務逾期而閃退。屆時重新操作即可。++
9. 匯入資料
`(1) 點選Sources > Alphabetical > Wavelet。`

`(2) 選擇 NVIDIA IndeX 顯示。 (資料本身需支援NVIDIA IndeX,才會出現這一個選項)`

`(3) 渲染結果如下圖所示。`

**備註**
若使用過程,你有出現過下方的"異常訊息"。

請遵照以下步驟,去"setting"裡面,選擇"Render view",將"disable IceT"勾選起來。最後再重新匯入資料。


:::
## VirtualGL 執行計算工作前處理或後處理的範例
:::success
1. 透過ThinLinc Client登入互動式繪圖節點。
2. 點擊"Terminal"
```
[user@intgpn02 ~]$ ml list
No modules loaded
[user@intgpn02 ~]$ ml load apps/abaqus/2024
[user@intgpn02 ~]$ vglrun -d :0.1 abaqus cae
Abaqus License Manager checked out the following license:
"cae" from Flexnet server 140.110.16.55
<9 out of 10 licenses remain available>.
```

:::
<!--- 詢問中心同仁的 3D模組是使否已上限,可以製作範例了?--->