一旦我們把 nVidia Nano 當作 Python/CUDA 伺服器來使用,除了用 ssh 終端機來寫程式以外,使用 Jupyter notebook 是一般業界最常使用的 Python/CUDA 程式編輯器;同時透過虛擬環境,我們直接在遠端的 iPad 或筆電或一些因為資訊安全所使用的 thin-client 電腦上,透過瀏覽器以及 Jupyter 編輯器,切換不同的 Python 工作環境;在教學及研究上相當方便,這樣的作法也經常配合因為資訊安全所設計的多重防護架構上,使用在各個大型企業內部;我覺得對於非資訊科系的學生,先行在學校架設這樣的環境,可以在進入業界後加速一些學習曲線及適應的時間。
Jupyter notebook 最新的版本是 7.2;不過在這裏我還是安裝穩定使用的版本 6.x。安裝方法很簡單,跟大多數 ubuntu linux 環境一樣。
sudo pip install “notebook<6.9”
因為,我希望能夠遠端登入 Jupyter 來撰寫程式,接下來會需要改變原來 default 設定的一些參數,所以先把 Jupyter 的組態檔透過以下命令產生出來;然後用 vi 編輯器來修改參數檔「jupyter_notebook_config.py」。
jupyter notebook —-generate-config
vi .jupyter/jupyter_notebook_config.py
進入參數檔,修改「notebook_dir」、「open_browser」兩個參數。其中,參數「notebook_dir」是指 python 程式存放的目錄;通常會在原來的使用者目錄下再建立一個專門作程式工作的目錄,要事先先建立好。
在 default 的設立中,啟動 Jupyter notbook 就會連帶著啟動本機端,也就是 nVidia Nano 自己的瀏覽器,來編寫程式;但是我只是要用遠端連線 nVidia Nano 來當伺服器,而使用本地端的 iPad 或筆電來編寫程式,所以參數「open_browser」的開關要把它關掉。
…
c.NotebookApp.notebook_dir=‘「程式工作目錄」’
…
c.NotebookApp.open_browser=False
…
接下來,因為我們本地端的 iPad 或筆電並沒有固定的網址,所以在 Jupyter 參數檔中的三個參數「allow_origin」、「allow_remote_access」和「ip」就要按照下面的數值來指定。
…
c.NotebookApp.allow_origin=‘*’
…
c.NotebookApp.allow_remote_access=True
…
c.NotebookApp.ip=‘0.0.0.0’
…
然後,將參數檔儲存好之後。設定遠端存取 Jupyter Notebook 的安全機制。如果,希望在遠端連線的 iPad 或筆電不固定在特定的裝置的話,可以使用密碼進入即可。所以在 nVidia Nano 本機命令列使用以下指令來產生密碼。
jupyter notebook password
最後,就啟動 Jupyter Notebook。為了要讓 nVidia Nano 可以當作伺服器 24 小時待命工作,所以在 ubuntu linux 背景啟動,如下指令。
jupyter notebook > log_Jupypter &
這時候 Jupyter Notebook 就會透過 port 8888,接受來自遠端的連線需求。如果是使用 iPad 連線 nVidia Nano 的 IP address,應該就可以看到以下的畫面。
鍵入密碼之後就可以開始使用 Jupyter Notebook 來撰寫 Python/CUDA 程式。