RISC-V公测平台发布 · 在SG2042上配置Jupiter+Octave科学计算环境

简介

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 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可以使用多用户单个笔记本管理,但是如果需要实现多用户管理,那就需要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公共测试云平台系列文章

  1.  RISC-V公测平台发布 ·Stream带宽完整测试

  2.  RISC-V公测平台发布 · 我的世界MohistMC

  3.  RISC-V公测平台发布 · 第一个WEB Server“Hello RISC-V world!”

  4.  RISC-V公测平台发布 ·如何在SG2042上玩转k3s

  5. “RISC-V成长日记” blog发布,第一个运行在RISC-V服务器上的blog?

  6. RISC-V公测平台发布:如何在SG2042上玩转OpenMPI

  7. RISC-V公测平台发布:Compiling The Fedora Linux Kernel Natively on RISC-V

  8.  RISC-V公测平台发布 · Unix Bench完整测试

  9. RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能

  10. RISC-V公测平台发布 · 7-zip 测试

  11. RISC-V公测平台发布 · CoreMark测试报告

  12. RISC-V公测平台发布 · 数据库在RISC-V服务器上的适配评估

  13. RISC-V公测平台发布 · 在SG2042上配置Jupiter+Octave科学计算环境(本篇)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/109648.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频怎么变成动态gif图?一个方法轻松转换

怎么将视频转换成gif动态图片呢?大家在日常看电影、电视剧,刷短视频的时候想要将其做成gif表情包时,应该如何操作呢?这时候,给大家分享一款操作简单无需下载的视频gif转换(https://www.gif.cn/)…

Spring相关知识

0、Spring的核心就是AOP和IOC IOC: AOP:AOP(Aspect Oriented Programming)是面向切面编程,它是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的…

华为数通方向HCIP-DataCom H12-821题库(单选题:41-60)

第41题 以下关于IS-IS协议说法错误的是? A、IS-IS协议支持CLNP网络 B、IS-IS 协议支持IP 网络 C、IS-IS 协议的报文直接由数据链路层封装 D、IS-IS协议是运行在AS之间的链路状态协议 答案:D 解析: 关于IS-IS协议的说法错误是D. IS-IS协议是运行在A…

融媒行业落地客户旅程编排,详解数字化用户运营实战

移动互联网时代是流量红利的时代,企业常用低成本的方式进行获客,“增长黑客”的概念大范围传播。与此同时,机构媒体受到传播环境的影响,也开始启动全行业的媒体融合转型。在此背景下,2015 年神策数据成立,核…

Django(6)-django项目自动化测试

Django 应用的测试应该写在应用的 tests.py 文件里。测试系统会自动的在所有以 tests 开头的文件里寻找并执行测试代码。 我们的 polls 应用现在有一个小 bug 需要被修复:我们的要求是如果 Question 是在一天之内发布的, Question.was_published_recentl…

【VRTK4.0运动专题】轴移动AxisMove(真实身体的移动)

文章目录 1、概览2、释义3、属性设置 1、概览 2、释义 “竖直轴”控制的行为“水平轴”控制的行为1Vertical-Slide 滑动Horizontal-Slide 滑动2Vertical-Slide 滑动Horizontal-SmoothRotate 转动3Vertical-Slide 滑动Horizontal-SnapRotate 转动(不连续&#xff09…

5G网关如何提升智慧乡村农业生产效率

得益于我国持续推进5G建设,截至今年5月,我国5G基站总数已达284.4万个,覆盖全国所有地级市、县城城区和9成以上的乡镇镇区,实现“镇镇通5G”,全面覆盖了从城市到农村的延伸。 依托5G网络的技术优势,智慧乡村…

Squaretest 1.8.3 安装激活

1. 插件下载 2. 离线安装 3. 插件激活

续1-续3《你的医书是假的!批评付施威的《DDD诊所——聚合过大综合症》

DDD领域驱动设计批评文集 “软件方法建模师”不再考查基础题 《软件方法》各章合集 我写了一篇文章,批评付施威的《DDD诊所——聚合过大综合症》(以下简称《DDD诊所》),文章是《你的医书是假的!批评付施威的《DDD诊…

vscode调试PHP代码

目录 准备工作ssh的连接以及配置调试 准备工作 1.首先你需要下载一个vscode 2.下载模块 你需要在VScode中去下载我们所需的两个模块PHP Debug以及remote -ssh 3.安装对应版本的xdebug 需要在xdebug的官方去进行分析,选择适合你自己版本的xdebug 去往官方&#x…

ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则

ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则 一、安装二、页面使用三、验证码相关配置属性1. 自定义验证码配置2. 自定义验证码(一)普通验证码3. 自定义验证码(二)算数验证码4…

MySQL概述,架构原理

一.MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典的MySQL AB公司开发,后被oracle公司收购,MySQL是当下最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Man…

为 LVGL 添加截图功能(lv_100ask_screenshot)

完整的演示视频观看: https://www.bilibili.com/video/BV18r4y1X7MJ 前言 lv_100ask_screenshot 是一个基于 lvgl 的屏幕截图工具。 lv_100ask_screenshot 特性: 可以将LVGL的屏幕对象(全屏)保存为图片文件:lv_scr_act(),laye…

Flask狼书笔记 | 03_模板

文章目录 3 模板3.1 模板基本使用3.2 模板结构组织3.3 模板进阶 3 模板 模板(template):包含固定内容和动态部分的可重用文件。Jinja2模板引擎可用于任何纯文本文件。 3.1 模板基本使用 HTML实体:https://dev.w3.org/html5/htm…

基于Ubuntu坏境下的Suricata坏境搭建

目录 Suricata环境安装 第一步、在 Ubuntu 端点安装 Suricata 1、加入Suricata源 2、更新安装包 3、下载SuricataSuricata 第二步、下载并提取新兴威胁 Suricata 规则集 1、在tmp文件夹下载 Suricata 规则集 如果发现未安装curl,使用apt安装即可:…

得帆信息CEO张桐接受21世纪财经深度专访,表示AIGC+低代码将带来生产效率的变革

近日,得帆信息创始人兼CEO张桐接受了21世纪财经深度专访,他表示AIGC低代码的黄金组合,将带来生产效率的变革。 眼下,低代码与AI创新的联接才刚刚开始,也必然会带来生产效率的变革。 在AIGC汹涌的浪潮下,聊…

【软件安装】Python安装详细教程(附安装包)

软件简介 Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质&#xff0c…

机械臂手眼标定ZED相机——眼在手外python、matlab

目录 1.眼在手外原理 2.附上眼在手外求得手眼矩阵的python代码 3.眼在手外标定步骤 1)打印棋盘格 2)得到hand数据 3)得到camera数据 4.运行python得到手眼矩阵 1.眼在手外原理 眼在手外所求的手眼矩阵是基坐标到相机的转换矩阵 2.附上…

springboot服务注册到Eureka,端口总是默认8080,自己配置端口不生效

这段时间接手了一个公司的老项目,用的是SpringCloud,在我用的时候突然发现有一个服务,注册到Eureka后,界面显示的端口和实际Ribbon调用的实例端口是不一致的,后来我自己写了个端口获取了一下所有的实例信息&#xff0c…

门禁系统忘记登入密码,现在更换电脑如何迁移旧电脑门禁系统的数据

环境: ivms-4200 v3.10.0.6_c 问题描述: 门禁系统忘记登入密码,现在更换电脑如何迁移旧电脑门禁系统的数据,旧电脑记住密码,忘了密码和密保了 解决方案: 1.前往海康官网下载4200客户端,在新电脑上安装 …