【问题标题】:How to specify the number of threads/processes for the default dask scheduler如何指定默认 dask 调度程序的线程/进程数
【发布时间】:2017-03-30 00:37:57
【问题描述】:

有没有办法限制默认线程调度程序使用的核心数量(使用 dask 数据帧时默认)?

使用compute,您可以通过以下方式指定它:

df.compute(get=dask.threaded.get, num_workers=20)

但我想知道是否有办法将其设置为默认值,这样您就不需要为每个compute 调用指定这个?

在小型集群(例如 64 个核心)的情况下会很有趣,但它与其他人共享(没有作业系统),我不想在启动时占用所有核心用 dask 进行计算。

【问题讨论】:

    标签: python dask


    【解决方案1】:

    你可以指定一个默认的线程池

    from multiprocessing.pool import ThreadPool
    import dask
    dask.config.set(pool=ThreadPool(20))
    

    【讨论】:

    • ThreadPool(20) 将进程数设置为 20。有没有办法限制每个进程的线程数?在单个进程中处理多个线程可能会产生不必要的开销。
    • @AndiR 这是一个错误的假设。 multiprocessing.pool.ThreadPool 是一个线程 池,与multiprocessing.Pool 不同。见docs.python.org/3/library/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    相关资源
    最近更新 更多