すでに2台のマシンのケースに対する回答があります。
ソートされる128GBのデータが1台のハードドライブ(または任意の外部デバイス)に1つのファイルとして保存されているとします。何台のマシンやハードドライブを使用しても、オリジナルの128GBファイルを読み込み、ソートされた128GBファイルを書き込む時間は同じです。唯一の節約は、ソートされたデータのチャンクを作成する内部RAMベースのソートの間に発生します。残りのハードドライブに1つのソートされた128GBファイルにnウェイ・マージを行うためにn + 1個のハード・ドライブとマージするのにかかる時間は同じであり、残りの128GBソート・ファイルを書き込む時間ハードドライブ。
n台のマシンの場合、データは128GB/nチャンクに分割されます。マシンのそれぞれは、ランダムアクセスオーバヘッドを減らすために、一度に64MBの読み込みサブチャンクを交互に読み出すことができるため、 "最後の"マシンは、それまでのすべてのマシンがすべてのチャンクを読み込むのを待っていません。
n個のマシン(それぞれ64GBラム)とn> = 4のn + 1ハードドライブの場合、O(n)時間の複雑さを持つ基数ソートを各マシンで使用して、n個の作業で32GB以下のチャンクを作成できますハードドライブを同時に起動し、宛先ハードドライブにnウェイをマージします。
大きなnの利益を制限するリターンが小さくなる点があります。 n> 16を越えるところでは、内部のマージスループットがディスクのI/O帯域幅より大きくなる可能性があります。マージプロセスがI/OバウンドではなくCPUバウンドの場合、I/O時間よりも大きなマージオーバーヘッドと並行してチャンクを作成する時間は、CPUオーバーヘッドのトレードオフになります。
分割して再作成します。最終的なマージのために単一のマシンを避けることは可能ですか? Yes:基数ソート。 – wildplasser
@wildplasser - それは問題ではありません。マージは外部I/Oより高速です。したがって、マージ処理は、128GBのデータを宛先ドライブに書き込む時間に制限されます。 n + 1デバイスの場合、残りのドライブに書き込むためにnウェイマージを使用できます。これにより、n個のマシンがn個の作業ドライブ上にn個のデータチャンクを並列に作成することができますが、最終的なマージはデスティネーションドライブのI/O速度によって制限されます。 – rcgldr
共有ファイルシステムを(単一の)マシンとみなすことができます。それはまだファンネルロックです。 – wildplasser