De acordo com a página do manual, --jobs
é o número máximo de trabalhos que serão executados em paralelo em cada máquina (ênfase minha):
--jobs N
Number of jobslots on each machine. Run up to N jobs in parallel. 0 means as many as possible.
Isso não significa que sempre será igual a isso. O primeiro e mais importante requisito para a computação paralela é que as tarefas possam ser executadas de forma independente e a saída final possa ser combinada de forma que produza a mesma saída se as tarefas forem executadas sequencialmente. Se isso não for possível, a tarefa não pode ser feita em paralelo.
Além disso, na página man paralela do GNU:
GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input.
Agora, se o arquivo tiver apenas duas linhas, mas você passar --jobs 10
, parallel
não poderá executar 10 trabalhos para duas linhas, já que a menor entrada é uma linha. Então, você verá apenas 2 trabalhos.
Este não é apenas o caso do GNU paralelo, mas praticamente de qualquer mecanismo de computação paralela.