¿Se puede dividir md5 para ejecutarse a través de múltiples núcleos / subprocesos?

Cuando calculo la suma md5 de archivos grandes, veo un solo salto del núcleo de la CPU al 100% por el tiempo que tome, dejando todos los demás núcleos inactivos.

Mi comprensión rudimentaria de md5 es que todo el proceso es completamente lineal, donde los valores dependen de todos los valores anteriores leídos, y no hay nada que podamos hacer para que sea multihilo. ¿Es esto cierto?

¿O hay una manera de dividir los archivos en secciones, calcular<algo>&nbsp;sobre varias partes utilizando varios núcleos, y luego combinar esos<algo>&nbsp;valores en el md5 final?

La biblioteca que estamos usando para calcular el md5sum eshttp://libmd5-rfc.sourceforge.net/&nbsp;pero cambiaría a uno diferente si fuera posible dividir el md5sum en múltiples núcleos para que se complete más rápido.

(Nota: cambiar a algo distinto de md5 no es la cuestión, ni se puede hacer debido a los otros sistemas cerrados a los que se interconecta. Tampoco se trata de la cuestión de la seguridad de usar md5)