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