Gzip with all cores
If you are on Linux, you can use GNU's xargs to launch as many processes as you have cores.
CORES=$(grep -c '^processor' /proc/cpuinfo)find /source -type f -print0 | xargs -0 -n 1 -P $CORES gzip -9
- find -print0 / xargs -0 protects you from whitespace in filenames
- xargs -n 1 means one gzip process per file
- xargs -P specifies the number of jobs
- gzip -9 means maximum compression
You might want to consider checking GNU parallel. I also found this video on youtube which seems to do what you are looking for.