I'm learning GNU parallel and tried the following:$ for i in {1.txt,2.txt}; do time wc -l $i; done100 1.txtreal    0m0.010suser    0m0.000ssys     0m0.010s10000012 2.txtreal    0m0.069suser    0m0.050ssys     0m0.018sI then reran the above command with parallel, but it slowed things down. Why?$ for i in {1.txt,2.txt}; do time parallel --nonall wc -l $i; done100 1.txtreal    0m0.325suser    0m0.192ssys     0m0.042s10000012 2.txtreal    0m0.305suser    0m0.220ssys     0m0.043s
Why does GNU Parallel slow down?
gnu parallel
In your case you're calling it from a for loop so you aren't really running anything in parallel. All you're doing is adding the overhead of calling parallel in the second example, but it's still only running the files through in a single fashion.ExampleThis might help you see what's going on.without parallel$ time for i in {1..2}; do sleep 2;donereal    0m4.004suser    0m0.001ssys 0m0.002swith parallel$ time for i in {1..2}; do parallel sleep 2 < /dev/null;donereal    0m4.574suser    0m0.245ssys 0m0.089sAn alternativeYou could call parallel like this instead.$ time parallel --gnu time wc -l ::: 1.txt 2.txt real    0m0.007suser    0m0.001ssys 0m0.000s1000 1.txtreal    0m0.003suser    0m0.000ssys 0m0.001s1000 2.txtreal    0m0.207suser    0m0.120ssys 0m0.052sHere we can see there is overhead in having to call `parallel with the 3rd time grouping showing the overall amount of time taken to run the entire parallel command.ReferencesUsing GNU parallel