# Application – Jupyter Lab [TOC] ## 前情提要 在OOD(Open OnDemand)中使用 jupyter Notebook 或是 Jupyter Lab,其++OOD本身是在計算節點上做操作,無法連線到外網去安裝額外的python package++。<font color="blue">若要安裝額外python package,則要從登入節點安裝miniconda來建立你自定義的虛擬環境,並將其加入 jupyter kernel中。才能在 OOD 的 kernel中選擇你的虛擬環境。</font> 若不需要安裝任何套件在 jupyter Notebook 或是 Jupyter Lab上,則可以直接跳到"登入Open OnDemand"章節。 <font color="blue">OOD的使用限制,無法同時開啟兩個以上的資源,請先刪除掉正在使用的Interactive Session,才能Launch下一個資源。</font> ## 創建自定的 Miniconda Environment並加到 jupyter Notebook / Jupyter Lab 中 ### 建立自訂的Miniconda Enviroment :::success (1) 登入Login Node。 連線到 f1-ilgn01.nchc.org.tw 或是 f1-ilgn02.nchc.org.tw 中。 詳細連線資訊請參考[登入節點](https://man.twcc.ai/@f1-manual/login_node)。 (2) 安裝 miniconda3, 請參考以下為安裝步驟。 ``` [user@ilgn01 ~]$ 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 ``` (3) 執行完 conda init 後,請重新登入login node登入節點。 (4) 執行 conda create -n ood_jupyter_python jupyter jupyterlab, 建立一個名稱為ood_jupyter_python的虛擬環境,並且在這個虛擬環境安裝jupyter notebook與jupyter lab。 <font color="red">建立完成後執行 `conda env list` 確認是否有建在此路徑下/home/\<username>/miniconda3/envs/ood_jupyter_python。</font> <font color="blue">若無請根據備註的操作,新增路徑到envs_dirs中,重新創造一個虛擬環境。</font> ``` [user@ilgn01 ~]$ conda create -n ood_jupyter_python jupyter jupyterlab ... ... Proceed ([y]/n)? y Downloading and Extracting Packages: Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate ood_jupyter_python # # To deactivate an active environment, use # # $ conda deactivate [user@ilgn01 ~]$ conda env list # conda environments: # ood_jupyter_python /home/user/miniconda3/envs/ood_jupyter_python ``` (5) 執行 conda activate ood_jupyter_python 切換到 ood_jupyter_python 虛擬環境。 ``` [user@ilgn01 ~]$ conda activate ood_jupyter_python ``` (6) 執行 ipython kernel install --user --name= “jupyter\_test\_python” 加ood_jupyter_python 虛擬環境到jupyter。 ``` (ood_jupyter_python) [user@ilgn01 ~]$ ipython kernel install --user --name=ood_jupyter_python 0.00s - Debugger warning: It seems that frozen modules are being used, which may 0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off 0.00s - to python to disable frozen modules. 0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation. Installed kernelspec ood_jupyter_python in /home/u5846412/.local/share/jupyter/kernels/ood_jupyter_python ``` (7) 執行 jupyter kernelspec list 確認是否有jupyter\_test\_python。 ``` (ood_jupyter_python) [user@ilgn01 ~]$ jupyter kernelspec list ... Available kernels: ood_jupyter_python /home/u5846412/.local/share/jupyter/kernels/ood_jupyter_python ``` (8) 到此步驟,已經將你的虛擬環境加到open on demand 的 jupyter kernel中。 若需要其他package,可以再這邊繼續安裝你需要的package,他會同步到 jupyter kernel 中。 <!---是不是要放minicaonda 完整的範例---> ::: :::info #### 備註: 若路徑不是在"/home/\<username>/miniconda3/envs/"這個底下。 請根據以下步驟把指定的目錄新增至 envs_dirs 配置中,並創建虛擬環境在"/home/\<username>/miniconda3/envs/"路徑中。 ``` [user@ilgn01 ~]$ conda config --append envs_dirs /home/u5846412/miniconda3/envs [user@ilgn01 ~]$ conda create --prefix /home/u5846412/miniconda3/envs/ood_jupyter_python_envs jupyter jupyterlab ... Proceed ([y]/n)? y ... [user@ilgn01 ~]$ conda env list # conda environments: # ood_jupyter_python_envs /home/u5846412/miniconda3/envs/ood_jupyter_python_envs [user@ilgn01 ~]$ conda activate ood_jupyter_python_envs (ood_jupyter_python_envs) [user@ilgn01 ~]$ ipython kernel install --user --name=ood_jupyter_python_envs ... Installed kernelspec ood_jupyter_python_envs in /home/u5846412/.local/share/jupyter/kernels/ood_jupyter_python_envs (ood_jupyter_python_envs) [user@ilgn01 ~]$ jupyter kernelspec list ... Available kernels: ood_jupyter_python_envs /home/u5846412/.local/share/jupyter/kernels/ood_jupyter_python_envs (ood_jupyter_python_envs) [user@ilgn01 ~]$ ``` 錯誤路徑:![](https://man.twcc.ai/_uploads/HJahnU5UR.png) 正確路徑:![](https://man.twcc.ai/_uploads/HkaR6I9LR.png) ::: ## 登入Open OnDemand :::success 在您習慣的瀏覽器上輸入 https://f1-stn01.nchc.org.tw/ or https://f1-stn02.nchc.org.tw/ 連結,你將看到以下登入畫面,請輸入您在F1的主機帳號與密碼進行登入。 ++若忘記主機帳號可至[iService中查詢主機帳號](https://man.twcc.ai/@f1-manual/iService)++ ![](https://man.twcc.ai/_uploads/SJxBdP4gzke.png) 提醒: 為了安全登入網頁有時效性,如果你閒置過久未登入,或是已完成用戶登入又重新嘗試登入,系統可能會出現Bad Request 的錯誤訊息,如果你遇到此訊息請重新輸入 https://f1-stn01.nchc.org.tw/ or https://f1-stn02.nchc.org.tw/ 連結。 ### 開啟Jupyter Notebook/JupyterLab App (1) 從首頁的 Jupyter/JupyterLab App圖示開啟Jupyter/JupyterLab App。 ![](https://man.twcc.ai/_uploads/Hye2mIozwA.png) (2) 透過Interactive Apps 的選單選擇開啟。 ![](https://man.twcc.ai/_uploads/rkTr8szPC.png) (3) 開啟後你可以看到以下表格需要填寫。 a.直接啟用Jupyter Notebook/JupyterLab App ![](https://man.twcc.ai/_uploads/S1qzusUI0.png) b.使用自定義的 Miniconda Environment,來啟用Jupyter Notebook/JupyterLab App <font color="#f00">:point_down:勾選check box,遵照我們的設定方式先創建好你的虛擬環境在jupyter kernel上(此網頁上滑至 ++使用自定 Miniconda Environment++)。 </font> ![](https://man.twcc.ai/_uploads/SJovKY8U0.png) <font color="#f00">:point_down:若事先填寫尚未創建的虛擬環境,則無法Launch成功。點選"Delete"之後重新索取資源。 </font> ![](https://man.twcc.ai/_uploads/rJ9oeU9L0.png) | 欄位名稱 | 說明 | |-|-| | 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++建議開大一些 例如: CPU 2 cores,Memory 8GB,才會較快建立起jupyter環境。</font> ::: ### 啟動 Jupyter Notebook / Jupyter Lab(未勾選check box) :::success (1) 表格都填好後,你可以點選「Lunch」 按鈕來執行Jupyter ,出現以下對話視窗表示Job 成功執行。 - Host 欄位顯示被分配到的主機名稱,點選Session ID 可以打開設定檔與log 的所在目錄。 ![](https://man.twcc.ai/_uploads/rk3fvoMwR.png) (2) 點選「Connect to Jupyter」按扭,開啟Jupyter Nobebook/Lab。 a.Jupyter Nobebook畫面,新建notebook。 ![](https://man.twcc.ai/_uploads/BkY6ajcLR.png) b. Jupyter Lab畫面。 ![](https://man.twcc.ai/_uploads/ryeivwszD0.png) ::: ### 啟動Juypter Notebook/Lab 並使用自己定義的Miniconda環境(有勾選check box)。 :::success (1) 表格都填好後,你可以點選「Lunch」 按鈕來執行Jupyter ,出現以下對話視窗表示Job 成功執行。 備註: 勾選check box,在 Environment 填上 ood_jupyter_python_envs。 ![](https://man.twcc.ai/_uploads/BkjpztqUC.png) <font color="red">如果無法成功啟用環境,請查看備註的內容說明,重新設定。</font> (2) 在Job 成功被執行後按 Connect to Jupyter。 - Host 欄位顯示被分配到的主機名稱,點選Session ID 可以打開設定檔與log 的所在目錄。 ![](https://man.twcc.ai/_uploads/Hy_CztqUR.png) (3) 如果是啟動**Jupyter Notebook**,建立新的notebook 請到File > Notebook。 ![](https://man.twcc.ai/_uploads/r1xvnaOQwC.png) (4) 接著會跳出Select Kernel 視窗,在此選擇 jupyter\_test\_python 建立新的nobebook。 ![](https://man.twcc.ai/_uploads/BJgxYsjc8A.png) (5) 如果要更改已存在的notebook kernel,請到 Kernel ->Change Kernel。 <font color="#f00">若有缺任何的package,請從登入節點做安裝。</font> <font color="#f00">在登入節點上有install新的package,要選擇restart kernel。</font> ![](https://man.twcc.ai/_uploads/SJ2aRd7v0.png) (6) 如果是在**JupyterLab** ,新建notebook請在 Launcher 視窗選擇ood\_juypter\_python\_envs。 ![](https://man.twcc.ai/_uploads/HkgmZGYqLA.png) (7) 更改已存在的notebook 的kernel, 請點選 Kernel > Change Kernel ... 去更換。 ![](https://man.twcc.ai/_uploads/SJ2aRd7v0.png) ::: ## 刪除 Interactive Session :::success (1) 結束Interactive Session 可以在Jupyter Notebook/Lab App選shutdown來結束。 (2) Jupyter Notebook。 點選File > Shut Down 來結束,這將會關掉Notebook 視窗及刪除跑在Computer node 上的Job。 ![](https://man.twcc.ai/_uploads/Sk9ByFmD0.png) (3)Jupyter Lab。 點選File > Shut Down 來結束,這將會關掉Jupyter lab 視窗及刪除跑在Computer node 上的Job。 ![](https://man.twcc.ai/_uploads/H1aHyYXP0.png) (4) 除此之外,也可以到My Interactive sessions,在正在跑的Interactive session視窗按Delete 按鈕關掉Interactive Session。 ![](https://man.twcc.ai/_uploads/HklwiJKmvA.png) 確認視窗將會顯示出來,請按 Confirm 刪除。 ![](https://man.twcc.ai/_uploads/SyiGeYQPR.png) :::