Processes are currently forked as soon as an opportunity for parallelization is identified. When the process requires more memory than what is available, the additional paging causes a slowdown. The scheduler should wait until previous processes have completed before forking the next.