自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 OpenMPI(二)消息的分发和收集

在中提到的点对点通信在数据操作量较大的场景下是不够高效的。为了减少通信时间,我们将采用Collective communication的通信方式,这种通信方式类似于群发消息,只需要发送一次就可以让所有进程收到信息。以下图片可以让大家更直观的理解这种通信方式的优点所在:如何进行Collective communication呢,以一个简单的计数场景为例。现有一个数组,通过并行运算统计数组中小于10的元素有几个:1.进程0告诉其他所有进程他们需要分配的内存空间是多少。2.进程0将数据分发给其他进程。

2024-03-05 18:19:03 988

原创 OpenMPI(一) 消息的发布和接收

而在并行运算中,分布式内存(distributed memory parallelism)也很常见,在这种情况下,每个操作单元独立的拥有一块内存,数据依赖关系将通过直接的交流解决,所以将不存在data race的问题。由于这是分布式的内存系统,其他进程无法直接访问到进程0所在的内存,也就无法直接读取到矩阵a的值。在这段代码中,localSize = 矩阵a的大小 / 总进程数,这样就可以把矩阵a平均分配给不同的进程进行计算。其他进程在接受到进程0发送的消息以后,会纷纷在自己的内存中进行矩阵加法。

2024-03-05 17:04:58 376

原创 OpenMP(三)#pragma omp critical

由于函数的前三步不存在多线程data race问题,每个线程都需要独立创造空间存放数据和指针,所以不需要将其纳入cirtical region。但这种方法是低效的,因为在代码执行过程中,只有一个线程可以抵达critical region,这本质上和按顺序执行没有区别。如果把*head指针或*tail变成private的,是不可行的,因为这两个指针是整个链表共享的,不是每个线程私有的。线程A再把值赋给head,覆盖掉了线程B的操作,最终导致2这个值丢失。改法2比改法1效率有所提升,但也称不上高效。

2024-03-03 16:13:53 553

原创 OpenMP(二)并行运算中的数据依赖问题

比如,线程A计算得到temp = 1以后,线程B计算得出temp = 2, 覆盖了A的结果,会导致线程A下的a[i]结果错误。这是一段简单的 数组a的元素 =(数组b的元素+数组c的元素)/ 2 的代码。在并行执行的情况下,可能线程A先执行,更改了数组的元素,导致线程B开始执行以后访问的数组已经是被A更改过的结果了。线程B判断set[1] > set[2],认为应该交换,并率先进行,数组变成 [3,1,2]A在B的基础上进行更改,交换set[0] 和set[1],数组变成 [1,3,2]

2024-03-02 17:17:21 629 1

原创 OpenMP(一) #pragma omp parallel for

因为每个线程都会执行一次内循环,如果线程A首先执行了内循环,改变了变量 i 的值(假如最终值2),那么线程B在开始执行内循环时,i的初始值为为2,它就会直接跳过几个像素块,造成问题。那么就是并行执行内循环,每个线程执行setPixelColour (i, j);这样执行的效率可能还不如直接按顺序执行。因为不断地创建和销毁线程需要额外的开销。对于嵌套for循环,#pragma omp parallel for放在内层和外层有什么区别呢?那么把#pragma omp parallel for放在外层循环呢?

2024-03-02 16:24:06 375

原创 部署Llama2的方法(Linux)

Llama2,一款开源大语言模型。Github仓库地址:中文地址:GitHub - FlagAlpha/Llama2-Chinese: Llama中文社区,最好的中文Llama大模型,完全开源可商用Llama中文社区,最好的中文Llama大模型,完全开源可商用. Contribute to FlagAlpha/Llama2-Chinese development by creating an account on GitHub.接下来将分享在Linux系统和Windows系统中部署这款模型的方法。

2023-08-10 16:34:42 2782 1

原创 Vue 组件间数据传输 - 消息的订阅与发布

1. 在这里我们使用pubsub.js包2. 在要进行消息发布与订阅的组件中导入包3. 消息发布方 Student.vue4. 消息订阅方 School.vue

