in reply to Perl and mutli processors

You haven't told us much about your script. If it is a web script, then multiple hits on the script will kick off multiple copies of the script which could run simultaneously on different processors. Under Apache 1.x, each hit would be handled by a different httpd process (and different processor - potentially). Even if your script runs under mod_perl, it will still not be multi-threaded, so two invocations will safely run in parallel and will not share variables.

If it's not a web script, then most likely, it will run single threaded on a single CPU. You can compile Perl to support threading but you'd also need to write your Perl script to take advantage of threads.

Replies are listed 'Best First'.
Re: Re: Perl and mutli processors
by Sihal (Pilgrim) on Oct 14, 2002 at 09:15 UTC
    well it's a linear script, but I'm into rewriting it to fork childs to handle some tasks.Will this help on a dual cpu system?
    Otherwise, my question might have been : how much more powerfull is a dual CPU server under linux (cause we're having an argument about it in my company).
    In my opinion, having 2 cpu will mean that processes like apache/mysql et al will balance the load beetween the cpus so my script will automatically get more CPU time, even if it's not specifically written to take the advantage of 2 processors. Am I correct ?

      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.