I create 100 child processes
proc_list = [ Process(target = simulator, args=(result_queue,)) for i in xrange(100)]
and run them
for proc in proc_list: proc.start()
Each process places 10,000 tuples in the result_queue (instance of multiprocessing.Queue) after some processing has been performed.
def simulate(alg_instance, image_ids, gamma, results, simulations, sim_semaphore): (rs, qs, t_us) = alg_instance.simulate_multiple(image_ids, gamma, simulations) all_tuples = zip(rs, qs, t_us) for result in all_tuples: results.put(result) sim_semaphore.release()
I should (?) Get 1,000,000 tuples in the queue, but after various runs I get these (samples) sizes: 14912 19563 12952 13524 7487 18350 15986 11928 14281 14282 7317
Any suggestions?
user1451817
source share