code: def runner(parallel, config):
      
      def run_parallel(fn_name, items):
          items = [x for x in items if x is not None]
          if len(items) == 0:
              return []
          items = diagnostics.track_parallel(items, fn_name)
          fn, fn_name = (fn_name, fn_name.__name__) if callable(fn_name) else (get_fn(fn_name, parallel), fn_name)
          logger.info("multiprocessing: %s" % fn_name)
          if "wrapper" in parallel:
              wrap_parallel = {k: v for k, v in parallel.items() if k in set(["fresources", "checkpointed"])}
              items = [[fn_name] + parallel.get("wrapper_args", []) + [wrap_parallel] + list(x) for x in items]
          return run_multicore(fn, items, config, parallel=parallel)
      return run_parallel
docs: Run functions, provided by string name, on multiple cores on the current machine.