open mp笔记

在这里插入图片描述

Open mp在cpu上并行计算,
统一内存访问(OPEN MP pthreads),同一块内存共享多个CPU
非统一内存访问(MPI),每个CPU都有自己对应的内存,通过blus interconnect链接起来,cpu不能直接访问他们的内存,需要进行通信才可以访问到他们所属的memory,
OPEN MP pthreads他们都是针对共享内存编程的API
在这里插入图片描述

哪个线程要指定
Open mp,只加简单的预定义,编译器自动编译并行,

Open mp开始运行时候,有一个master thread 主线程(串行执行的)执行—并行(分开了fork),同步,合并,
在这里插入图片描述
在这里插入图片描述
有一些编译器不支持open mp,加入pragma让编译器暂时不用管这个语言规范
在这里插入图片描述在这里插入图片描述

获取将要派生的线程的数量,在main函数里,strtol可以获取在程序执行时候获得的一些参数

pragma omp parallel num threads(thread_count)

Hello();

并行执行hello();
Pragma用了这个语句表示这个可能在c中是不被接受的
omp parallel,告诉他我们要使用omp的并行化
num threads(thread_count) 我们要并行的数量有多少个

int my_rank = omp_get_thread num();当前我们创建的线程是排第几个,比如一共有4个线程创建的,那么这个可能的取值就是0,1,2,3,也是线程id
int thread count = omp_get_num threads();当前我们创建的线程总数,按着上边的例子就是4
在这里插入图片描述
在这里插入图片描述

openmp for

在这里插入图片描述
在这里插入图片描述

for(int i=0;i<1000;i++)中,线程也是比较均匀分配的,可能,线程0:0-249;线程1:250-499;线程2:500-749;线程3:750-1000
均等分配,同时并行执行的
在这里插入图片描述

比如要用,fibo[i-1],fibo[i-2],他们如果还没计算出来,就不会得到正确的输出,数据依赖会导致结果错误。

OpenMP编译器不检查被parallel for指令并行化的循环所包含的迭代间的依赖关系
个或者更多个迭代结果依赖于其他迭代的循环,一般不能被正确的并行化

openmp private variables

在这里插入图片描述

变量在并行块外定义,也可以在并行中调用
在这里插入图片描述
在这里插入图片描述

对于线程0,可能tmp的值是2,对于线程1,tmp的值为3,1比0慢一点,那么当线程0执行到c[i]的时候此时的结果是3*3,不对应于0线程对应的2的tmp值
在这里插入图片描述
在这里插入图片描述

这样定义了以后,每个线程都有tmp,

关于private的信息

每一个线程都是拥有独自的该变量的副本
如果i被定义为私有变量,那么在for循环里面,所有的线程都不能访问其他(尽管i是共享变量)
所有的线程都不会使用到先前的定义
所有线程都不能给共享的j赋值,(不会改变之前全局定义的j的值)
在循环的入口以及出口,都不会进行定义(私有的j只会在线程内部被定义使用)
在这里插入图片描述

Firstprivate

Firstprivate 选项告诉编译器私有变量在第一个循环会继承共享变量的值这个私有的变量只会在每个线程的第一个循环继承,而不会在每个循环中继承和
其使用方法于private几乎一致
#pragma omp parallel for lastprivate(x)
在这里插入图片描述
在这里插入图片描述

本来这个指针a指向0x1,后边改变一下指向0x2,对原来的值是没有影响的,但是要是修改了0x1指向的空间的值,其他线程也是可以看到这个修改的
在这里插入图片描述

lastprivate

用私有lastprivate 选项告诉编译器私有变量会在最后-个循环出去的时候变量的值替换掉我们共享变量的值
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

parallel语句

在这里插入图片描述

当负责最后一个iteration的线程离开循环的时候它会将该私有变量的值赋值给当前共享变量的值。

只有速度的差异没有代码执行量的差异
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

section选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Reduction 归并

在这里插入图片描述

会把每一个线程的j加起来
在这里插入图片描述

j=10+10+20=40
在这里插入图片描述

Barrier

