私は正常に動作する 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行目は、上で書いたものに対応しています。
[編集] 次の gcc/mpicc コンパイラを使用して、Ubuntu 9.10 でこれを実行しています: gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1。[/編集]
何が間違っているのか、どうすればコンパイルできるのか誰か知っていますか?
乾杯!