Guest User

Untitled

a guest
Feb 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.57 KB | None | 0 0
  1. def _parmap(fun, q_in, q_out, init=None):
  2. init() if init else None
  3. while True:
  4. i, x = q_in.get()
  5. ret = fun(x)
  6. q_out.put((i, ret))
  7.  
  8.  
  9. def parmap(fun, tasks, n=None, init=None):
  10. from multiprocessing import Pool, Queue
  11. from tqdm import tqdm
  12.  
  13. q_in, q_out = Queue(), Queue()
  14. for item in enumerate(tasks):
  15. q_in.put(item)
  16.  
  17. with Pool(n, _parmap, (fun, q_in, q_out, init)):
  18. n = len(tasks)
  19. ret = [None] * n
  20. for _ in tqdm(range(n)):
  21. i, x = q_out.get()
  22. ret[i] = x
  23.  
  24. return ret
Add Comment
Please, Sign In to add comment