The number of files to process is ~1,000,000, and it takes dozens of minutes.
Então você está correndo cerca de 600 empregos por segundo. A sobrecarga para um único trabalho Paralelo GNU é da ordem de 2 a 5 ms, portanto, quando você está obtendo mais de 200 trabalhos por segundo, o GNU Parallel não terá um desempenho melhor sem ajustes.
O ajuste é ter mais parallel
s tarefas de spawining em paralelo. De link
cat myinput | parallel --pipe -N 100 --round-robin -j50 parallel -j100 your_prg
Desta forma, você terá 50 Paralelamente GNU que podem gerar 100 empregos por segundo.