私が使用しているシミュレーションパッケージのために、MPIを使用してパラレル化ルーチンを書き直そうとしています。私は特定の機能を実装しようとしており、問題を抱えています。私は何をしようとしているかを示す別の簡単な例を使って問題を説明します。MPIで何らかの「共有メモリ」を再現する
私は基本的にすべてのMPIスレッドが共有するカウンタを用意しようとしています。このカウンターが増分されるたびに、特定のスレッドはそれを他のユーザーにブロードキャストして、増分したいときに各スレッドが最新バージョンのカウンターを持つようにします。 OpenMPを共有メモリで使用すると簡単に実行できると理解していますが、スーパーコンピュータで500コアのシミュレーションなど、1つ以上のCPUでMPIを使用する方法があるかどうかは疑問です。
MPI_Bcast、MPI_Send、およびMPI_Recvのすべての組み合わせを考えましたが、私が正しく理解していない可能性があると思います。
可能な複製:http://stackoverflow.com/questions/4948788/creating-a-counter-that-stays-synchronized-across-mpi-processes – suszterpatt