Ank*_*iya 5 compiling gcc parallels
我正在使用 openMP 来完成我的实验室作业,几周前一切都运行良好,但现在它只在一个线程上运行,我已经阅读过,我猜这是由于包之间的冲突造成的。这是下面的代码:
#include "omp.h"
#include <stdio.h>
int main()
{
omp_set_num_threads(4);
#pragma omp parallal
{
int id = omp_get_thread_num();
printf("Hello (%d)", id );
printf("World (%d)\n", id);
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到输出:
$ gcc -fopenmp hello.c
$ ./a.out
Hello (0)World (0)
Run Code Online (Sandbox Code Playgroud)
我已尝试重新安装gcc
,但没有帮助。
您的代码中有两个错误,这就是您无法使用多线程的原因。
第一个错误是 中的拼写错误OMP Compiler Directives
。你写
#pragma omp parallal
Run Code Online (Sandbox Code Playgroud)
正确的应该是,(这个词是平行不是平行)
#pragma omp parallel
Run Code Online (Sandbox Code Playgroud)
第二个错误return 0
是OpenMP 结构块内部无效。正确的代码应该是这样的,
#pragma omp parallal
Run Code Online (Sandbox Code Playgroud)
汇编:
$ gcc prog.c -fopenmp
$ ./a.out
Hello (0)World (0)
Hello (2)World (2)
Hello (1)World (1)
Hello (3)World (3)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6935 次 |
最近记录: |