我有一个 MPI 例程的功能实现,它工作正常。在使 MPI 和共享内存混合的过程中,我使用了 pthreads。这反过来证明了 pthread_barriers 的需要。
但是当我尝试使用 mpicc 编译器编译我的代码时,它会抱怨 pthread_barrier_t 和其他屏障命令。如果我删除这些,并保留其他线程部分,它编译得很好。
这是我插入的用于中断编译的代码行:
pthread_barrier_t* barrier;
对于编译,我使用:
mpicc -lm myprogram.c -o myprogram
编译器返回的错误是:
myprogram.c:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
其中第 34 行对应于我上面写的内容。
[编辑] 我在 Ubuntu 9.10 上运行它,使用以下 gcc/mpicc 编译器:gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1。[/编辑]
有谁知道可能出了什么问题以及如何编译?
干杯!