code: def runExperiment( self, e ):
          
  
          # create the parameter space
          space = self.parameterSpace()
  
          # only proceed if there's work to do
          if len(space) > 0:
              nb = self.notebook()
              
              # randomise the order of the parameter space so that we evaluate across
              # the space as we go along to try to make intermediate (incomplete) result
              # sets more representative of the overall result set
              ps = self._mixup(space)
  
              try:
                  # connect to the cluster
                  self.open()
  
                  # submit an experiment at each point in the parameter space to the cluster
                  view = self._client.load_balanced_view()
                  jobs = []
                  for p in ps:
                      jobs.extend((view.apply_async((lambda p: e.set(p).run()), p)).msg_ids)
  
                      # there seems to be a race condition in submitting jobs,
                      # whereby jobs get dropped if they're submitted too quickly
                      time.sleep(0.01)
                  
                  # record the mesage ids of all the jobs as submitted but not yet completed
                  psjs = zip(ps, jobs)
                  for (p, j) in psjs:
                      nb.addPendingResult(p, j)
              finally:
                  # commit our pending results in the notebook
                  nb.commit()
                  self.close()
docs: Run the experiment across the parameter space in parallel using
          all the engines in the cluster. This method returns immediately.
  
          The experiments are run asynchronously, with the points in the parameter
          space being explored randomly so that intermediate retrievals of results
          are more representative of the overall result. Put another way, for a lot
          of experiments the results available will converge towards a final
          answer, so we can plot them and see the answer emerge.
  
          :param e: the experiment