2022-07-02 17:01:09 287 1

原创 Flask03 wtforms表单验证

1. 安装依赖包2. app.py3.forms.py4.templates/login.html

2022-06-27 14:02:26 227

原创 Flask02 cookie和session

1. 写代码的时候遇到 url正确但not found的问题解决方法: 更改端口号即可2.app.py

2022-06-27 12:58:52 213

原创 Flask01 使用SQLArchemy,Navicat连接MySql进行相关操作

0. 下载相关依赖包,Navicat,连接Navicat和MySql (这些不赘述了,网上都有教程)一 、 创建数据表1. app.py2. config.py创建成功后表的内容如下:二、增删改查数据1. app.py(进行一些更改,如:表创建完以后就不需要再创建了,对代码进行一些拆分和重构). config.py 配置数据库连接(未改动)3. models.py 存放表模型(比如一对一,一对多模型)4. exts.py 部分代码放入extension以免造成类似死锁的问题..

2022-06-27 11:27:13 534

原创 Python 使用MQTT协议将硬件端数据传输至微信小程序并呈现

最近在做一个系统。大体需求是用运动手环获取用户的心率,体温等数据,然后传输到微信小程序页面上进行呈现。个人负责系统的软件端编写,因为第一次接触MQTT协议,所以来做个简单的记录。1. MQTT客户端安装这里参考了1-4 MQTT服务端连接操作 – 太极创客的教程,我选择了款免费的MQTT客户端软件–MQTTfx。MQTTfx的官网地址是:http://mqttfx.org。安装过程不再赘述。点开mqttfx.exe,进入MQTTfx界面。点击设置按钮。Profile Name随便取。

2022-06-27 11:08:07 1481 1

原创 JavaScript 刷题技巧

Python转JS,记录一些刷Leetcode题常用套路和两种语言的不同用法1. array.push(val)数组尾部增加元素,返回新数组长度2. array.pop()数组尾部删除元素,返回被删除元素3.array.unshift(val)数组头部增加元素,返回新数组长度4.array.shift()数组头部删除元素,返回被删除元素5.Infinity无穷大,用法:如 let nums = [Infinity] 用于比大小6.array.indexOf(val)找到返回下标,找不到返回-17.直接

2022-06-27 10:57:33 708

原创 Win10 安装wsl并将文件位置从C盘迁移至D盘

