一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

随笔分类 -  OpenMP

C++ OpenMP、TBB库的简单使用
摘要:1.OpenMP的简单使用 OpenMP可以用来并行计算for循环,提高程序运行速度。 首先要打开OpenMP支持:“配置属性”——“C/C++”——“语言”——“1.OpenMP支持”后选择“是”。 1 omp_get_num_procs() //获取系统中处理器的个数 2 omp_set_num 阅读全文
posted @ 2023-06-14 14:25 一杯清酒邀明月 阅读(1247) 评论(0) 推荐(0) 编辑
OpenMP与MPI混合做方阵向量乘法
摘要:按行分配 1 #include<stdio.h> 2 #include<mpi.h> 3 #include<stdlib.h> 4 #include<omp.h> 5 6 #define N 100 7 8 //time_t start,end;//开始和结束时间 9 double start,en 阅读全文
posted @ 2023-06-07 19:05 一杯清酒邀明月 阅读(101) 评论(0) 推荐(0) 编辑
OpenMP 传统形式的方阵向量并行乘法
摘要:按行分配 思路和MPI基本类似,不过OpenMP是共享内存的,不必做分发和聚集,申请的矩阵空间就不必是完全连续的。 1 #include<stdio.h> 2 #include<omp.h> 3 #include<stdlib.h> 4 5 #define N 400 //规模(方针的阶数) 6 i 阅读全文
posted @ 2023-06-07 11:39 一杯清酒邀明月 阅读(64) 评论(0) 推荐(0) 编辑
OpenMP 归约和reduction子句
摘要:简述归约 归约操作在MPI里也学过,不过那时候还不太熟悉这种操作。当时只知道MPI_Reduce可以把全局求和和集合通信封装起来,非常方便。实际上将相同的二元归约操作符重复地应用到一个序列上得到结果的计算过程都可以称为归约。 python里那个难理解的reduce()函数也就是归约: 1 >>> f 阅读全文
posted @ 2023-06-07 11:37 一杯清酒邀明月 阅读(231) 评论(0) 推荐(0) 编辑
OpenMP 基本使用和critical指令
摘要:MPI是可以针对分布式内存,在进程级别实现并行的API;OpenMP则是针对共享内存,在线程级别实现并行的API。 基本使用 不同于MPI的init和finalize,OpenMP用携带了parallel指令的预处理指令指示接下来的一个代码块被多个线程执行。 OpenMP预处理指令-(携带)->Op 阅读全文
posted @ 2023-06-07 11:33 一杯清酒邀明月 阅读(397) 评论(0) 推荐(0) 编辑
OpenMP 循环并行化和parallel for指令
摘要:从parallel到parallel for parallel for指令和parallel指令是不同的。 parallel parallel指令只是指明后面的代码块被并行执行,对共享下标的访问次序无法控制和预知: 1 #include<stdio.h> 2 #include<stdlib.h> 3 阅读全文
posted @ 2023-06-07 11:27 一杯清酒邀明月 阅读(321) 评论(0) 推荐(0) 编辑
VS和Qt配置OpenMP
摘要:前言这里记录在VS和QtCreater的环境里如何打开OpenMP方法。 一、VS环境下在VS环境下,进入项目属性 =》 C/C++ =》 语言 =》 OpenMP支持 =》 下拉菜单选择是 二、QtCreater环境下在“XXX.pro”工程文件中添加如下代码 1 QMAKE_CXXFLAGS+= 阅读全文
posted @ 2023-06-07 11:20 一杯清酒邀明月 阅读(454) 评论(0) 推荐(0) 编辑
OpenMP入门教程
摘要:什么是OpenMP Open Multi-Processing的缩写,是一个应用程序接口(API),可用于显式指导多线程、共享内存的并行性。 在项目程序已经完成好的情况下不需要大幅度的修改源代码,只需要加上专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互 阅读全文
posted @ 2020-09-16 15:53 一杯清酒邀明月 阅读(704) 评论(0) 推荐(0) 编辑