Какие алгоритмы хеширования распараллеливаются? Оптимизация хеширования больших файлов на многоядерных процессорах

Я заинтересован в оптимизации хеширования некоторых больших файлов (оптимизация времени настенных часов). Ввод / вывод уже достаточно хорошо оптимизирован, и устройство ввода / вывода (локальный SSD) подключено только примерно на 25% емкости, а одно из ядер ЦП полностью заполнено.

У меня есть больше доступных ядер, и в будущем, вероятно, будет еще больше ядер. До сих пор я мог подключиться к большему количеству ядер только в том случае, если мне понадобилось несколько хешей одного и того же файла, скажем, MD5 и SHA256 одновременно. Я могу использовать один и тот же поток ввода-вывода для подачи двух или более хеш-алгоритмов, и я получаю более быстрые алгоритмы бесплатно (до времени настенных часов). Как я понимаю большинство алгоритмов хеширования, каждый новый бит меняет весь результат, и это по своей сути сложно / невозможно сделать параллельно.

Является ли какой-либо из основных алгоритмов хеширования распараллеливаемым?
Существуют ли какие-либо неосновные хеши, которые можно распараллелить (и которые имеют хотя бы примерную реализацию)?

Поскольку будущие процессоры будут стремиться к большему количеству ядер и выравниванию тактовой частоты, есть ли способ улучшить производительность хеширования файлов? (кроме разгона с охлаждением жидким азотом?) или он по своей сути не распараллеливается?