OpenMP在os x上的汇编错误
OpenMP on os x assembler errors
我一直在尝试让openMp在我的mac上工作。最后,我终于成功了。
这个程序运行得很好
https://computing.llnl.gov/tutorials/openMP/samples/C/omp_hello.c但是这个
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
static long num_steps = 100000;
double step;
int main(){
int i, nthreads;
double x,pi,sum[2] ;
double start = omp_get_wtime();
double end;
step = 1.0/(double)num_steps;
omp_set_num_threads(2);
#pragma omp parallel
{
int i, id,nthrds;
double x;
id = omp_get_thread_num();
nthreads = omp_get_num_threads();
if(id == 0) nthreads = nthrds;
for(i = 0 ; i < num_steps ; i = i+nthrds){
x = (i+0.5)*step;
sum[id] += 4.0/(1.0+x*x);
//printf("Thread_num : %d ,%fn", omp_get_thread_num(),sum);
}
}
//pi = step*sum;
for (int i = 0, pi =0.0; i < nthreads; ++i)
{
/* code */
pi += sum[i] * step;
}
end = omp_get_wtime();
printf("%fn", end-start);
return 0;
}
. .给我这些错误
gcc -fopenmp helloWorld.c -o helloWorld
/var/folders/d7/2jjg9ygj7zscb67wnskcxsk40000gp/T//cc4hIbK6.s:19:suffix or operands invalid for `movq'
/var/folders/d7/2jjg9ygj7zscb67wnskcxsk40000gp/T//cc4hIbK6.s:64:suffix or operands invalid for `movq'
/var/folders/d7/2jjg9ygj7zscb67wnskcxsk40000gp/T//cc4hIbK6.s:68:suffix or operands invalid for `movq'
/var/folders/d7/2jjg9ygj7zscb67wnskcxsk40000gp/T//cc4hIbK6.s:69:suffix or operands invalid for `movq'
我不知道它为什么会这样。在我问这个问题之前,我在网上搜索了一下,但是我找不到使用openMP有这个问题的人。
(我也不完全确定编译器是否安装好了。我安装了一堆东西,有些可以用,有些不行)
希望看到这篇文章的人:我更新了gcc(使用brew),然后用gcc-5运行程序…希望你们也能成功。祝你好运。
相关文章:
- SSE 内联汇编和可能的 g++ 优化错误
- 汇编错误:调用基本型构造函数时无效的转换
- 为什么我的GLSL着色器失败汇编而没有错误消息
- 为什么将char*传递给字符串参数会产生汇编错误
- Android Studio 3 C 文件中充满了错误,但汇编还可以
- C 汇编错误:无匹配的构造函数以进行初始化
- C 11线程汇编错误传递字符串作为复制的引用
- Python安装汇编错误
- binary_search on属性的汇编错误
- 从源构建时,提升iostreams中的汇编错误
- Gmock方法正在抛出汇编错误
- G 生成逻辑上错误的汇编代码
- 增加精神汇编错误
- 汇编错误C 在标题文件中添加函数时
- 为什么我会遇到这些汇编错误
- 代码中的汇编错误
- 关于隐藏,覆盖和虚拟表的汇编错误
- C 汇编错误:对构造函数的引用是模棱两可的
- Berkelium汇编错误
- OpenMP在os x上的汇编错误