[TOC]
<!---delete--->
# (ASUS.VER)Application – Jupyter Lab
## 登入Open OnDemand
在您習慣的流覽器上輸入 https://f1-stn01.nchc.org.tw/ or https://f1-stn02.nchc.org.tw/ 連結,你將看到以下登入畫面,請輸入您在F1的主機帳號與密碼進行登入。
++若忘記主機帳號可至[iService中查詢主機帳號](https://man.twcc.ai/@f1-manual/iService)++

提醒:
為了安全登入網頁有時效性,如果你閒置過久未登入,或是已完成用戶登入又重新嘗試登入,系統可能會出現Bad Request 的錯誤訊息(如下圖),如果你遇到此訊息請重新輸入 https://f1-stn01.nchc.org.tw/ or https://f1-stn02.nchc.org.tw/ 連結,或詢求管理員協助。
## 1. 開啟Jupyter Notebook/JupyterLab App
:::success
(1) 你可以從首頁的 Jupyter/JupyterLab App圖示開啟Jupyter/JupyterLab App。

(2) 另外,你也可以透過Interactive Apps 的選單選擇開啟。

(3) 開啟後你可以看到以下表格需要填寫。
a.直接啟用Jupyter Notebook/JupyterLab App

b.使用自定義的 Miniconda Environment,來啟用Jupyter Notebook/JupyterLab App
<font color="#f00">勾選check box,遵照我們的設定方式創建你的虛擬環境(此網頁下滑至 ++4.使用自定 Miniconda Environment++) </font>

| 欄位名稱 | 說明 |
|-|-|
| Project ID | 系統將自動帶出你已經加入的計畫列表,你可以選擇有足夠錢包的計畫。 |
| Jupyter interface | 選擇要開啟Jupyter notebook 或是Jupyter Lab。 |
| CPU cores | 設定CPU 核心數量或thread。 |
| Memory (GB) | 設定Job的記憶體(以 GB 為單位)。 你設定的記憶體可供Job的所有cpu cores使用。<font color="#f00">一個core可以開到4GB ex. 2cores可以到8GB</font> |
| Number of Hours | 設定Job 的執行時間,時間到了會自動結束 <font color="#f00"> (上限為兩小時) </font> |
| Check box if using custom miniconda Environment | 設定是否使用自定的miniconda Environment,如果你要使用自定environment請在此打勾,並在下面Environment 欄位填上自定的Environment名稱。 |
| Environment | 設定自定的Environment名稱。 <font color="#f00"> 請注意:如果你要用自己的Environment,請確認在你的miniconda environment有安裝notebook 或 jupyter lab,否則無法正確被啟動。 </font> |
:::danger
<font color="#f00">++CPU cores++,++Memory++建議開大一些,F1會較快給予資源</font>
:::
## 2. 啟動 Jupyter
:::success
(1) 表格都填好後,你可以點選「Lunch」 按鈕來執行Jupyter ,出現以下對話視窗表示Job 成功執行。
- Host 欄位顯示被分配到的主機名稱,點選Session ID 可以打開設定檔與log 的所在目錄。

(2) 點選「Connect to Jupyter」按扭,開啟Jupyter Nobebook/Lab。
a.Jupyter Nobebook畫面。

b. Jupyter Lab畫面。

:::
## 3. 刪除 Interactive Session
(1) 結束Interactive Session 可以在Jupyter Notebook/Lab App選shutdown來結束。
(2) Jupyter Notebook。

(3) 點選File > Shut Down 來結束,這將會關掉Notebook 視窗及刪除跑在Computer node 上的Job。
(4) Jupyter Lab。

(5) 點選File > Shut Down 來結束,這將會關掉Jupyter lab 視窗及刪除跑在Computer node 上的Job。
(6) 除此之外,也可以到My Interactive sessions,在正在跑的Interactive session視窗按Delete 按鈕關掉Interactive Session。


(7) 確認視窗將會顯示出來,請按 Confirm 刪除。
## 4. 使用自定的 Miniconda Environment,來啟用Jupyter Notebook / Jupyter Lab
### 建立自訂的Miniconda Enviroment
使用者建立自己定義的Miniconda環境,來安裝Python package。
<!---
<font color="#f00">若使用anaconda者</font>
ood是無法安裝額外的套建,開起來以再計算節點,是無法ssh的
有額外的安裝環境,要再登入節點先建好虛擬環境
--->
(1) 建立Miniconda Environment
A、 登入Login Node。
B、 安裝 miniconda3, 請參考以下為安裝步驟。
```
$ mkdir -p ~/miniconda3
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
$ bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
$ rm -rf ~/miniconda3/miniconda.sh
$ ~/miniconda3/bin/conda init bash
$ ~/miniconda3/bin/conda init zsh
```
C、 執行完 conda init 後,請重新登入login node。
D、 執行 conda create -n test_python jupyter jupyterlab, 建立一個名稱為test_python的虛擬環境,並且在這個虛擬環境安裝jupyter notebook與jupyter lab,建立完成後執行 conda env list 確認是否有/home/<username>/miniconda3/envs/test_python。
E、 執行 conda activate test_python 切換到test_python 虛擬環境。
F、 執行 ipython kernel install --user --name= “jupyter\_test\_python” 加test_python 虛擬環境到jupyter。
G、 執行 jupyter kernelspec list 確認是否有jupyter\_test\_python。
H、 到這裡已經將你的虛擬環境加到jupyter, 你可以繼續安裝你需要的package。
(2) 啟動Juypter Notebook/Lab 並使用自己定義的Miniconda環境。
A、 在OOD 開啟JupyterApp。
B、 在Check box if using custom miniconda environment 打勾。
C、 在 Environment 填上 test_python。

D、 其他欄位選填後,按 Lunch 啟動Job。
E、 在Job 成功被執行後按 Connect to Jupyter。
F、 如果是啟動Jupyter Notebook,建立新的notebook 請到File > Notebook。

G、 接著會跳出Select Kernel 視窗,在此選擇 jupyter\_test\_python 建立新的nobebook。

H、 如果要更改已存在的notebook kernel,請到 Kernel ->Change Kernel。
<font color="#f00">如果有install新的package,要選擇restart kernal</font>

I、 如果你是在JupyterLab ,新建notebook請在 Launcher 視窗選擇juypter\_test\_python。

J、 更改已存在的notebook 的kernel, 請點選 Kernel > Change Kernel ... 去更換。
### ps.若環境中已有 Anaconda, 請把指定的目錄新增至 envs_dirs 配置中
在create虛擬環境之後,就可以找到路徑了
```
[uxxx@ilgn01 ~]$conda config --append envs_dirs /home/u5846412/miniconda3/envs
[uxxx@ilgn01 ~]$ conda create --prefix /home/u5846412/miniconda3/envs/test_0611_5 jupyter jupyterlab
[uxxx@ilgn01 ~]$ conda env list
[uxxx@ilgn01 ~]$ conda activate test_0611_5
[uxxx@ilgn01 ~]$ ipython kernel install --user --name=test_0611_5
[uxxx@ilgn01 ~]$ jupyter kernelspec list
````