poi*_*ige 9 multi-core hash big-data
对于小文件散列就可以了,但是对于大文件,您可以轻松找到md5sumCPU 限制。是否有任何散列算法能够在多核上横向扩展?任何解决方法?想法?任何事物?:)
poi*_*ige 14
我自己目前最好的解决方案是:
parallel --block=512M --pipepart -a …HUGEFILE… --progress --recend '' \
-k -j …NUMofProcessesSay4… md5sum | md5sum
- 应该注意的是:
pipe而不是文件作为输入时parallel的--pipepart,因为我发现不支持磁盘分区所以我也很想听听其他方式。
不幸的是,MD5 是一个线性过程,其状态取决于所有先前的输入。换句话说,你不能真正并行化它。此外,我不知道任何不以这种方式运行的真实哈希算法。
您可以做的(并且,根据您的回答,您正在做的)是拆分源文件并同时计算每个块的 md5sum。
如果您不能/不想这样做,则必须使用更快的哈希函数作为xxHash、CityHash或SpookyHash
其他想法(也许它适用于您的意图使用):如果您需要比 MD5 更快的东西(尽管是单线程),您可以使用 CRC32(由最近的 CPU 硬件加速)进行第一次快速通过,诉诸 MD5 /SHA1 用于对看似相同的文件进行第二次传递。
| 归档时间: |
|
| 查看次数: |
6969 次 |
| 最近记录: |