MPIでは、各ランクに固有のアドレススペースがあり、それらの間の通信はメッセージパッシングを介して行われます。
共有メモリを備えたマルチコアマシンでMPIがどのように機能するか知りたいです。ランクが共有メモリのない2つの異なるマシン上にある場合、MPIは通信にメッセージを使用する必要があります。しかし、ランクが同じ物理マシン上にある場合(ただし、各ランクのアドレススペースは異なります)、MPI呼び出しは共有メモリを利用しますか?
たとえば、ALLREDUCE呼び出しを発行しているとします。私は2台のマシンM1とM2を持っており、それぞれに2つのコアがあります。ランクR1とR2はマシンM1のコア1とコア2にあり、R3とR4はマシンM2のコア1と2にあります。ALLREDUCEはどのように発生しますか?複数のメッセージが送信されますか?理想的には、R1とR2が使用可能な共有メモリ(同様にR3とR4)を使用して削減を行い、続いてM1とM2の間でメッセージを交換することを期待します。
MPIでの一括操作の実装の詳細について読むことができるドキュメントはありますか?