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