1

複数のプロセスで使用される共有メモリがあります。これらのプロセスは を使用して作成されMPIます。

次に、この共有メモリへのアクセスを制御するメカニズムが必要です。

named semaphoreこれを行うためにメカニズムを使用できることは知ってflockいますが、MPI が共有メモリの使用に対して特別なロックメカニズムを提供しているかどうかを知りたいだけですか?

私は Linux で C に取り組んでいます。

4

2 に答える 2

2

MPI は実際に共有メモリをサポートしています (バージョン 3.0 以降)。MPI_WIN_ALLOCATE_SHARED (11.2.3) から始まる一方的な通信の章 ( http://www.mpi-forum.org/docs/mpi-3.0/mpi30-report.pdf ) を参照してみてください。これを使用するには、それをサポートする実装があることを確認する必要があります。MPICH と Open MPI の両方の最新バージョンが動作することはわかっています。

于 2013-06-14T15:43:28.687 に答える
1

いいえ、MPI は共有メモリをサポートしていません。実際、MPI は共有メモリをサポートしたくありません。その理由は、MPI で作成されたプログラムは多数のプロセッサにスケーリングすることが想定されており、多数のプロセッサが共有メモリを持っていないためです。

ただし、少数のプロセッサのグループ (多数のプロセッサのセット内)共有メモリを持っている場合があります。ただし、その共有メモリを利用するために、OpenMPが使用されます。

OpenMP は非常に単純です。それを学ぶことを強くお勧めします。

于 2013-06-13T09:22:45.100 に答える