他是用于实现同步的一种手段他会在代码的某个点,令线程停下直到所有的线程都到达该地方
使用的语法如下
#pragmaomp barrier
阻塞在这个语句之前,等所有线程都到了再继续往下执行
许多情况下,它已经能够自动的插入到工作区结尾
比如说在for,single
但是它能够被nowait禁用
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

el-table 列分页

<template><div><el-table:data"tableData":key"tampTime"style"width: 100%"><el-table-columnprop"name"label"姓名"width"180"></el-table-column><el-table-columnprop&quo…

Contec SolarView Compact < 6.00 远程命令执行漏洞 (CVE-2023-23333)

Contec SolarView Compact < 6.00 远程命令执行漏洞 &#xff08;CVE-2023-23333&#xff09; 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: body"SolarView Compact" 漏洞复现1. 构造poc2. 执行命令id命令pwd命令 免责声明 仅用于技术交流,目的是向相关安全人…

在 Python 中创建奇数列表

我们将在本文中介绍在 Python 中创建奇数列表的不同方法。 Python 中的奇数 定义奇数有两种方法&#xff0c;第一种是整数不能被 2 整除时的情况。另一种是整数除以 2 时余数为 1 的情况。 例如&#xff0c;1、5、9、11、45等都是奇数。 从列表中获取奇数的方法有很多&#x…

【【嵌入式开发 Linux 常用命令系列 10 -- Linux 修改终端下 ls 各种类型文件的显示颜色】

文章目录 Linux 修改终端下各种类型文件的显示颜色LS_COLORS 详细介绍 Linux 修改终端下各种类型文件的显示颜色 在 ~/.bashrc 文件最下面添加如下内容&#xff0c;就可以配置目录、文件、sh类型文件的颜色了。 export LS_COLORSdi1:fi0:*.sh33:$LS_COLORS这句话的意思就是在…

【黑马程序员】SSM框架——SSM整合

文章目录 前言一、SSM 整合1. SSM 整合思路1.1 Spring 整合 MyBatis配置模型数据层标准开发业务层标准开发测试接口事务处理 1.2 Spring 整合 SpringMVCweb 配置类SpringMVC 配置类基于 Restful 的 Controller 开发 2. SSM 整合具体实现2.1 创建工程2.2 SSM 整合SpringMyBatisS…

初识Vue 解决vue在启动时生成的提示

让我为大家简单介绍一下吧&#xff01; Vue是一套用于构建用户界面的渐进式javaScript框架 当我们引入vue.js后 <script src"../js/vue.js"></script>我们发现&#xff0c;当我们打开网页时&#xff0c;控制台会出现以下内容 那我们该怎么解决呢&…

tolua中table.remove怎么删除表中符合条件的数据

tolua中table.remove怎么删除表中符合条件的数据 介绍问题&#xff08;错误方式删除数据&#xff09;正确删除方案从后向前删除递归方式删除插入新表方式 拓展一下总结 介绍 在lua中删除表中符合条件的数据其实很简单&#xff0c;但是有一个顺序问题&#xff0c;因为lua的表中…

机器视觉行业最大的污点是什么?99%机器视觉公司存在测量项目数据造假,很遗憾,本人不没有恪守技术的本分

机器视觉行业最大的污点是什么&#xff1f;99%机器视觉公司存在测量项目数据造假&#xff0c;很遗憾&#xff0c;本人没有恪守技术的本分。 1%是没做过机器视觉测量项目&#xff0c;我们应该具体分析和具体判断&#xff0c;更应该提高自己的认知能力和技术能力。 那我们​在现场…

Tomcat下载地址(详细)

Apache Tomcat - Apache Tomcat 8 Software Downloadshttps://tomcat.apache.org/download-80.cgi2.找到Archives 3.选择下载的把版本 4.选择具体下载那个版本 5. 6.一般选择tar.gz结尾的压缩包

蓝桥杯每日一题2023.10.31

题目描述 全球变暖 - 蓝桥云课 (lanqiao.cn) 题目分析 果然有关连通块类的问题使用dfs都较为好写~~ 我们可以通过判断连通块的代码来加上部分条件算出被完全淹没的岛屿个数 在岛屿中如果有为"#"的a[i][j]上下左右全部是"#"则说明此岛屿一定不会被完全…

