编译制导函数

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相关推荐

  1. offload error: cannot find offload entry解决办法

    1.问题描述 linux环境下,使用MIC架构的Xeon Phi(至强融核)协处理器进行进行host+mic编程时,源程序运行的毫无问题,但将其通过ar命令生成静态连接库供其他应用程序使用时,就会出现 ...

  2. 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 ...

  3. OpenMP知识点汇总

    1. OpenMP(Open Multi-Processing)官网:http://openmp.org/wp/ 2. OpenMP最新版本4.0,2013年7月发布.Visual Studio 20 ...

  4. 《OpenMP编译原理及实现技术》摘录

    内容摘自<OpenMP编译原理及实现技术>第2章 代码测试环境:Windows7 64bit, VS2010, 4核机. 可以说OpenMP制导指令将C语言扩展为一个并行语言,但OpenM ...

  5. openmp官方源码_MNN推理过程源码分析笔记(一)主流程

    在正式开始推理代码分析之前, 回顾下 MNN整体结构 推理分为三个大部分 Engine Backends Runtime Optimize 那么问题来了,从哪里开始,怎么入手呢? 我的心得是源码分析不 ...

  6. OpenMP在ARM-Linux以及NDK中的编译和使用

    OpenMP在ARM-Linux以及NDK中的编译和使用 参考:http://blog.sina.com.cn/s/blog_602f87700102w1ki.html 以前对OpenCV在ARM-L ...

  7. eclipse openmp mpi并行编程例子

    openmp 首先,下载这个版本的Eclipse:http://www.eclipse.org/downloads/packages/eclipse-parallel-application-deve ...

  8. 华为平板安装python_极致安卓—Termux/Aid Learning安装宇宙最强VS Code

    Termux默认是不带图形界面的,用来编程只能靠ssh挂到电脑端,然后用vim等传统手段. 老派的程序员当然都推荐vim啦,巴拉巴拉一大堆好处,总想拉我们入(jin)伙(keng). 作为新时代年轻人 ...

  9. openmp与openmpi区别

    .openmp比较简单,修改现有的大段代码也容易.基本上openmp只要在已有程序基础上根据需要加并行语句即可.而mpi有时甚至需要从基本设计思路上重写整个程序,调试也困难得多,涉及到局域网通信这一不 ...

  10. OpenMP、MPICH与OpenMPI

    原文网址 openmp比较简单,修改现有的大段代码也容易.基本上openmp只要在已有程序基础上根据需要加并行语句即可.而mpi有时甚至需要从基本设计思路上重写整个程序,调试也困难得多,涉及到局域网通 ...

最新文章

  1. Java常用正则表达式
  2. 三星会使用华为的鸿蒙系统,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  3. php语言使用statsd统计指标模板
  4. [android] 百度地图开发 (二).定位城市位置和城市POI搜索
  5. 搭建K8s集群(二进制方式)-搭建步骤介绍
  6. Unity3D_(游戏)2D坦克大战 像素版
  7. QTP工作原理的学习心得
  8. java:详解native方法
  9. 比较好用的门厂免费录单软件
  10. Struts2通配符错误问题
  11. bigmp4.com AI 视频无损放大高清补帧工具
  12. android解决ListView图片闪动问题
  13. 计算机毕设Python+Vue兴发农家乐服务管理系统(程序+LW+部署)
  14. apahce2+tomcat6整合 2010-06-28
  15. 解决项目无法读取src/main/java目录下面的配置文件问题
  16. visual stdio 2015社区版、专业版的下载
  17. 【笔经攒人品】上海农商银行
  18. 差模干扰/电压/电流/电感/电容与共模干扰/电压/电流/电感/电容的介绍
  19. 关于惯性传感器(陀螺仪、加速度计)的选取
  20. 打开Tensorboard可视化界面及解决对应网址打不开的方法

热门文章

  1. 安装python报错setup was successful怎么解决
  2. Linux 下载安装 rar 并解压rar压缩包(Linux下如何解压.zip和.rar文件)
  3. 游戏UI-图标ICON
  4. 大连鸿蒙刺青怎么样,宋雨琦有多叛逆?“纹身”的位置曝光后,网友:心脏顶不住!...
  5. “故事”的开始--基础数据类型(八大基本数据类型)
  6. c语言求sin泰勒级数展开,求正弦函数泰勒展开的C语言算法
  7. 案例:基于vueRouter的后台管理功能
  8. 2019年【我的恋爱观】
  9. 贪吃蛇宝宝微信小游戏cocoscreator
  10. MT5,MT5软件,MT5源码,MT5主标搭建,MT5主标申请,MT5海外版,MT4海外版