長さが1.000.000〜100.000.000の整数の配列を並べ替える必要があります。私は、このプログラムをpthreadライブラリを使って2Mbのキャッシュを持つcore2duoコンピュータで実行したいと思います。私は最速のアルゴリズムが欲しい!マルチスレッドプログラミングに最適なソートアルゴリズムは何ですか?
mergesortアルゴリズムを使用する準並列ソートコードを作成しました。しかし、それは十分速くはありません!私が大学にいたので、
___ sort___
/ \
/____ sort ___\ __ merge __
___/ \___/ \___ merge
\ ____ sort ____/ \__ merge __/
\ /
\___ sort __/
何を試しましたか?何が効いていないのですか?問題のあるコードスニペットを表示してください。 –
私はマージソートアルゴリズムを使用する準並列ソートコードを書いています。 – Sohrab
これより高速ではないことが分かった場合は、マシンに複数のコアがあり、メモリバスが1つしかないことがわかりました。真のボトルネックです。 –