複数のプロセスで使用される共有メモリがあります。これらのプロセスは を使用して作成されMPI
ます。
次に、この共有メモリへのアクセスを制御するメカニズムが必要です。
named semaphore
これを行うためにメカニズムを使用できることは知ってflock
いますが、MPI が共有メモリの使用に対して特別なロックメカニズムを提供しているかどうかを知りたいだけですか?
私は Linux で C に取り組んでいます。
複数のプロセスで使用される共有メモリがあります。これらのプロセスは を使用して作成されMPI
ます。
次に、この共有メモリへのアクセスを制御するメカニズムが必要です。
named semaphore
これを行うためにメカニズムを使用できることは知ってflock
いますが、MPI が共有メモリの使用に対して特別なロックメカニズムを提供しているかどうかを知りたいだけですか?
私は Linux で C に取り組んでいます。
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 の両方の最新バージョンが動作することはわかっています。
いいえ、MPI は共有メモリをサポートしていません。実際、MPI は共有メモリをサポートしたくありません。その理由は、MPI で作成されたプログラムは多数のプロセッサにスケーリングすることが想定されており、多数のプロセッサが共有メモリを持っていないためです。
ただし、少数のプロセッサのグループ (多数のプロセッサのセット内)が共有メモリを持っている場合があります。ただし、その共有メモリを利用するために、OpenMPが使用されます。
OpenMP は非常に単純です。それを学ぶことを強くお勧めします。