def METHOD_NAME(datadir,
                   run_list,
                   processor_list,
                   verbose=True,
                   output_dir=None,
                   output_file_string="t2",
                   num_threads=1,
                   overwrite=True):
    """ Wrapper function for RunDSP.
    If run_list is > 1 run, can try processing each run on a separate thread
    with num_threads > 1.  Careful, it's a lot to load in RAM ...
    TODO: try out the multiprocessing in Tier 0 as well
    """
    # if processor_list is None:
    #     processor_list = get_default_processor_list()
    t1_args = []
    for run in run_list:
        filepath = os.path.join(datadir, "t1_run{}.h5".format(run))
        if not overwrite:
            outfilepath = os.path.join(
                output_dir, output_file_string + "_run{}.h5".format(run))
            if os.path.isfile(outfilepath):
                print("Skipping run {} because t2 file already created...".
                      format(run))
                continue
        if num_threads == 1:
            RunDSP(
                filepath,
                processor_list,
                verbose=verbose,
                output_dir=output_dir,
                output_file_string=output_file_string)
        else:
            t1_args.append([filepath, processor_list])
            keywords = {"verbose": verbose, "output_dir": output_dir}
    if num_threads > 1:
        # careful, it's a lot to load in RAM...
        max_proc = cpu_count()
        num_threads = num_threads if num_threads < max_proc else max_proc
        print("Running RunDSP with {} threads ...".format(num_threads))
        p = Pool(num_threads)
        # p.starmap( partial(ProcessRaw, **keywords), t0_args)
        p.starmap(partial(RunDSP, **keywords), t1_args)