简介
jupyterhub是一个开源的共享计算平台,它为每个用户管理一个单独的 jupyter 环境, 可以用于学生班级、企业数据科学小组或科学研究小组。它是一个多用户中心,可以生成、管理和代理多个单用户jupyter笔记本服务器的实例。gnu octave是一种采用高级编程语言的主要用于数值分析的软件。octave有助于以数值方式解决线性和非线性问题,并使用与matlab兼容的语言进行其他数值实验。它也可以作为面向批处理的语言使用。因为它是gnu计划的一部分,所以它是gnu通用公共许可证条款下的自由软件。本期,我们就来试试jupyter和octave组成一个多用户的科学计算平台。
实验材料:
python 3(如果没有请先安装python3)
pip(如果没有安装请先安装python3-pip)
octave源代码
一台hs-2服务器
服务器配置:
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安装。
方式1:直接使用apt安装
sudo apt install octave
方式2:编译安装
下载octave源码包
wget 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
运行octave shell,如果出现版本号及提示,就说明安装成功!
安装octave-kernel
pip3 install octave-kernel
安装gnuplot
sudo apt-get install gnuplot
然后重新启动jupyterhub(如果是后台运行请先确保已杀灭所有jupyterhub相关进程再重启):
jupyterhub
或者:
nohup jupyterhub &(后台运行)
然后再次打开浏览器访问[服务器地址]:8000就可以看到octave笔记了。
我们选择octave新建笔记。画一个正弦函数图:
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不仅可以画图,甚至还可以算斐波那契数列。
甚至是算圆周率:
结果提示缺少库。因此我们需要安装symbolic包。
得益于octave支持安装扩展包,我们可以利用一些扩展包来实现更多功能,让octave变得更加强大。
进入octave shell后,先更新扩展包源,然后再下载并安装symbolic包:
pkg updatepkg install -forge symbolic
再重新尝试运行就可以了:
然后分别测试10、100、1000、10000和100000位:
10位:1.1531 秒100位:1.155 秒1000位:1.1567 秒10000位:1.2044 秒100000位:3.2812 秒
接下来就是尝试多用户了,虽然jupyterhub可以使用多用户单个笔记本管理,但是如果需要实现多用户管理,那就需要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
同时启动三个用户,并计算pi,并观察耗时,确保三个用户的octave都处于busy状态。
结果如下(精准到10万位小数点):
perfxlab01:6.762秒python01:6.6159秒python02:6.9564秒
测试下来只有零点几秒的差距,但是相比于单个用户下算圆周率耗时会久一些。
不仅可以使用octave笔记,也可以使用octave命令符(shift+enter发送命令)。
小贴士:
执行配置或编译时,如果提示缺少所需依赖,请先安装所需依赖然后重新执行配置或编译。运行代码时,如果提示缺少所需依赖,可以先以root身份登录然后安装所需依赖,然后再重新启动该各个用户的jupyter服务器(或直接重启整个jupyterhub)即可。
实验总结:
有了jupyterhub的加持,现在hs-2服务器可以成为一个优秀的科学计算平台,再配合上octave,你不仅可以用jupyterhub上用python跑科学计算,你还可以使用octave完成科学计算任务,甚至可以多个用户使用同一个jupyterhub服务器。
参考资料:
jupyterhub页面
https://jupyter.org/hub
octave官网
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通用主板是澎峰科技与合作伙伴共同研发的一款专为开发者设计的标准matx主板,它预装了澎峰科技为risc-v高性能服务器定制开发的软件包,包括各种标准bencmark、支持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公测平台发布 ·stream带宽完整测试
risc-v公测平台发布 · 我的世界mohistmc
risc-v公测平台发布 · 第一个web server“hello risc-v world!”
risc-v公测平台发布 ·如何在sg2042上玩转k3s
“risc-v成长日记” blog发布,第一个运行在risc-v服务器上的blog?
risc-v公测平台发布:如何在sg2042上玩转openmpi
risc-v公测平台发布:compiling the fedora linux kernel natively on risc-v
risc-v公测平台发布 · unix bench完整测试
risc-v公测平台发布 · 使用ycsb测试sg2042上的mysql性能
risc-v公测平台发布 · 7-zip 测试
risc-v公测平台发布 · coremark测试报告
risc-v公测平台发布 · 数据库在risc-v服务器上的适配评估
risc-v公测平台发布 · 在sg2042上配置jupiter+octave科学计算环境(本篇)
米尔科技mbed 开发板 介绍
TDK杂散场稳健型ASIL C级霍尔效应位置传感器适用于高速电机
伺服电机的特性曲线概述
Novell携手IBM推出DB2软件装置
为什么VR行业会如同过山车般大起大落?
RISC-V公测平台发布·在SG2042上配置Jupiter+Octave科学计算环境
Fusion混合信号FPGA扩展温度范围型器件
RACM1200-V|行业领先高功率密度医疗电源
威兆MOS在光伏优化器中的应用
2022年有什么好的蓝牙耳机?新款好用的蓝牙耳机推荐
NI将半导体ATE数字功能引入PXI平台
DPoS算法详细介绍
800V超快充下的Pyrofuse熔断设计
封测领域风云再起 巨头布建3D IC封测产能
基于DSP技术的MP3播放器的研究与设计
元器件的定位方法和线路板上焊盘及丝印的对应关系
仲恺能否成为人工智能产业新高地?
全球以太网交换机和路由器在2019年里的销量情况报告分析
新颁发的这一规定与直线电机模组喷涂设备相关
网络机顶盒连接无线路由器步骤解析