code: def _parameter_sweep(self, parameter_space, kernel_options, device_options, tuning_options):
          
          results = []
  
          #randomize parameter space to do pseudo load balancing
          parameter_space = list(parameter_space)
          random.shuffle(parameter_space)
  
          #split parameter space into chunks
          work_per_thread = int(numpy.ceil(len(parameter_space) / float(self.max_threads)))
          chunks = _chunk_list(parameter_space, work_per_thread)
  
          for chunk in chunks:
  
              chunked_result = self._run_chunk(chunk, kernel_options, device_options, tuning_options)
  
              results.append(lift(chunked_result))
  
          return gather(*results)
docs: Build a Noodles workflow by sweeping the parameter space