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

AltStyle によって変換されたページ (->オリジナル) /