Multiple Parallel Jobs

Very often, users need to run multiple independent (embarrassingly parallel) jobs, each of which is running a parallel program. The question then is how many cores to use for each run of the parallel program. Since doubling the number of cores used by a parallel program generally provides less than a two-fold speedup, it is likely that using fewer cores for each job in this situation will improve the overall run time if the same number of cores are used in total.

E.g., running 100 jobs at a time using two cores each will likely run faster than 25 jobs using 8 cores each. The only way to be sure is by trying it both ways. Running the same job twice is a waste of resources, and ascertaining which method is faster by comparing different jobs may not be feasible. Generally, fewer cores means lower communication overhead and higher throughput, so in the absence of any hard data, keep the core counts fairly low for your best shot at maximizing throughput.