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.mzph.cn/news/58950.shtml

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

相关文章

WebSocket- 前端篇

官网代码 // 为了浏览器兼容websocketconst WebSocket window.WebSocket || window.MozWebSocket// 创建连接 this.socket new WebSocket(ws://xxx)// 连接成功this.socket.onopen (res)>{console.log(websocket 连接成功)this.socket.send(入参字段) // 传递的参数字段}…

zookeeper集群 数据一致性测试

搭建zk集群 准备 3台ubuntu 20机器每台机器提前安装配置好jdk-8apache-zookeeper-3.8.2-bin.tar.gz 开始 # 上传 scp -P 22 -r C:\Users\xcrj\Downloads\apache-zookeeper-3.8.2-bin.tar.gz root192.168.1.102:/root/zk/ # 解压 tar -zxvf apache-zookeeper-3.8.2-bin.tar.…

【前端】 Layui点击图片实现放大、关闭效果

实现效果&#xff1a;点击图片实现放大&#xff0c;点击空白处关闭效果。下图。 实现逻辑&#xff1a;二维码是使用JQ插件生成的&#xff0c;点击二维码&#xff0c;获取图片路径&#xff0c;通过Layui的弹窗显示放大后的图片。 Html <div id"qrcode" class&quo…

Java学习笔记31——字符流

字符流 字符流为什么出现字符流编码表字符串中的编码解码问题字符流写数据的5中方式字符流读数据的两种方式字符流复制Java文件 字符流 为什么出现字符流 汉字的存储如果是GBK编码占用2个字节&#xff0c;如果是UTF-8占用三个字节 用字节流复制文本文件时&#xff0c;文本文…

驱动开发错误汇编

本博文将会不定期更新。以便记录我的驱动开发生涯中的一些点点滴滴的技术细节和琐事。 生成时link找不到导出函数&#xff0c;比如"LNK2019 无法解析的外部符号 _FltCreateCommunicationPort32"。出现这种情况的原因是&#xff0c;驱动的编译环境忽略了所有的默认库&…

基于实例的学习方法

基于实例的学习方法 动机基本概念基于实例的学习基于实例的概念表示 1. 最近邻最近邻的例子理论结果最近邻&#xff08;1- NN&#xff09;:解释问题 K-近邻(KNN)KNN讨论1 &#xff1a;距离度量KNN 讨论2&#xff1a;属性KNN:属性归一化KNN:属性加权 KNN讨论3:连续取值目标函数K…

Python爬虫实战:自动化数据采集与分析

在大数据时代&#xff0c;数据采集与分析已经成为了许多行业的核心竞争力。Python作为一门广泛应用的编程语言&#xff0c;拥有丰富的爬虫库&#xff0c;使得我们能够轻松实现自动化数据采集与分析。本文将通过一个简单的示例&#xff0c;带您了解如何使用Python进行爬虫实战。…

C# 使用NPOI操作EXCEL

1.添加NOPI 引用->管理NuGet程序包->添加NOPI 2.相关程序集 3.添加命名空间 using NPOI.HSSF; using NPOI.XSSF; using System.IO; using NPOI.XSSF.UserModel; using NPOI.HSSF.UserModel; 4.从Excel导入的dgv样例 //NPOI读入dgv private void button1_Click(object s…

内存分析之GCViewer详细解读

文章目录 GCViewer详细解读一&#xff0c;Chart详解二&#xff0c;Event detail三&#xff0c;Summary四&#xff0c;Pause五&#xff0c;相关概念5.1 GC5.1.1 Full GC5.1.2 Minor GC 5.2 垃圾收集器5.2.1 串行收集器&#xff08;Serial&#xff09;5.2.2 **ParNew收集器**5.2.…

Python切换输入法的实战代码

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

经纬恒润荣获吉利汽车“最佳价值贡献”奖

