Thanks but I'm having trouble with that module too. Currently what I have is something like this:
import sys import os import multiprocessing import time def functionTester(num): return ((num+2)/(num-2))**2 num_args = [61,62,33,7,12,16,19,35,36,37,38,55,56,57,63] max_result = 0 start = time.time() num_processes = multiprocessing.cpu_count() threads = [] len_stas = len(num_args) for list_item in num_args: if len(threads) < num_processes: p = multiprocessing.Process(target=functionTester,args=[list_item]) p.start() print p, p.is_alive() threads.append(p) else: for thread in threads: if not thread.is_alive(): threads.remove(thread) print "Result " + str(max_result) end = time.time() elapsed= end - start print "Took", elapsed, "seconds to execute" But it doesn't give me any return data. It also spawns an infinite number of (sub)processes that crashes my machine. What am I doing wrong here? On 12/9/10, Jean-Michel Pichavant <jeanmic...@sequans.com> wrote: > 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 > -- http://mail.python.org/mailman/listinfo/python-list