0
如果我只有一個for循環來並行化,並且如果我在並行化時使用#pragma omp critical,是否會使它等價於一個串行代碼?在openmp中並行化代碼時,串行代碼和使用關鍵字critical有什麼區別?
如果我只有一個for循環來並行化,並且如果我在並行化時使用#pragma omp critical,是否會使它等價於一個串行代碼?在openmp中並行化代碼時,串行代碼和使用關鍵字critical有什麼區別?
號
的critical
指令指定覆蓋由一個線程同時執行,但會(最終)被認爲遇到它的所有線程執行的代碼。
single
指令指定它覆蓋的代碼只能由一個線程執行,但即使這樣做與編譯沒有OpenMP的代碼也不完全相同。 OpenMP對平行區域內可以使用哪些編程結構施加一些限制(,例如不跳出它們)。此外,在運行時,即使實際上沒有並行運行任何代碼,也可能會引發OpenMP的開銷。