8月18日&#xff0c;以“全面向新 共创共赢”为主题&#xff0c;吉利汽车在宁波成功举行2023年电子电器核心供应商恳谈会。经纬恒润凭借在项目合作上持续创新、高效协同等优异表现&#xff0c;获得“最佳价值贡献”奖项。 作为国产汽车代表性品牌之一&#xff0c;吉利汽车积极推…

多通道振弦数据记录仪在岩土工程隧洞中的完整解决方案

多通道振弦数据记录仪在岩土工程隧洞中的完整解决方案 隧洞工程是一种非常复杂的工程类型&#xff0c;需要高度的安全性和精确性。而在岩土工程中&#xff0c;振弦是一种非常常用的测试方法&#xff0c;用于测定岩土体的物理性质以及地震波传播特性等&#xff0c;以利于对隧洞…

【深入浅出设计模式--状态模式】

深入浅出设计模式--状态模式 一、背景二、问题三、解决方案四、 适用场景总结五、后记 一、背景 状态模式是一种行为设计模式&#xff0c;让你能在一个对象的内部状态变化时改变其行为&#xff0c;使其看上去就像改变了自身所属的类一样。其与有限状态机的概念紧密相关&#x…

解决Three.js辉光背景不透明

使用此pass canvas元素的background都能看到 不过相应的辉光颜色和背景颜色不相容的地方看起来颜色会怪一些 如图 不过如果是纯色就没什么问题了 //ts-nocheck /** Author: hongbin* Date: 2023-04-06 11:44:14* LastEditors: hongbin* LastEditTime: 2023-04-06 11:49:23* De…

电缆工厂 3D 可视化管控系统 | 智慧工厂

近年来&#xff0c;我国各类器材制造业已经开始向数字化生产转型&#xff0c;使得生产流程变得更加精准高效。通过应用智能设备、物联网和大数据分析等技术&#xff0c;企业可以更好地监控生产线上的运行和质量情况&#xff0c;及时发现和解决问题&#xff0c;从而提高生产效率…

libevent源码学习3---事件event

libevent源码学习3—事件event libevent 的基本操作单元是事件。每个事件代表一组条件的集合, 这些条件包括: 文件描述符已经就绪, 可以读取或者写入文件描述符变为就绪状态,可以读取或者写入(仅对于边沿触发 IO)超时事件发生某信号用户触发事件 所有事件具有相似的生命周期。…

SpringBoot集成Redis、Redisson保姆教程【附源码】

1. SpringBoot集成Redis 关于Redis的安装,这里就不重复介绍了,需要的朋友可以看我之前的博文Redis多系统安装(Windows、Linux、Ubuntu) Redis原生命令大全,作者整理的很详细,大部分命令转化为java命令基本也是关键词 Redis 命令参考 接下来开始我们的正题,一起学习下…

Windows域环境下,GPO部署的注意事项。

文章目录 GPO部署的注意事项1. 计划和测试2. 命名和文档化3. 安全性4. OU&#xff08;组织单位&#xff09;结构5. GPO优先级6. 禁用不需要的GPO7. 回滚计划8. 日志和审计9. 版本控制10. 性能影响11. 考虑用户体验12. 更新和维护 推荐阅读 在Windows域环境中&#xff0c;使用组…

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用 在2016年&#xff0c; 随着微软的Deep Crossing&#xff0c; 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出&#xff0c; 推荐系统全面进入了深度学习时代&#xff0c; 时至今日&#xff0c…

跨站请求伪造(CSRF)

文章目录 渗透测试漏洞原理跨站请求伪造&#xff08;CSRF&#xff09;1. CSRF概述1.1 基本概念1.1.1 关键点1.1.2 目标 1.2 CSRF场景1.2.1 银行账户转账1.2.2 构造虚假网站1.2.3 场景建模1.2.4 实验 1.3 CSRF类别1.3.1 POST方式 1.4 CSRF验证1.4.1 CSRF Poc generator 1.5 XSS与…