英伟达禁令之后,中国AI计算何去何从?

10月17日&#xff0c;美国加强了面向中国市场的AI芯片禁令。其中明确将性能、密度作为出口管制标准&#xff0c;将单芯片超过300teraflops算力&#xff0c;以及性能密度超过每平方毫米370gigaflops的芯片都纳入了禁止出口行列。 虽然在这一禁令下&#xff0c;AMD、英特尔等公司…

成人编程先学什么?成人编程一般要学几年

成人编程先学什么&#xff1f;成人编程一般要学几年 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件&#xff0c;向如图这个实例就是用这个…

取消elementUI中table的选中状态和勾选状态赋值

一、取消所有选中 1、表格上绑定ref 2、清空用户选中数据 this.$refs.loopRef.clearSelection()二、勾选状态赋值 获取数据&#xff0c;flag为true则是选中状态&#xff0c;并将前面勾选框设为选中状态 this.listData.forEach(item> {if(row.flag1){this.$refs.loopRef.to…

数据分析实战 - 2 订单销售数据分析(pandas 进阶)

题目来源&#xff1a;和鲸社区的题目推荐&#xff1a; 刷题源链接&#xff08;用于直接fork运行 https://www.heywhale.com/mw/project/6527b5560259478972ea87ed 刷题准备 请依次运行这部分的代码&#xff08;下方4个代码块&#xff09;&#xff0c;完成刷题前的数据准备 …

【Kubernetes】初识k8s--扫盲阶段

文章目录 1、k8s概述2、为什么要有k8s2.1 回顾以往的应用部署方式2.2 容器具有的优势 3、k8s能带来什么 1、k8s概述 kubernetes是一个可移植、可扩展的开源平台&#xff0c;用于管理 容器化 的工作负载和服务&#xff0c;可促进申明式配置和自动化。kubernetes拥有一个庞大且快…

pb:导入EXCEL,提示“不能连接EXCEL”

pb:导入EXCEL,提示“不能连接EXCEL” ------------------------------------------------------------------------------------------------------------------------------- 1.pb连上EXCEL代码: //从EXCEL读取文件 STRING LS_PATH,LS_FILE,ls_file_tmp oleobject ole_1…

Day 5 登录页及路由 (三) 基于axios的API调用

系列文章目录 本系列记录一下通过Abp搭建后端&#xff0c;VueElement UI Plus搭建前端&#xff0c;实现一个小型项目的过程。 Day 1 Vue 页面框架Day 2 Abp框架下&#xff0c;MySQL数据迁移时&#xff0c;添加表和字段注释Day 3 登录页以及路由 (一&#xff09;Day 4 登录页以…

Redis学习系统(持续更新中)

RedisExample 课程介绍 目标是提供一个高效、可靠的学习和实践Redis的环境。我们将通过搭建Redis集群、实现缓存数据的持久化存储、制定缓存数据的淘汰策略以及同步缓存数据等步骤来深入了解和学习Redis的特性和功能。通过这个项目&#xff0c;你可以掌握Redis的核心概念和技…

网络安全演练(一句话木马)

在享受互联网带来的便利的同时&#xff0c;也充满了各种网络安全风险&#xff0c;本文通过搭建实验环境&#xff0c;演示一句话木马获取主机权限。 演示环境 服务端&#xff1a;安装LAMP环境&#xff0c;部署web网站&#xff0c;上传一句话木马文件 客户端&#xff1a;安装A…

【Hydro】不同潜在蒸散发计算方法说明

目录 一、基本概念说明蒸发 E E E、散发 T T T、蒸散发 E T ET ET潜在蒸散发 E T p ET_p ETp​、参考作物蒸散发 E T 0 ET_0 ET0​、实际蒸散发 E T a ET_a ETa​及作物实际蒸散发 E T c ET_c ETc​ 二、部分潜在蒸散发估算方法表三、SWAT模型中的潜在蒸散发计算Penman-Monteit…
最新文章