私はcharの2つの配列を持ち、各位置は1または0です。 2つの配列は異なるプロセスで計算され、結合されるマスターに送り返されるので、各配列はそれらのアレイ:Cでバイト配列をマージする最も効率的な方法は何ですか?
P1:[0、0、0、0、1、1、0、1]
P2:[1、0、1、1、0、0、0、0]
目標:[1,0,1,1,1,1,0]
しかし、これらは非常に大きなアレイである可能性があります。そのうちの1つをループするだけでなく、これを実行する超高速方法がありますか?
明確にするために、それらはORされるべきです。
あなたがしなければならないのhttp://stackoverflow.com/questions/668280/whats-the-most-efficient-way-to-make-bitwise-operations-in-ac-array –
を見てみましょう0と1をcharとして送信しますか?ビットを整数にパックしてからそれらをマスターに送ることができますか?次に、マスターの2つの整数をxorだけにすることができます。 – Makis
@Makis、これはきちんとしたマイクロ最適化ですが、連続した範囲であれば、大規模な範囲では全く役に立たないでしょう。無駄な 'x^0'と' 0^x操作。各プロセスのビットがインターリーブされていれば良い考えです。 – bdonlan