run a function in another processor in python

Jean-Michel Pichavant jeanmichel at sequans.com
Thu Dec 9 05:48:54 EST 2010


Astan Chee wrote:
> Hi,
> I've got a python script that calls a function many times with various
> arguments and returns a result. What I'm trying to do is run this
> function each on different processors and compile the result at the
> end based on the function result. The script looks something like
> this:
>
>
> import time
>
> def functionTester(num):
>     return ((num+2)/(num-2))**2
>
> num_args = [1,2,3,7,12,16,19,35,36,37,38,55,56,57,63,44,71,81,91]
>
> max_result = 0
>
> start = time.time()
>
> for n in num_args:
>     result = functionTester(n)
>     if result > max_result:
>         max_result = result
>
> print "Result " + str(max_result)
> end = time.time()
> elapsed= end - start
> print "Took", elapsed, "seconds to execute"
>
>
> What I'm trying to do is run each function on a processor and when its
> done, move on to the next function-argument specifically on windows 7
> x64 using python 2.6. How do I do this?
> Thanks for any help
>   
If I'm not wrong, CPU management is handled by your system, meaning 
there's no way to 'force' anything to run on a specific CPU. However, 
you may try to execute your fonction in a subprocess, so that the system 
will use different CPUs (hopefully). You then just need to limit the 
number of subprocess alive at the same time.

Have a look here
http://docs.python.org/library/multiprocessing.html

JM



More information about the Python-list mailing list