2012-05-23 15 views
11

大きなファイルのmd5の合計を計算すると、1つのCPUコアが100%にジャンプしていますが、他のすべてのコアはアイドルのままです。md5を分割して複数のコア/スレッドを実行できますか?

私の初歩的なmd5の理解は、すべてのプロセスが完全に線形であることです。ここで値は以前のすべての値に依存しており、マルチスレッド化することはできません。これは本当ですか?その後、

またはセクションにファイルを分割する方法があり、マルチコアを使用して、複数の部品を超える><何かを計算し、最終的にそれらのMD5 <何か>値を組み合わせますか?

md5sumを計算するために使用しているライブラリはhttp://libmd5-rfc.sourceforge.net/ですが、複数のコアにわたってmd5sumを破ることができれば、別のものに切り替えることができます。

(注:MD5以外のものに変更することは問題ではない、またそれが原因で他の閉鎖系で行うことができ、このインターフェースNOR MD5を使用しての安全性について、この質問であると。)

+3

これはGoogleでしたか? 「パラレル・インプリメンテーションMD5」の最初のヒットの1つはhttp://wwwcip.cs.fau.de/~spjsschl/md5.pdfで、短い答えが「はい、できます」と思われるようです。あなたの「メモ」に+1 –

+0

+1あなたがその問題を知っているという事実は、おそらくあなたは彼らについて何かをすることを考慮すべきであることを暗示しています... – Ben

+4

@JerryCoffin私はその記事が少し誤解を招くと思います。私は、MD5アルゴリズム自体を並列化するのではなく、パスワードハッシングのためにMD5の複数の反復を並列化していることを知りました。彼らの他の最適化は、4つの32ビットレジスタの代わりに1つの大きな128ビットSSEレジスタを使用することでした。 – greg

答えて

9

あなたはファイルレベルでそれを分解することはできません。 MD5は、データを実行するときに状態を維持します。

関連する問題