openmp
并行计算框架,主要以cpu为主,gpu计算可以使用opencl
openmp可以提高代码的执行效率,对for循环的效率提升是10倍以上,对图像算法和深度学习效率的提升帮助很大
语法
#pragma omp target {} 指定设备,可以在gpu上运行
#pragma omp parallel for{} 加速for循环,int i的定义可以放在for中共享,如果int i是私有的,程序执行次数会增多size*cpu数量
#pragma omp parallel {} 并行语句,默认cpu的核数个线程
#pragma omp critical {} 互斥体,同时只有一个线程进入
#pragma omp barrier{} 所有线程到达后执行后面语句#pragma omp master{} 只有主线程才会执行的代码
#pragma omp single{} 只会有一个线程执行的代码
#pragma omp sections{} 里面包含多个section标记,每个代码块被线程组内线程执行一次
#pragma omp atomic {} 单一算法的原子性
#pragma omp flush{} 寄存器变量同步
#pragma omp ordered