非常に大きなビットマップがあり、並列処理のために小さなチャンクに分割する必要があるとしましょう。ただし、隣接する領域のエッジ ピクセルを考慮する必要がある場合もあります。単にオーバーラップ/パディングを追加する必要がありますか、それとも他に何かすることがありますか?
質問する
498 次
2 に答える
2
他のサブブロックに隣接する側でサブブロックを拡張することは、並列処理の一般的なパターンです。これは、ハローパターン上のゴースト セルパターンと呼ばれます。基本的に、処理ステンシルが必要とするだけのゴースト セル/ハローのピクセルを取得し、各処理反復の開始時にそれらの値を伝達します。また、ハロー エリアを 2 倍にすることで、通信回数を半分に減らすこともできます (遅延の大きいネットワークでのパフォーマンスが向上します)。各並列プロセスがそのサブブロックの一部をその隣接プロセスのハロー領域に送信したり、その逆を行ったりするプロセスは、ハロー スワッピングと呼ばれます。ほとんどの並列処理ライブラリ (MPI など) は、これらのハロー スワップの実行を支援するルーチンを提供します (たとえば、MPI_Cart_shift()
MPI_Sendrecv()
MPI で)。
于 2012-07-16T10:28:28.427 に答える
1
はい、オーバーラップが最も一般的な解決策です。画像の物理的な端では、隣接するタイルから取得するピクセルがないため、より巧妙なことを行う必要があることに注意してください。一般的な解決策は、出力画像が入力画像よりも小さいことを気にしない限り、画像の内容を継続的にミラーリングまたは延長することです。
于 2012-07-16T09:08:05.860 に答える