每个打印语句将执行多少次?

How many times will each print statement be executed?

如果下面的代码片段运行在4个处理器上,每个打印语句将执行多少次?

prinf("print # 1\n");   
#pargma omp parallel
{ 
    printf("Print #2\n");    
    #pragma omp for    
    for (i = 0 ; i < 40 ; i++) {
        printf(“Print #\n);
    }
    printf(“Print #4\n”);    
}

闻起来像作业,当然你粘贴的代码甚至无法编译,但是

  • 打印 #1 - 一次
  • 打印 #2 & #4 - 4 次,因为块 运行 每个 CPU
  • 一次
  • "print #"(在for)- 40次,如果你有40 CPUs,一次每个,如果你有 4,那么每个
  • 10 次

这是一个棘手的作业吗?