При вычислении суммы больших файлов md5 я вижу, что один процессорный ядро скачет до 100%, несмотря на его длительность, оставляя все остальные ядра бездействующими.
Мое рудиментарное понимание md5 - это весь процесс, полностью линейный, где значения зависят от всех предыдущих значений, и мы ничего не можем сделать, чтобы сделать его многопоточным. Это правда?
Или есть способ разбить файлы на разделы, вычислить <something> по нескольким частям с использованием нескольких ядер, а затем объединить те <something> значения в окончательный md5?
Библиотека, которую мы используем для вычисления md5sum, http://libmd5-rfc.sourceforge.net/, но я бы переключился на другую, если было возможно разбейте md5sum на несколько ядер, чтобы он завершился быстрее.
(Примечание: переход на что-то, отличное от md5, не является вопросом, и это не может быть сделано из-за других закрытых систем, к которым этот интерфейс взаимодействует. И этот вопрос не связан с безопасностью использования md5.)