簡介
JupyterHub是一個開源的共享計算平臺,它為每個用戶管理一個單獨(dú)的 Jupyter 環(huán)境, 可以用于學(xué)生班級、企業(yè)數(shù)據(jù)科學(xué)小組或科學(xué)研究小組。它是一個多用戶中心,可以生成、管理和代理多個單用戶Jupyter筆記本服務(wù)器的實(shí)例。GNU Octave是一種采用高級編程語言的主要用于數(shù)值分析的軟件。Octave有助于以數(shù)值方式解決線性和非線性問題,并使用與MATLAB兼容的語言進(jìn)行其他數(shù)值實(shí)驗(yàn)。它也可以作為面向批處理的語言使用。因?yàn)樗荊NU計劃的一部分,所以它是GNU通用公共許可證條款下的自由軟件。本期,我們就來試試Jupyter和Octave組成一個多用戶的科學(xué)計算平臺。
實(shí)驗(yàn)材料:
pip(如果沒有安裝請先安裝python3-pip)
Octave源代碼
一臺HS-2服務(wù)器
服務(wù)器配置:
CPU:SG2042(64核心)RAM:32GB硬盤容量:1TB
操作系統(tǒng):Ubuntu 22.10 (GNU/Linux 6.1.31 riscv64)
實(shí)驗(yàn)步驟:
先通過pip安裝JupyterHub、JupyterLab和Jupyter Notebook:
pip3 install jupyterhub jupyterlab notebook
生成配置文件(可以根據(jù)實(shí)際情況對配置文件進(jìn)行修改):
jupyterhub --generate-config
然后啟動jupyterhub:
jupyterhub
或后臺運(yùn)行:
nohup jupyterhub &
瀏覽器訪問[服務(wù)器地址]:8000即可,訪問后發(fā)現(xiàn)雖然我們看到了JupyerHub在運(yùn)行,但是只有Python3,并沒有Octave選項。
因此,我們還需要安裝Octave和相關(guān)組件。
安裝Octave的方式有兩種:編譯安裝和apt安裝。
方式1:直接使用apt安裝
sudo apt install octave
方式2:編譯安裝
下載Octave源碼包
wgethttps://mirror2.sandyriver.net/pub/software/gnu/octave/octave-8.3.0.tar.gz
(如果下載速度慢,可以先提前在自己的電腦上下載好,然后將文件傳到服務(wù)器上)
解壓Octave源碼包
tar -xzvf octave-8.3.0.tar.gz
進(jìn)入Octave源碼文件夾
cd octave-8.3.0/
配置:
./configure
編譯:
make -j64(線程數(shù)根據(jù)實(shí)際情況來設(shè)置)
安裝:
sudo make install
運(yùn)行octave shell,如果出現(xiàn)版本號及提示,就說明安裝成功!
安裝octave-kernel
pip3 install octave-kernel
安裝gnuplot
sudo apt- get install gnuplot
然后重新啟動jupyterhub(如果是后臺運(yùn)行請先確保已殺滅所有jupyterhub相關(guān)進(jìn)程再重啟):
jupyterhub
或者:
nohup jupyterhub &(后臺運(yùn)行)
然后再次打開瀏覽器訪問[服務(wù)器地址]:8000就可以看到Octave筆記了。
我們選擇Octave新建筆記。畫一個正弦函數(shù)圖:
graphics_toolkit("gnuplot"); gnuplot_binary('/usr/bin/gnuplot'); % 設(shè)置gnuplot二進(jìn)制文件的路徑,具體路徑可能不同 % 生成一組 x 值(從 0 到 2π,間隔為 0.01) x = 0:0.01:2*pi; % 計算對應(yīng)的正弦值 y = sin(x); % 繪制正弦函數(shù)圖 plot(x, y); title("Sin Function"); % 添加標(biāo)題 xlabel("x"); % 添加 x 軸標(biāo)簽 ylabel("sin(x)"); % 添加 y 軸標(biāo)簽 grid on; % 添加網(wǎng)格線
效果:
畫個心形:
其實(shí)Octave不僅可以畫圖,甚至還可以算斐波那契數(shù)列。
甚至是算圓周率:
結(jié)果提示缺少庫。因此我們需要安裝symbolic包。
得益于Octave支持安裝擴(kuò)展包,我們可以利用一些擴(kuò)展包來實(shí)現(xiàn)更多功能,讓Octave變得更加強(qiáng)大。
進(jìn)入Octave Shell后,先更新擴(kuò)展包源,然后再下載并安裝symbolic包:
pkg update pkg install -forge symbolic
再重新嘗試運(yùn)行就可以了:
然后分別測試10、100、1000、10000和100000位:
10位:1.1531 秒 100位:1.155 秒 1000位:1.1567 秒 10000位:1.2044 秒 100000位:3.2812 秒
接下來就是嘗試多用戶了,雖然Jupyterhub可以使用多用戶單個筆記本管理,但是如果需要實(shí)現(xiàn)多用戶管理,那就需要root賬號了。
首先切換到root賬號:
su
輸入密碼后進(jìn)入以root用戶登錄,然后回到家目錄:
cd
安裝相關(guān)包:
pip3 install jupyterhub jupyterlab notebook
新建一個jupyerhub文件夾:
mkdir jupyterhub
復(fù)制之前的配置文件(可以根據(jù)自身情況適當(dāng)修改)
cp jupyterhub_config.py jupyterhub
或新建配置文件
jupyterhub --generate-config
啟動JupyterHub
jupyterhub
以后臺形式啟動JupyterHub
nohup jupyterhub &
但是其他用戶界面里沒有Octave,于是我就直接在root用戶下安裝octave-kernel了。
pip3 install octave-kernel
同時啟動三個用戶,并計算Pi,并觀察耗時,確保三個用戶的Octave都處于Busy狀態(tài)。
結(jié)果如下(精準(zhǔn)到10萬位小數(shù)點(diǎn)):
perfxlab01:6.762秒 python01:6.6159秒 python02:6.9564秒
測試下來只有零點(diǎn)幾秒的差距,但是相比于單個用戶下算圓周率耗時會久一些。
不僅可以使用Octave筆記,也可以使用Octave命令符(Shift+Enter發(fā)送命令)。
小貼士:
執(zhí)行配置或編譯時,如果提示缺少所需依賴,請先安裝所需依賴然后重新執(zhí)行配置或編譯。運(yùn)行代碼時,如果提示缺少所需依賴,可以先以root身份登錄然后安裝所需依賴,然后再重新啟動該各個用戶的Jupyter服務(wù)器(或直接重啟整個JupyterHub)即可。
實(shí)驗(yàn)總結(jié):
有了JupyterHub的加持,現(xiàn)在HS-2服務(wù)器可以成為一個優(yōu)秀的科學(xué)計算平臺,再配合上Octave,你不僅可以用JupyterHub上用Python跑科學(xué)計算,你還可以使用Octave完成科學(xué)計算任務(wù),甚至可以多個用戶使用同一個JupyterHub服務(wù)器。
參考資料:
JupyterHub頁面
https://jupyter.org/hub
Octave官網(wǎng)
https://octave.org/
Octave Packages
https://gnu-octave.github.io/packages/
Configuration Reference — JupyterHub documentation
https://jupyterhub.readthedocs.io/en/stable/reference/config-reference.html
正文完
About HS-2
HS-2 RISC-V通用主板是澎峰科技與合作伙伴共同研發(fā)的一款專為開發(fā)者設(shè)計的標(biāo)準(zhǔn)mATX主板,它預(yù)裝了澎峰科技為RISC-V高性能服務(wù)器定制開發(fā)的軟件包,包括各種標(biāo)準(zhǔn)bencmark、支持V擴(kuò)展的GCC編譯器、計算庫、中間件以及多種典型服務(wù)器應(yīng)用程序。
HS-2 RISC-V通用主板搭載了一顆國產(chǎn)RISC-V 64核處理器(SG2042)。SG2042是目前已量產(chǎn)的性能最高的RISC-V處理器,主要針對高性能計算領(lǐng)域需求設(shè)計,適用于科學(xué)計算、工程計算、AI計算、融合計算等大算力應(yīng)用場景。
關(guān)于RISC-V公共測試平臺
RISC-V高性能處理器公共測試云平臺 ·快速使用指南,下載鏈接:https://www.kdocs.cn/l/cmnYcyFIlVRx
RISC-V公共測試云平臺系列文章
RISC-V公測平臺發(fā)布 ·Stream帶寬完整測試
RISC-V公測平臺發(fā)布 · 我的世界MohistMC
RISC-V公測平臺發(fā)布 · 第一個WEB Server“Hello RISC-V world!”
RISC-V公測平臺發(fā)布 ·如何在SG2042上玩轉(zhuǎn)k3s
“RISC-V成長日記” blog發(fā)布,第一個運(yùn)行在RISC-V服務(wù)器上的blog?
RISC-V公測平臺發(fā)布:如何在SG2042上玩轉(zhuǎn)OpenMPI
RISC-V公測平臺發(fā)布:Compiling The Fedora Linux Kernel Natively on RISC-V
RISC-V公測平臺發(fā)布 · Unix Bench完整測試
RISC-V公測平臺發(fā)布 · 使用YCSB測試SG2042上的MySQL性能
RISC-V公測平臺發(fā)布 · 7-zip 測試
RISC-V公測平臺發(fā)布 · CoreMark測試報告
RISC-V公測平臺發(fā)布 · 數(shù)據(jù)庫在RISC-V服務(wù)器上的適配評估
RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境(本篇)
審核編輯:湯梓紅
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9024瀏覽量
85186 -
編程語言
+關(guān)注
關(guān)注
10文章
1939瀏覽量
34601 -
開源
+關(guān)注
關(guān)注
3文章
3254瀏覽量
42408 -
python
+關(guān)注
關(guān)注
56文章
4782瀏覽量
84456 -
RISC-V
+關(guān)注
關(guān)注
44文章
2230瀏覽量
46034
發(fā)布評論請先 登錄
相關(guān)推薦
評論