FIFOに書き込む複数のプロセスを作成する必要があります。それらの間で同期する方法を知りたいのですが、ロックを作成する必要がありますか? ? プロセス間通信を実現するための他の最良の方法を教えてください。
1 に答える
"do I need to write some lock"
まあ、おそらくそうです。共有メモリ (pthreads、openmp) を使用している場合は、競合状態やデータの無効化などを防ぐために、何らかの読み取り/書き込みロックが必要です。分散メモリを使用している場合は、いくつかのことを検討する必要があります。すべてのデータを 1 か所で取得する一種のリダクション操作。
"if yes then would that be slow as a process has to wait for the other to free the lock?"
それはプログラマーであるあなた次第です。遅くて効率の悪いプログラムを書くのは簡単ですが、プログラムの実行や速度などを向上させる方法を考えるには時間がかかります。また、パフォーマンスのボトルネックがあると思われる場所が、実際に発生する場所であるとは限らないことも付け加えておきます。デバッガーやパフォーマンス アナライザーと親友になることをお勧めします。
開始するためのリソースを次に示します。調査を行い、コードを記述し、特定の質問をして、より適切なヘルプを得ることをお勧めします。
https://computing.llnl.gov/tutorials/pthreads/
https://computing.llnl.gov/tutorials/openMP/
https://computing.llnl.gov/tutorials/mpi/
また、他の優れたリソースについては、右側の「関連する」質問を確認してください。