title: Multiprocessing: Order of Execution
body: <p>I am trying the following code:</p>
  
  <pre><code>from multiprocessing import Pool
  
  def f(x):    
      return x
  
  if __name__ == '__main__':
      p = Pool(5)
      print(p.map(f, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13]))
  </code></pre>
  
  <p>As I understand the 5 processors get <code>0, 1, 2, 3, 4</code> to perform operations on. If processor 1 finishes it's job, does it get <code>5</code> right away while rest processors are busy with <code>1,2,3,4</code> or does the code finish for all processors so that next batch will all together get <code>5, 6, 7, 8, 9</code> and so on. If the later happens how do I implement the above code so that moment a processors goes idle it gets new job assigned to it?</p>
  
  <p>How do I test the implementation?</p>