OpenMP-CODE
编译制导函数
for
加大并行力度,尽量并行外层循环
在外层循环上用parallel,内层用for,并同时注意同步
#prapma omp parallel
{#pragma omp forfor(){// 循环体内不能使用break语句}
}#pragma omp parallel for
for 后可以用 nowait 取消结束的隐式同步
simd
#pragma omp parallel for simd reduction(+:ret)
for(int i=0; i<num; i++){ret += a[i]*a[i];
}
task
解决递归问题
eg.并行化处理Fibonacci数
taskwait 用于 task 构造之后,用于等待前面一个or多个task执行完成
#pragma omp task#pragma omp taskwait#pragma omp taskyield
sections / section
划分段,每段由一个线程执行
section后可以用 nowait 取消结束的隐式同步
#pragam omp parallel sections
{#pragma omp section{}#pragma omp section{}
}
single
#pragam omp single
{}
barrier
#pragma omp barrier
critical
临界区
#pragma omp critical
{}
atomic
原子操作
只作用到在 ±*/ &^| >> <<
#pragme omp atomic
常用子句
collapse
一般用于同时线程化两层循环(外层easy)
#pragam omp parallel for callapse(2)for( )for( )
reduction
归约
#pragma omp parallel for reduction(+:PI)
schedule
指定采用的负载均衡策略及每次分发数据大小
#pragma omp parallel for schedule(dynamic, 2)
if
确定是否并行
普通函数
总线程数
int omp_get_num_threads(void);
设置线程数
void omp_set_threads(int num);
上限线程
int omp_get_max_threads(void);
线程索引
int omp_get_thread_num(void);
是否并行
int omp_in_parallel();
锁函数
OpenMP(四)线程同步之互斥锁函数
环境变量
export OMP_PROC_BIND = true
OpenMP环境变量
OpenMP学习笔记整理(一)——环境变量+嵌套并行
OpenMP-CODE相关推荐
- offload error: cannot find offload entry解决办法
1.问题描述 linux环境下,使用MIC架构的Xeon Phi(至强融核)协处理器进行进行host+mic编程时,源程序运行的毫无问题,但将其通过ar命令生成静态连接库供其他应用程序使用时,就会出现 ...
- Announcing the program for the 2018 LLVM Developers’ Meeting Bay Area
Announcing the program for the 2018 LLVM Developers' Meeting Bay Area The LLVM Foundation is excited ...
- OpenMP知识点汇总
1. OpenMP(Open Multi-Processing)官网:http://openmp.org/wp/ 2. OpenMP最新版本4.0,2013年7月发布.Visual Studio 20 ...
- 《OpenMP编译原理及实现技术》摘录
内容摘自<OpenMP编译原理及实现技术>第2章 代码测试环境:Windows7 64bit, VS2010, 4核机. 可以说OpenMP制导指令将C语言扩展为一个并行语言,但OpenM ...
- openmp官方源码_MNN推理过程源码分析笔记(一)主流程
在正式开始推理代码分析之前, 回顾下 MNN整体结构 推理分为三个大部分 Engine Backends Runtime Optimize 那么问题来了,从哪里开始,怎么入手呢? 我的心得是源码分析不 ...
- OpenMP在ARM-Linux以及NDK中的编译和使用
OpenMP在ARM-Linux以及NDK中的编译和使用 参考:http://blog.sina.com.cn/s/blog_602f87700102w1ki.html 以前对OpenCV在ARM-L ...
- eclipse openmp mpi并行编程例子
openmp 首先,下载这个版本的Eclipse:http://www.eclipse.org/downloads/packages/eclipse-parallel-application-deve ...
- 华为平板安装python_极致安卓—Termux/Aid Learning安装宇宙最强VS Code
Termux默认是不带图形界面的,用来编程只能靠ssh挂到电脑端,然后用vim等传统手段. 老派的程序员当然都推荐vim啦,巴拉巴拉一大堆好处,总想拉我们入(jin)伙(keng). 作为新时代年轻人 ...
- openmp与openmpi区别
.openmp比较简单,修改现有的大段代码也容易.基本上openmp只要在已有程序基础上根据需要加并行语句即可.而mpi有时甚至需要从基本设计思路上重写整个程序,调试也困难得多,涉及到局域网通信这一不 ...
- OpenMP、MPICH与OpenMPI
原文网址 openmp比较简单,修改现有的大段代码也容易.基本上openmp只要在已有程序基础上根据需要加并行语句即可.而mpi有时甚至需要从基本设计思路上重写整个程序,调试也困难得多,涉及到局域网通 ...
最新文章
- Java常用正则表达式
- 三星会使用华为的鸿蒙系统,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可
!【手机吧】_百度贴吧...
- php语言使用statsd统计指标模板
- [android] 百度地图开发 (二).定位城市位置和城市POI搜索
- 搭建K8s集群(二进制方式)-搭建步骤介绍
- Unity3D_(游戏)2D坦克大战 像素版
- QTP工作原理的学习心得
- java:详解native方法
- 比较好用的门厂免费录单软件
- Struts2通配符错误问题
- bigmp4.com AI 视频无损放大高清补帧工具
- android解决ListView图片闪动问题
- 计算机毕设Python+Vue兴发农家乐服务管理系统(程序+LW+部署)
- apahce2+tomcat6整合 2010-06-28
- 解决项目无法读取src/main/java目录下面的配置文件问题
- visual stdio 2015社区版、专业版的下载
- 【笔经攒人品】上海农商银行
- 差模干扰/电压/电流/电感/电容与共模干扰/电压/电流/电感/电容的介绍
- 关于惯性传感器(陀螺仪、加速度计)的选取
- 打开Tensorboard可视化界面及解决对应网址打不开的方法
热门文章
- 安装python报错setup was successful怎么解决
- Linux 下载安装 rar 并解压rar压缩包(Linux下如何解压.zip和.rar文件)
- 游戏UI-图标ICON
- 大连鸿蒙刺青怎么样,宋雨琦有多叛逆?“纹身”的位置曝光后,网友:心脏顶不住!...
- “故事”的开始--基础数据类型(八大基本数据类型)
- c语言求sin泰勒级数展开,求正弦函数泰勒展开的C语言算法
- 案例:基于vueRouter的后台管理功能
- 2019年【我的恋爱观】
- 贪吃蛇宝宝微信小游戏cocoscreator
- MT5,MT5软件,MT5源码,MT5主标搭建,MT5主标申请,MT5海外版,MT4海外版