multiprocessing & itertools.product Iterator
Christian
mining.facts at googlemail.com
Sat Mar 24 19:35:29 EDT 2012
Hey,
I struggle to "extend" a multiprocessing example to my problem with a
itertools.product result iterator.
How I have to assign the combos.next() elements approriate to
Pool.imap/calc functions?
Thanks in advance
Christian
from multiprocessing import Process,Queue,Pool
import Calculation
import DataSimulation
from itertools import product
def produce_example_combos(size=6,na=1000,nb=10):
data = DataSimulation.DataSimulation()
a = [data.generate_simple(size) for x in xrange(na)]
b = [data.generate_simple(size) for x in xrange(nb)]
it = product(a,b)
return it
def calc(elements):
calc.q.put("Doing:" + elements[0] + elements[1])
ratio = Calculation.ratio(elements[0],elements[1])
return ratio
def calc_init(q):
calc.q = q
if __name__ == '__main__':
combos = produce_example_combos()
print "tesdata generated"
q = Queue()
p = Pool(10, calc_init, [q])
results = p.imap(calc,combos.next())
p.close()
for i in combos:
print q.get()
print results.next()
More information about the Python-list
mailing list