導入
JupyterHub は、ユーザーごとに個別の Jupyter 環境を管理するオープンソースの共有コンピューティング プラットフォームで、学生のクラス、企業のデータ サイエンス グループ、または科学研究グループに使用できます。これは、シングルユーザー Jupyter ノートブック サーバーの複数のインスタンスを生成、管理、プロキシできるマルチユーザー ハブです。
GNU Octave は、主に数値解析に使用される高級プログラミング言語を使用したソフトウェアです。Octave は、線形および非線形問題を数値的に解決し、MATLAB 互換言語を使用して他の数値実験を行うのに役立ちます。バッチ指向言語としても使用できます。これは GNU プロジェクトの一部であるため、GNU General Public License の条件に基づくフリー ソフトウェアです。
今回は、Jupyter と Octave を使ってマルチユーザー科学計算プラットフォームを構築してみます。
実験材料:
Python 3 (そうでない場合は、最初に python3 をインストールしてください)
pip (インストールされていない場合は、最初に python3-pip をインストールしてください)
オクターブソースコード
HS-2 サーバー 1 台
サーバー構成:
CPU:SG2042(64コア)
RAM:32GB
ハードドライブ容量: 1TB
オペレーティング システム: Ubuntu 22.10 (GNU/Linux 6.1.31 riscv64)
実験手順:
まず、pip を通じて JupyterHub、JupyterLab、Jupyter Notebook をインストールします。
pip3 install jupyterhub jupyterlab notebook
構成ファイルを生成します (構成ファイルは実際の状況に応じて変更できます)。
jupyterhub --generate-config
次に、jupyterhub を起動します。
jupyterhub
または、バックグラウンドで実行します。
nohup jupyterhub &
ブラウザで [サーバー アドレス]:8000 にアクセスしてみると、JupyerHub が実行されているのは確認できましたが、Python3 のみがあり、Octave オプションがありませんでした。
したがって、Octave と関連コンポーネントもインストールする必要があります。
Octave をインストールするには、コンパイル インストールと apt インストールの 2 つの方法があります。
方法 1: apt を使用して直接インストールする
sudo apt install octave
方法 2: コンパイルしてインストールする
Octave ソースコード パッケージをダウンロード
ウィゲット
https://mirror2.sandyriver.net/pub/software/gnu/octave/octave-8.3.0.tar.gz
(ダウンロード速度が遅い場合は、事前にパソコンにダウンロードしてからサーバーにファイルを転送することも可能です)
Octave ソース パッケージを解凍します。
tar -xzvf octave-8.3.0.tar.gz
Octave ソースコードフォルダーに入る
cd octave-8.3.0/
構成:
./configure
コンパイル:
make -j64(线程数根据实际情况来设置)
インストール:
sudo make install
オクターブ シェルを実行します。バージョン番号とプロンプトが表示されれば、インストールは成功したことを意味します。
オクターブカーネルをインストールする
pip3 install octave-kernel
gnuplot をインストールする
sudo apt-get install gnuplot
次に、jupyterhub を再起動します (バックグラウンドで実行されている場合は、再起動する前に jupyterhub 関連のプロセスをすべて強制終了したことを確認してください)。
jupyterhub
または:
nohup jupyterhub &(后台运行)
次に、ブラウザを再度開き、[サーバー アドレス]:8000 にアクセスして、オクターブ ノートを確認します。
新しいノートを作成するには、オクターブを選択します。
正弦関数をプロットします。
graphics_toolkit("gnuplot");
gnuplot_binary('/usr/bin/gnuplot'); % 设置gnuplot二进制文件的路径,具体路径可能不同
% 生成一组 x 值(从 0 到 2π,间隔为 0.01)
x = 0:0.01:2*pi;
% 计算对应的正弦值
y = sin(x);
% 绘制正弦函数图
plot(x, y);
title("Sin Function"); % 添加标题
xlabel("x"); % 添加 x 轴标签
ylabel("sin(x)"); % 添加 y 轴标签
grid on; % 添加网格线
効果:
ハートの形を描きます。
実際、Octave は絵を描くだけでなく、フィボナッチ数列を計算することもできます。
円周率を計算しても:
結果は、ライブラリが欠落していることを示しています。したがって、シンボリックパッケージをインストールする必要があります。
Octave は拡張パックのインストールをサポートしているため、いくつかの拡張パックを使用してより多くの機能を実現し、Octave をより強力にすることができます。
Octave Shell に入ったら、まず拡張パッケージ ソースを更新し、次にシンボリック パッケージをダウンロードしてインストールします。
pkg update
pkg install -forge symbolic
もう一度実行してみてください。
次に、10、100、1000、10000、100000 ビットをそれぞれテストします。
10位:1.1531 秒
100位:1.155 秒
1000位:1.1567 秒
10000位:1.2044 秒
100000位:3.2812 秒
Jupyterhub は 1 つのノートブックで複数のユーザーを使用して管理できますが、マルチユーザー管理を実現する必要がある場合は、root アカウントが必要です。
まず root アカウントに切り替えます。
su
パスワードを入力した後、root ユーザーとしてログインし、ホーム ディレクトリに戻ります。
cd
関連するパッケージをインストールします。
pip3 install jupyterhub jupyterlab notebook
新しい jupyerhub フォルダーを作成します。
mkdir jupyterhub
以前の設定ファイルをコピーします(状況に応じて適切に変更できます)
cp jupyterhub_config.py jupyterhub
または、新しい構成ファイルを作成します
jupyterhub --generate-config
JupyterHub を開始する
jupyterhub
バックグラウンドで JupyterHub を起動する
nohup jupyterhub &
ただし、他のユーザーインターフェースには Octave がないので、root ユーザー直下に octave-kernel をインストールしました。
pip3 install octave-kernel
3 人のユーザーを同時に起動し、Pi を計算し、3 人のユーザーのオクターブがビジー状態になるまでにかかる時間を観察します。
結果は次のとおりです (小数点以下 100,000 桁までの精度)。
perfxlab01:6.762秒
python01:6.6159秒
python02:6.9564秒
テスト後、その差はわずか 10 分の数秒ですが、1 人のユーザーの円周率を計算するよりも時間がかかります。
オクターブ音符を使用できるだけでなく、オクターブ コマンド記号 (コマンドを送信するには Shift+Enter) も使用できます。
チップ:
構成またはコンパイルを実行するときに、必要な依存関係が欠落していることを示すメッセージが表示された場合は、最初に必要な依存関係をインストールしてから、再度構成またはコンパイルを実行してください。
コードの実行時に、必要な依存関係が欠落していることを示すメッセージが表示された場合は、まず root としてログインして必要な依存関係をインストールし、次に各ユーザーの Jupyter サーバーを再起動します (または JupyterHub 全体を直接再起動します)。
実験の概要:
JupyterHub の恩恵により、HS-2 サーバーは優れた科学計算プラットフォームになることができます。Octave と組み合わせると、Python を使用して JupyterHub 上で科学計算を実行できるだけでなく、Octave を使用して科学計算タスクを完了することもできます。さらに多くのユーザーが同じ JupyterHub サーバーを使用しています。
参考文献:
JupyterHub ページ
https://jupyter.org/hub
オクターブ公式サイト
https://オクターブ.org/
オクターブパッケージ
https://gnu-octave.github.io/packages/
構成リファレンス — JupyterHub ドキュメント
https://jupyterhub.readthedocs.io/en/stable/reference/config-reference.html
本文の終わり
-
HS-2について
HS-2 RISC-V ユニバーサル マザーボードは、Pengfeng Technology とそのパートナーが共同開発した開発者向けに設計された標準 mATX マザーボードで、Pengfeng Technology が RISC-V 高性能サーバー用にカスタマイズおよび開発したソフトウェア パッケージがプリインストールされています。さまざまな標準ベンチマーク、V 拡張をサポートする GCC コンパイラー、コンピューティング ライブラリ、ミドルウェア、およびさまざまな代表的なサーバー アプリケーションを含みます。
HS-2 RISC-Vユニバーサルマザーボードは、国産RISC-V 64コアプロセッサ(SG2042)を搭載しています。SG2042 は、現在量産されている最高性能の RISC-V プロセッサであり、主に高性能コンピューティングのニーズに合わせて設計されており、科学コンピューティング、エンジニアリング コンピューティング、AI コンピューティング、フュージョン コンピューティングなどの大規模なコンピューティング能力アプリケーション シナリオに適しています。 。
RISC-V パブリック テストベッドについて
RISC-V 高性能プロセッサー パブリック テスト クラウド プラットフォーム · クイック スタート ガイド、ダウンロード リンク: https://www.kdocs.cn/l/cmnYcyFIlVRx
-
RISC-V パブリック テスト クラウド プラットフォーム シリーズの記事
-
RISC-V パブリック ベータ プラットフォームがリリースされました: SG2042 で OpenMPI をプレイする方法
-
RISC-V パブリック ベータ プラットフォームがリリースされました: Fedora Linux カーネルを RISC-V 上でネイティブにコンパイルする
-
RISC-V パブリック ベータ プラットフォームがリリース · YCSB を使用して SG2042 で MySQL パフォーマンスをテスト
-
RISC-V パブリックベータプラットフォームをリリース · SG2042 で Jupiter+Octave 科学計算環境を構成する (この記事)