I need to run ~1500 jobs on my lab's server. The program I am using (blastpgp if anyone cares) is capable of running in parallel mode, the "-a" option sets how many threads it will launch. The server in question has 40 64bit Opteron CPUs available.
I have the following choices:
Run the jobs one by one, sequentially, allowing
blastpgpto occupy all 40 cores by launching 40 threads (-a 40).Run 40 jobs in parallel, allowing each to launch one thread only.
Which of these two options will be faster? Are they equivalent? I imagine it may depend on the particular hardware/software/job details but is there a general rule when running a natively parallel program on a cluster?