text: from __future__ import print_function
  
  from IPython.parallel import *
  
  client = Client()
  view = client.load_balanced_view()
  
  
  @view.remote(block=True)
  def square(a):
      """return square of a number"""
      return a * a
  
  squares = map(square, range(42))
  
  # but that blocked between each result; not exactly useful
  
  square.block = False
  
  arlist = map(square, range(42))
  # submitted very fast
  
  # wait for the results:
  squares2 = [r.get() for r in arlist]
  
  # now the more convenient @parallel decorator, which has a map method:
  view2 = client[:]
  
  
  @view2.parallel(block=False)
  def psquare(a):
      """return square of a number"""
      return a * a
  
  # this chunks the data into n-negines jobs, not 42 jobs:
  ar = psquare.map(range(42))
  
  # wait for the results to be done:
  squares3 = ar.get()
  print(squares == squares2, squares3 == squares)
  # True
  