在Linux下写了一段代码:
 #include <stdio.h>
 #include <omp.h>
 int main( int argc, char **argv )
 {
 int rank, size;
 while(1)
 {
 #pragma omp parallel private(rank)
     {
         rank= omp_get_thread_num();
         size= omp_get_num_threads();
         printf( "Hello world! I'm %d of %d\n", rank, size );
     }
    usleep(1000*10);
 }
 return 0;
 }
不知道这样写有什么问题没有?
cpu:Intel Core 2 Duad Q8400
OS:fedora 10
kernel version:2.6.31.5-127
gcc version: 4.4.2
编译语句:gcc -fopenmp -o test test.c
当我测试线程的CPU使用率的时候发现派生的线程CPU使用率比主线程要高得多,大概数据如下:
$ps H -eo pid,tid,%cpu,cmd --sort=tid
pid    tid    %cpu
2235    2235    15.4
2235    2236    99.0
2235    2237    98.7
2235    2238    100.0
我在windows下测试同样的程序,却没有这样的问题。是哪里写错了吗?还是没配置好?