简介
并行计算是现代计算机的基础。每个公司每个产品应用,如果能冲锋利用cpu的多核性能,将会给人以不同的感受
主要使用openmp 和 opencl这两个库
note
并行计算
gcc 自动化并行计算编译命令
gcc -03 -floop-parallelize-all -ftree-parallelize-loops=K -fdump-tree-parloops-details src.c
K推荐使用计算机的核心数量
intel compiler
icc -c -parallel -par-report file.cc
三种并行方式
- 数据并行(Data parallelization)
- 例如音频流,如果一整段音频处理不快的话,分段处理
- 结构并行(Instruction parallelization)
- 常规操作,A去巴拉巴拉,B去巴拉巴拉
- 信息流并行(Parallelization of information flows)
- 类似于结构并行,不是特别清楚
C 多线程计时函数
ctime_r and localtime_r
对于openmp的支持
参考链接 https://www.cnblogs.com/lfri/p/10111315.html
编译命令 g++ test.cpp -o test -fopenmp
Compiler name | Compiler Key OpenMp |
---|---|
Gcc | -fopenmp |
icc(Intel C/C++ compiler) | -openmp |
Sun C/C++ compiler | -xopenmp |
Visual Studio C/C++ compiler | /openmp |
PGI | -mp |
头文件 #include <omp.h>
openCL
实现了简单的CPU & GPU的并行处理
doc
-
OpenCL – official site:http://www.khronos.org/opencl/
-
Intel OpenCL: http://software.intel.com/en-us/articles/intel-opencl-sdk/
-
NVIDIA OpenCL: https://developer.nvidia.com/cuda-zone
-
AMD OpenCL: http://www.amd.com/us/products/technologies/stream-technology/opencl/Pages/opencl.aspx