主题:请教Linux下使用Openmp的问题
在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下测试同样的程序,却没有这样的问题。是哪里写错了吗?还是没配置好?
#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下测试同样的程序,却没有这样的问题。是哪里写错了吗?还是没配置好?