RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境

簡介
JupyterHub是一個開源的共享計算平臺,它為每個用戶管理一個單獨的 Jupyter 環(huán)境, 可以用于學(xué)生班級、企業(yè)數(shù)據(jù)科學(xué)小組或科學(xué)研究小組。它是一個多用戶中心,可以生成、管理和代理多個單用戶Jupyter筆記本服務(wù)器的實例。
GNU Octave是一種采用高級編程語言的主要用于數(shù)值分析的軟件。Octave有助于以數(shù)值方式解決線性和非線性問題,并使用與MATLAB兼容的語言進(jìn)行其他數(shù)值實驗。它也可以作為面向批處理的語言使用。因為它是GNU計劃的一部分,所以它是GNU通用公共許可證條款下的自由軟件。
本期,我們就來試試Jupyter和Octave組成一個多用戶的科學(xué)計算平臺。

實驗材料:

Python 3(如果沒有請先安裝python3)
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)

實驗步驟:

先通過pip安裝JupyterHub、JupyterLab和Jupyter Notebook:
pip3 install jupyterhub jupyterlab notebook

生成配置文件(可以根據(jù)實際情況對配置文件進(jìn)行修改):

jupyterhub --generate-config

然后啟動jupyterhub:

jupyterhub

或后臺運行:

nohup jupyterhub &

瀏覽器訪問[服務(wù)器地址]:8000即可,訪問后發(fā)現(xiàn)雖然我們看到了JupyerHub在運行,但是只有Python3,并沒有Octave選項。RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖1

因此,我們還需要安裝Octave和相關(guān)組件。
安裝Octave的方式有兩種:編譯安裝和apt安裝。
方式1:直接使用apt安裝
sudo apt install octave

方式2:編譯安裝

下載Octave源碼包
wget 
https://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/

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖2

配置:
./configure

編譯:

make -j64(線程數(shù)根據(jù)實際情況來設(shè)置)

安裝:

sudo make install

運行octave shell,如果出現(xiàn)版本號及提示,就說明安裝成功!

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖3

安裝octave-kernel

pip3 install octave-kernel

安裝gnuplot

sudo apt-get install gnuplot

然后重新啟動jupyterhub(如果是后臺運行請先確保已殺滅所有jupyterhub相關(guān)進(jìn)程再重啟):

jupyterhub

或者:

nohup jupyterhub &(后臺運行)

然后再次打開瀏覽器訪問[服務(wù)器地址]:8000就可以看到Octave筆記了。RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖4

我們選擇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)格線
效果:

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖5

畫個心形:

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖6

其實Octave不僅可以畫圖,甚至還可以算斐波那契數(shù)列。

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖7

甚至是算圓周率:

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖8

結(jié)果提示缺少庫。因此我們需要安裝symbolic包。
得益于Octave支持安裝擴(kuò)展包,我們可以利用一些擴(kuò)展包來實現(xiàn)更多功能,讓Octave變得更加強(qiáng)大。

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖9

進(jìn)入Octave Shell后,先更新擴(kuò)展包源,然后再下載并安裝symbolic包:

pkg update
pkg install -forge symbolic

再重新嘗試運行就可以了:

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖10

然后分別測試10、100、1000、10000和100000位:

10位:1.1531 秒
100位:1.155 秒
1000位:1.1567 秒
10000位:1.2044 秒
100000位:3.2812 秒

接下來就是嘗試多用戶了,雖然Jupyterhub可以使用多用戶單個筆記本管理,但是如果需要實現(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ù)點):

perfxlab01:6.762秒
python01:6.6159秒
python02:6.9564秒

測試下來只有零點幾秒的差距,但是相比于單個用戶下算圓周率耗時會久一些。

不僅可以使用Octave筆記,也可以使用Octave命令符(Shift+Enter發(fā)送命令)。

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖11

小貼士:

執(zhí)行配置或編譯時,如果提示缺少所需依賴,請先安裝所需依賴然后重新執(zhí)行配置或編譯。
運行代碼時,如果提示缺少所需依賴,可以先以root身份登錄然后安裝所需依賴,然后再重新啟動該各個用戶的Jupyter服務(wù)器(或直接重啟整個JupyterHub)即可。

實驗總結(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)用場景。

RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖12

  • 關(guān)于RISC-V公共測試平臺

    RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境的圖13

RISC-V高性能處理器公共測試云平臺 ·快速使用指南,下載鏈接:https://www.kdocs.cn/l/cmnYcyFIlVRx

  • RISC-V公共測試云平臺系列文章
  1.  RISC-V公測平臺發(fā)布 ·Stream帶寬完整測試

  2.   RISC-V公測平臺發(fā)布 · 我的世界MohistMC
  3.   RISC-V公測平臺發(fā)布 · 第一個WEB Server“Hello RISC-V world!”
  4.   RISC-V公測平臺發(fā)布 ·如何在SG2042上玩轉(zhuǎn)k3s
  5.   “RISC-V成長日記” blog發(fā)布,第一個運行在RISC-V服務(wù)器上的blog?
  6. RISC-V公測平臺發(fā)布:如何在SG2042上玩轉(zhuǎn)OpenMPI
  7. RISC-V公測平臺發(fā)布:Compiling The Fedora Linux Kernel Natively on RISC-V
  8.   RISC-V公測平臺發(fā)布 · Unix Bench完整測試
  9. RISC-V公測平臺發(fā)布 · 使用YCSB測試SG2042上的MySQL性能
  10. RISC-V公測平臺發(fā)布 · 7-zip 測試
  11. RISC-V公測平臺發(fā)布 · CoreMark測試報告
  12. RISC-V公測平臺發(fā)布 · 數(shù)據(jù)庫在RISC-V服務(wù)器上的適配評估
  13. RISC-V公測平臺發(fā)布 · 在SG2042上配置Jupiter+Octave科學(xué)計算環(huán)境(本篇)
登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP