charm.pool.map & tqdm: 获取进度条

charm.pool.map & tqdm: obtain a progressbar

我正在使用 wanderfull 库 charm4py to parralelise tasks on a cluster of several machines. I'm just using the function charm.pool.map, which is documented there

使用经典 list(tqdm.tqdm(char.pool.map(...),total=...)) 无效:进度条已打印,但仅在最后一次迭代后打印。

我应该怎么写这个?有可能吗?

编辑:在 charm4py 问题上交叉发布:https://github.com/UIUC-PPL/charm4py/issues/178

根据@lrnv 关于multi_future 的建议,以下代码应正确显示工人池的进度。

from charm4py import charm
from tqdm import tqdm

futures = charm.pool.map_async(func, iterable, multi_future=True)
pBar = tqdm(total=len(futures))
for future in charm.iwait(futures):
    # Do something with future.get()
    pBar.update()