并行for #pragma omp parallel for
#pragma omp parallel for 并行for
添加
#pragma omp parallel for
可以让for并行计算,提高效率。
首先要项目开启对openmp的支持
属性-》》c/c+±》》语言-》》OpenMP支持 打开就可以了,用法如下:
#include <omp.h>
#include <cstdio>
#include <cstdlib>//用到rand()函数
#include <ctime> //用到clock()函数const int maxn = 1e8;int main()
{int begintime, endtime;printf("It is use parallel compute:\n");begintime = clock(); //计时开始
#pragma omp parallel forfor (int i = 0; i < maxn; ++i);endtime = clock(); //计时结束printf("\n\nRunning Time:%dms\n", endtime - begintime);printf("\n\n\nIt is not use parallel compute:\n");begintime = clock(); //计时开始for (int i = 0; i < maxn; ++i);endtime = clock(); //计时结束printf("\n\nRunning Time:%dms\n", endtime - begintime);return 0;
}
可以指定并行的线程数。
#include <omp.h>
#include <cstdio>
#include <cstdlib>//用到rand()函数
#include <ctime> //用到clock()函数const int maxn = 1e8;int main()
{int begintime, endtime;int nthreads;printf("It is use parallel compute:\n\n\n");
#pragma omp parallelnthreads = omp_get_num_threads();printf("Now, it is %d threads\n", nthreads);begintime = clock(); //计时开始
#pragma omp parallel forfor (int i = 0; i < maxn; ++i);endtime = clock(); //计时结束printf("\nRunning Time:%dms\n", endtime - begintime);#pragma omp parallelnthreads = 12;omp_set_num_threads(nthreads);printf("\nNow, it is %d threads\n", nthreads);begintime = clock(); //计时开始
#pragma omp parallel forfor (int i = 0; i < maxn; ++i);endtime = clock(); //计时结束printf("\nRunning Time:%dms\n", endtime - begintime);printf("\nIt is not use parallel compute:\n");begintime = clock(); //计时开始for (int i = 0; i < maxn; ++i);endtime = clock(); //计时结束printf("\nRunning Time:%dms\n", endtime - begintime);return 0;
}
但并行计算要确保处理的数据没有先后顺序性
参考:https://www.freesion.com/article/64571448599/
并行for #pragma omp parallel for相关推荐
- #pragma omp parallel for
#pragma omp parallel for是OpenMP中的一个指令,表示接下来的for循环将被多线程执行,另外每次循环之间不能有关系.示例如下: int main(int argc, char ...
- #pragma omp paralle与#pragma omp parallel for
今天写OpenMP的程序,遇到很让人恼火的问题,三个#pragma omp paralle没有问题, 再有一个#pragma omp paralle,计算结果就错误了. 修改调试了一个晚上,快要崩溃了 ...
- OpenMP #pragma omp parallel for并行化小探究
今天用了一下openmp,本人表示非常喜欢openmp的傻瓜化模式,导入一个头文件 直接parallel for #include <iostream> #include <omp. ...
- pragma omp parallel for
#pragma omp parallel for #pragma omp parallel for是OpenMP中的一个指令,表示接下来的for循环将被多线程执行,另外每次循环之间不能有关系.示例如下 ...
- STL的并行遍历:for_each(依赖TBB)和omp parallel
文章目录 OMP parallel OpenMP安装 OpenMP示例 1) OMP Hello World 2) OMP for 并行 3) OMP 官方示例 4) map使用OMP遍历 TBB的安 ...
- vs上C/C++并行计算#pragma omp
在一个vs内的工程进行并行计算,首先先修改属性内的C/C++ - 语言-OpenMP:是. 头文件不一定需要#include <omp.h>.举例常见的几个用法 section: #pra ...
- OpenMP中的Reduction操作 #pragma omp xxx reduction()
参考 OpenMP: For & Reduction Reduction Reduction操作类似于我们将很多东西组合组合在一起,比如MapReduce中先Map操作将数据分散,再通过Red ...
- C#并行编程中的Parallel.Invoke
一.基础知识 并行编程:并行编程是指软件开发的代码,它能在同一时间执行多个计算任务,提高执行效率和性能一种编程方式,属于多线程编程范畴.所以我们在设计过程中一般会将很多任务划分成若干个互相独立子任务, ...
- 【读书笔记】.Net并行编程高级教程--Parallel
一直觉得自己对并发了解不够深入,特别是看了<代码整洁之道>觉得自己有必要好好学学并发编程,因为性能也是衡量代码整洁的一大标准.而且在<失控>这本书中也多次提到并发,不管是计算机 ...
最新文章
- php 图片 投稿 源码,php图片上传,审核,显示源码(转载)
- php 字体问题,php – Scraping上的字体或Unicode问题[复制]
- python玩装虎牙直播自动登录发弹幕
- 九度oj 题目1374:所有员工年龄排序
- mysql两种引擎的适用场景_MySQL两种引擎的区别和应用场景
- python if语句能否判断中文_Python“if”语句被忽略
- 基于 Bootstrap 的响应式后台管理面板
- [Web 前端] SuperAgent中文使用文档
- iphone远程连接mysql_如何远程连接数据库 原来是这样的
- Rectangle Pro for Mac移动光标窗口捕捉工具
- 067、如何部署Calico网络 (2019-04-10 周三)
- 在Keil5中创建MM32工程
- python 拼音库_改造Python中文拼音扩展库pypinyin补充自定义声母全过程
- 黑盒测试中的因果图约束条件解释
- 打造一个无广告无弹窗快速的Windows办公环境(软件推荐)
- SpringBoot——关于banner
- Arduino 实现物理非自锁按键触发变为软件上自锁状态保持控制方法
- 设计模式六大原则(初步理解)
- 避震方法最新自救建议:不要躲在桌子下
- 如何测量锂电池的电量