OpenMP基础东西
经历了一段时间的对OpenMP的研究之后,总结了OpenMP的一些基本语,和大家共享一下,相互学习 parallel for也是用在一个循环之前表示for循环的代码将被多个线程并行执行 sections 用在可能会被并行执行的代码段之前 parallel sections critical 用在一段代码临界区之前 single用在一段只被单个线程执行的代码之前,表示后面的代码段将被单线程执行 flush用来保证线程的缓存数据和实际内存保持一致,即各个线程看到的共享变量是一致的 barrier用于并行去内代码的线程同步所有线程同步,所有线程执行到barrier是要停止,直到所有线程都执行到barrier是才往下执行 atomic 用于指定一块内存区域被自动更新 master 用于指定一段代码块有主线程执行 ordered用于指定并行区域的循环按顺序执行 thread private 用于指定一个变量是线程私有的 OpenMP的字句有以下一些 private firstprivate lastprivate reduction nowait忽略指定中暗含的等待 num_threads指定线程的个数 schedule指定如何调度for循环迭代 shared指定一个或多个变量为多个线程之间的共享变量 ordered用来指定for循环的执行要按顺序执行