title: How to use Python multiprocessing Pool.map to fill numpy array in a for loop
body: <p>I want to fill a 2D-numpy array within a for loop and fasten the calculation by using multiprocessing.</p>
  
  <pre><code>import numpy
  from multiprocessing import Pool
  
  
  array_2D = numpy.zeros((20,10))
  pool = Pool(processes = 4)
  
  def fill_array(start_val):
      return range(start_val,start_val+10)
  
  list_start_vals = range(40,60)
  for line in xrange(20):
      array_2D[line,:] = pool.map(fill_array,list_start_vals)
  pool.close()
  
  print array_2D
  </code></pre>
  
  <p>The effect of executing it is that Python runs 4 subprocesses and occupies 4 CPU cores BUT the execution doesn´t finish and the array is not printed. If I try to write the array to the disk, nothing happens.</p>
  
  <p>Can anyone tell me why?</p>