I'm trying to run a function with multiprocessing. This is the code:
import multiprocessing as mu
output = []
def f(x):
    output.append(x*x)
jobs = []
np = mu.cpu_count()
for n in range(np*500):
    p = mu.Process(target=f, args=(n,))
    jobs.append(p)
running = []
for i in range(np):
    p = jobs.pop()
    running.append(p)
    p.start()
while jobs != []:
    for r in running:
        if r.exitcode == 0:
            try:
                running.remove(r)
                p = jobs.pop()
                p.start()
                running.append(p)
            except IndexError:
                break
print "Done:"
print output
The output is [], while it should be [1,4,9,...]. Someone sees where i'm making a mistake?
 
     
     
    