def METHOD_NAME(start=100, stop=1000, step=100, time=1000, interval=100, plot=False):
    f = os.path.join(benchmark_path, f"benchmark_{start}_{stop}_{step}_{time}.csv")
    if os.path.isfile(f):
        os.remove(f)
    times = {
        "BindsNET_cpu": [],
        "BindsNET_gpu": [],
        "BRIAN2": [],
        "BRIAN2GENN": [],
        "BRIAN2GENN comp.": [],
        "PyNEST": [],  # , 'Nengo': []
    }
    for n_neurons in range(start, stop + step, step):
        print(f"\nRunning benchmark with {n_neurons} neurons.")
        for framework in times.keys():
            if n_neurons > 2500 and framework == "PyNEST":
                times[framework].append(np.nan)
                continue
            if framework == "BRIAN2GENN comp.":
                continue
            print(f"- {framework}:", end=" ")
            fn = globals()[framework]
            total, sim = fn(n_neurons=n_neurons, time=time)
            times[framework].append(sim)
            if framework == "BRIAN2GENN":
                times["BRIAN2GENN comp."].append(total - sim)
            print(f"(total: {total:.4f}; sim: {sim:.4f})")
    print(times)
    df = pd.DataFrame.from_dict(times)
    df.index = list(range(start, stop + step, step))
    print()
    print(df)
    print()
    df.to_csv(f)
    plot_benchmark.METHOD_NAME(
        start=start, stop=stop, step=step, time=time, interval=interval, plot=plot
    )