gpt4 book ai didi

c - OpenMp只有一个线程执行

转载 作者:行者123 更新时间:2023-11-30 20:20:24 24 4
gpt4 key购买 nike

我设置了4个线程。 Screen1但只有一个线程在并行区域中执行(查看“id”)。 Screen2 .
可用线程(我使用了 omp_get_max_threads())。
怎么了?

int main(int argc, char** argv)
{
srand(time(NULL));
int P = atoi(argv[1]);

omp_set_num_threads(4);
#pragma parallel for
for( int i = 0; i < 1000000; i++ ) {
printf("%d\n",omp_get_max_threads());
printf("Num Threads:%d ",omp_get_num_threads());
printf("id:%d\n",omp_get_thread_num());
}
while(1);
const uint num_elements = 79;
int* data = (int*) malloc(sizeof(int) * num_elements);
for( uint i = 0; i < num_elements; i++ ) {
data[i] = rand() % 100 - 50;
}
int* buffer = (int*) malloc(sizeof(int) * num_elements);
PrintArray(data,0,num_elements);
int* res = MergeSort(data,buffer,0,num_elements - 1,8);
PrintArray(res,0,num_elements);

return 0;
}

最佳答案

错误是:#pragma parallel for。

正确的指令是“#pragma omp parallel for”

关于c - OpenMp只有一个线程执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46378841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com