Openmp C 编译错误
Openmp C Compilation Error
我是 openmp 和 c 的新手。我正在尝试编译一个基本程序。我有一些问题。有人可以帮助指导我正确的方向吗?谢谢!
#include <omp.h>
#include <stdio.h>
int main() {
#pragma omp parallel for private(i, a) num_threads(3)
for (i=0; i<5; i++)
{
a[i] = i + 1;
printf(“Thread %d has a value of a = %d for i = %d\n”,
omp_get_thread_num(), a[i], i);
} /*end of parallel for */
}
嗯,获取实际的错误消息会有所帮助...
为了以防万一,您是否在某处声明了 a
和 i
?您是否为您的编译器启用了 OpenMP 支持?
我确实在代码中添加了这些并自己编译了它。这是它给出的内容:
#include <omp.h>
#include <stdio.h>
int main() {
int a[5], i;
#pragma omp parallel for private(i, a) num_threads(3)
for (i=0; i<5; i++)
{
a[i] = i + 1;
printf("Thread %d has a value of a = %d for i = %d\n",
omp_get_thread_num(), a[i], i);
} /*end of parallel for */
}
结果是
$ gcc -fopenmp sample_omp.c
$ ./a.out
Thread 2 has a value of a = 5 for i = 4
Thread 1 has a value of a = 3 for i = 2
Thread 1 has a value of a = 4 for i = 3
Thread 0 has a value of a = 1 for i = 0
Thread 0 has a value of a = 2 for i = 1
我是 openmp 和 c 的新手。我正在尝试编译一个基本程序。我有一些问题。有人可以帮助指导我正确的方向吗?谢谢!
#include <omp.h>
#include <stdio.h>
int main() {
#pragma omp parallel for private(i, a) num_threads(3)
for (i=0; i<5; i++)
{
a[i] = i + 1;
printf(“Thread %d has a value of a = %d for i = %d\n”,
omp_get_thread_num(), a[i], i);
} /*end of parallel for */
}
嗯,获取实际的错误消息会有所帮助...
为了以防万一,您是否在某处声明了 a
和 i
?您是否为您的编译器启用了 OpenMP 支持?
我确实在代码中添加了这些并自己编译了它。这是它给出的内容:
#include <omp.h>
#include <stdio.h>
int main() {
int a[5], i;
#pragma omp parallel for private(i, a) num_threads(3)
for (i=0; i<5; i++)
{
a[i] = i + 1;
printf("Thread %d has a value of a = %d for i = %d\n",
omp_get_thread_num(), a[i], i);
} /*end of parallel for */
}
结果是
$ gcc -fopenmp sample_omp.c
$ ./a.out
Thread 2 has a value of a = 5 for i = 4
Thread 1 has a value of a = 3 for i = 2
Thread 1 has a value of a = 4 for i = 3
Thread 0 has a value of a = 1 for i = 0
Thread 0 has a value of a = 2 for i = 1