2

私は正常に動作する 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。[/編集]

何が間違っているのか、どうすればコンパイルできるのか誰か知っていますか?

乾杯!

4

2 に答える 2

1

pthread_barrier_tADVANCED REALTIME THREAD オプションの一部であるため、ご使用のシステムでは使用できない場合があります。ところで、そのような具体的な質問をする場合は、OS、バージョン番号などについて常に言及する必要があります。

于 2010-07-03T07:05:45.447 に答える
1

これは、pthread_barrier_tタイプがスコープにないことを意味します。あなたはしたことがあります#includepthread.h

于 2010-07-03T10:50:32.820 に答える