I have a shell script which
So the pseudocode looks like this
file1.sh
#!/bin/bash
for i in $(seq 1 1000)
do
Generating random numbers here , sorting and outputting to file$i.txt
done
Is there a way to run this shell script in parallel
to make full use of multi-core CPUs?
At the moment, ./file1.sh
executes in sequence 1 to 1000 runs and it is very slow.
Thanks for your help.
Check out bash subshells, these can be used to run parts of a script in parallel.
I haven't tested this, but this could be a start:
#!/bin/bash
for i in $(seq 1 1000)
do
( Generating random numbers here , sorting and outputting to file$i.txt ) &
if (( $i % 10 == 0 )); then wait; fi # Limit to 10 concurrent subshells.
done
wait