openmp學習筆記

2021-06-12 02:13:38 字數 673 閱讀 9135

#pragma omp parallel僅在您指定了-fopenmp編譯器選項後才會發揮作用。在編譯期間,gcc 會根據硬體和作業系統配置在執行時生成**,建立盡可能多的執行緒。每個執行緒的起始例程為**塊中位於指令之後的**。這種行為是 

隱式的並行化

,而 openmp 本質上由一組功能強大的編譯指示組成,幫您省去了編寫大量樣本檔案的工作。

用gcc編譯時新增-fopenmp選項(cite from 

如gcc -o test 1.c -fopenmp

如果是c++把gcc改為g++即可

#include#includeint main()

}

#include#includeint main()

}

以上兩種設定執行緒個數的方法等效

#includeint main(int argc,char *argv){

double sum;

double a[256],b[256];

int status;

int n=256;

int i;

for(i=0;i

reduction variable 『sum』 is private in outer context

OpenMP學習筆記

date 2016 02 22 author kagula environment 1 core i7 4790k 2 win10 64bits 3 vs2013 update5 4 gcc 4.4.7 centos 6.5自帶 prologue openmp適合單機多核cpu,使用非常方便。多種主...

OpenMP程式設計學習筆記九

openmp的execution model主要是幾個執行緒通過同時執行,從而完成乙個任務。與單核上的多執行緒併發執行是不同的,因為併發執行 實際上是執行緒在不同的時間段占有cpu。而openmp的執行緒,是在各自的cpu上執行,不存在各個執行緒在同乙個cpu上的排程。雖然有 多個cpu,但是記憶體...

OpenMP程式設計學習筆記五

critical 使用 如果 段只需要乙個thread執行,可以使用single標明。如果 段需要id為0的thread執行,使用master標明。那麼,如果 段需要各個cpu互斥執行,也就是要求每個cpu都執行一次,但任何時候只用乙個cpu在執行。這種 情況可以使用critical。從巨集觀上看,...