1. 进入Microsoft Store,搜索Ubuntu。选择你想要的版本,点击获取进行安装。2. 如果途中出现了报错 WslRegisterDistribution failed with error: 0x8007019e,这个问题是因为 windows 还没有启用 windows 子系统功能“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭Windows功能”,然后重启系统。3. 安装完成后,创建用户名和密码。(注意,如果报错 adduser: Please ent

2022-05-05 17:07:18 19352 9

原创 Ubuntu 安装Cmake

1.安装Cmake1. Cmake与makefile:Cmake好处是 1.可以自动化生成makefile,不需要手动编写。2.跨平台。可生成 native 编译配置文件,在 Linux/Unix 平台,生成 makefile,在 苹果平台,可以生成 xcode,在 Windows 平台,可以生成 MSVC 的工程文件。2. ubuntu 安装cmake:sudo snap install cmake如果跳出问题,让你用classic:那就sudo snap instal

2022-04-16 12:48:03 2746 1

原创 2022前端笔试面试题

1.CSS盒子模型的构成是__,__,__,__.答:margin border padding content2.二叉树的中序遍历顺序是badce,后续遍历顺序是bdeca,问前序遍历的顺序。答:abcde知识点:二叉树前序遍历顺序:当前->左节点->右节点;中序遍历顺序:左节点->当前->右节点;后序遍历顺序:左节点->右节点->当前;3.flex布局的父级元素中有哪些常用属性。答:flex-direction: 设置主轴的

2022-04-07 15:51:24 8265 5

原创 解决方法:安装ubuntu时屏幕过小无法点击安装按钮

最近在vmware上安装ubuntu,结果一打开屏幕太小,无法点击到下一步的安装按钮。解决办法:1.同时按住windows+左键拖动窗口。(部分电脑是alt+F7)2.或者按tab键一步一步往下选择,但可能因为看不见选项会浪费很多时间。成功安装后,安装vmware tools改变屏幕分辨率,让屏幕恢复正常大小。教程网上很多,就不说啦。...

2022-03-23 10:38:46 6423 7

原创 Java 初学者常犯错误

1.字符串常量不能跨行。# 错误代码System.out.println("j" + "andk is:");# 正确代码System.out.println("j" + "and" + "k is:");2.在赋值给变量前,一定要声明变量。 在方法中使用声明的变量前,一定要给变量赋值。3.常量一定要在同一条语句中声明和赋值。4.取余操作符%只有在被除数为负数时,余数才为负数。-7 % 3 = -17 % -3 = 15.增强操作符中不可以有空格。(增强操作符为+

2022-03-13 20:42:01 407

原创 Java 两个看似相等的浮点数结果不等

# 代码double x = 1.0-0.1-0.1-0.1-0.1-0.1System.out.println(x == 0.5);#输出False这里 x 不是精确等于5,而是0.5000000000000001。解决办法:通过测试两个数的差是否小于某个非常小的的值EPSILON来判断。当比较的两个数为double类型。通常设置EPSILON = 10^(-14)来比较。当比较的两个数为float类型。通常设置EPSILON = 10^(-7)来比较。# 代码fina.

2022-03-13 19:41:35 595

原创 Python Counter()一步统计出现次数最多的元素

# 代码from collections import Counternums = [1,2,2,2]counts = Counter(nums)print(counts)#输出Counter({2: 3, 1: 1})# 代码print(max(counts.keys(), key=counts.get))#输出2# 代码print(counts.most_common(1))#输出[(2, 3)]解释:1.most_common(n)这个方法返回.

2022-03-09 09:32:30 6131 1

原创 Java 三种输出 print()println()printf()

1. System.out.print(a);# 代码System.out.print(a);System.out.print(a);# 输出aa特点:不换行打印,可以输出任何类型的expression.2.System.out.println()#代码 System.out.println();System.out.print(a);# 输出(一个空行)a#代码 System.out.println(a);System.out.println(a);.

2022-03-08 21:48:30 6481

原创 Python 报错:‘str‘ object does not support item assignment 将string转换为list可解决

# string 转 list 代码s = "23"s = list(s)print(s)# 输出['2', '3']由于python 中 string不支持使用访问index的方式改变值,所以可以先将其转换为list,在进行值的修改# 错误代码s = "23"s[1] = "a"print(s[1])#报错信息'str' object does not support item assignment# 转list的解决方法s = "23"s = list(s.

2022-03-07 10:29:49 2235 2

原创 Python 使用join()将list内的字符连接为string

# 代码s = ['d', 'c', '-', 'b', 'a']s = ''.join(str(e) for e in s) print(s)#输出dc-ba#添加连接符s = ['d', 'c', 'b', 'a']s = '-'.join(str(e) for e in s) print(s)#输出d-c-b-ajoin()方法用于返回一个被子字符串连接的字符串......

2022-03-07 10:19:51 1475

原创 python 使用sort()方法报错,返回None

# 错误代码(1)intervals = [[1,3],[2,6],[8,10],[0,18]]intervals = intervals.sort()print(intervals)#返回结果:None# 错误代码(1)intervals = [[1,3],[2,6],[8,10],[0,18]]print(intervals.sort())#返回结果:None#正确用法intervals = [[1,3],[2,6],[8,10],[0,18]]interv.

2022-03-07 10:08:03 3540

原创 Python list形式输出字母“A“-“Z“

# 代码部分[chr(i) for i in range(65,91)]# 返回结果['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']ASCII码对照表输出“a”-"z"同理,参考ASCII码表即可。

2022-03-07 09:55:30 2293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除