openmp使用教程

openmp

Posted by infinityyf on May 2, 2020

主要指令

parallel:用在一个代码段之前,表示这段代码将被多个线程并行执行
for:用于for循环之前,将循环分配到多个线程中并行执行,必须保证每次循环之间无相关性每个线程都会执行整个循环
parallel for:表示for循环的代码将被多个线程并行执行
barrier:用于并行区内代码的线程同步
single:用在一段只被单个线程执行的代码段之前,表示后面的代码段将被单线程执行

常用库函数

omp_get_num_procs:返回运行本线程的多处理机的处理器个数
omp_get_num_threads:返回当前并行区域中的活动线程个数
omp_get_thread_num:返回线程号
omp_init_lock:初始化一个简单锁
omp_set_lock:上锁操作
omp_unset_lock:解锁操作,要和omp_set_lock函数配对使用
omp_destroy_lock:omp_init_lock函数的配对操作函数,关闭一个锁
omp_set_num_threads:设置并行执行代码时的线程个数