Here are two things you can try.
Prefetch the source files into the kernel's disk cache.
Code:
find sourcedir -type f -exec cp '{}' /dev/null \;
Run several times the number of jobs as the number of CPU cores. If a job gets blocked waiting for a disk read, other jobs still can run.
Ed