大きなファイルの md5 合計を計算すると、1 つの CPU コアがどれだけ時間がかかっても 100% にジャンプし、他のすべてのコアがアイドル状態のままになります。
md5 についての私の基本的な理解は、プロセス全体が完全に線形であり、値は以前に読み取られたすべての値に依存しており、マルチスレッド化するためにできることは何もないということです。これは本当ですか?
または、ファイルをセクションに分割し、マルチコアを使用して複数の部分で<something>を計算し、それらの<something>値を最終的な md5 に結合する方法はありますか?
md5sum の計算に使用しているライブラリはhttp://libmd5-rfc.sourceforge.net/ですが、複数のコアで md5sum を分割してより速く完了することができる場合は、別のライブラリに切り替えます。
(注: md5 以外のものに変更することは問題ではありません。また、このインターフェイスが他のクローズド システムに接続されているため、変更することもできません。また、md5 を使用することの安全性に関するこの問題もありません。)