Multiprocesso / multithreading em Python para acelerar a cópia de arquivos

Eu tenho um programa que copia um grande número de arquivos de um local para outro - estou falando de mais de 100.000 arquivos (estou copiando 314g em sequências de imagens no momento). Ambos estão em um armazenamento de rede enorme e MUITO rápido, extremamente RAID. Estou usando o shutil para copiar os arquivos sequencialmente e está demorando algum tempo, então estou tentando encontrar a melhor maneira de otimizar isso. Percebi que alguns softwares usam efetivamente multithreads lendo arquivos fora da rede com enormes ganhos em tempos de carregamento, então eu gostaria de tentar fazer isso em python.

Não tenho experiência com programação de multithreading / multiprocessing - essa parece a área certa para prosseguir? Se sim, qual é a melhor maneira de fazer isso? Eu olhei em volta de algumas outras postagens de SO relacionadas à cópia de arquivos de encadeamento em python e todas pareciam dizer que você não obtém ganho de velocidade, mas não acho que esse seja o caso, considerando meu hardware. Não estou nem perto do meu limite de IO no momento e os recursos estão em torno de 1% (tenho 40 núcleos e 64g de RAM localmente).

Spencer

questionAnswers(2)

yourAnswerToTheQuestion