Yes, two processors can run two programs simultaneously even if each process is single threaded.
Of course if your script is 'IO bound' (most of it's time is spent waiting for data from disk or network) then extra CPUs aren't going to do much for it.
Without knowing what your script is doing, I can't say what benefit you might getting from forking children. Of course if you fork too many you'll use up available physical memory and once your system starts to swap, the performance will get worse.
Discussions/arguments are probably not going to help you too much. You need to do some profiling to work out what your script is spending its time doing (same goes for your system in general) before you can make any sensible decisions about steps to improve performance.
|