1

I need to do something like this

#pragma omp parallel{

#pragma omp for
for_1(){

   for_2(){
     do_something();
   }
   #pragma omp barrier //wait for all threads to finish after the inner for

   continue_with_something_else_in parallel();

}

}

The compiler tells me I can't put a barrier there. Does anyone knows how can I solve this?

4

2 に答える 2

0

多分このリンクがあなたを助けるでしょう:

http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Fcompiler%2Fref%2Fruompbar.htm

私が見たものから:

omp バリア ディレクティブは、ブロックまたは複合ステートメント内に表示する必要があります。例えば:

if (x!=0) {
   #pragma omp barrier    /* valid usage    */
}
if (x!=0)
   #pragma omp barrier    /* invalid usage  */
于 2012-11-19T21:14:07.173 に答える