Используйте TQDM с многопроцестрой для множества стержней прогрессаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Используйте TQDM с многопроцестрой для множества стержней прогресса

Сообщение Anonymous »

Я хочу контролировать прогресс среди нескольких работников, которые являются разными процессами. Для каждого подпроцесса у меня есть собственный панель хода прогресса, но он работает должным образом с ProcessPoolexeCutor < /code> Исполнитель. < /P>

Код: Выделить всё

def main():
with futures.ProcessPoolExecutor(max_workers=PROCESSES) as executor:
fut_to_num = {}
for i in range(PROCESSES):
fut = executor.submit(execute_many_threads, i)
fut_to_num[fut] = i

for future in futures.as_completed(fut_to_num):
r = future.result()
# print('{} returned {}'.format(fut_to_num[future], r))
print('\nDone!\n')

def execute_many_threads(n_pool=0):
with futures.ThreadPoolExecutor(max_workers=THREADS) as executor:
for i in range(THREADS):
executor.submit(execute_thread, n_pool, i)
return n_pool+1

def execute_thread(n_pool=0, n_thread=0):
s = random.randint(1, 5)
thread_num = n_pool*(PROCESSES-1) + n_thread

progress = tqdm.tqdm(
desc='#{:02d}'.format(thread_num),
position=thread_num,
total=10*s,
leave=False,
)
# print('Executing {}: {}...'.format(thread_num, s))
for i in range(s):
time.sleep(1)
progress.update(n=10)
progress.close()
return s
< /code>

При замене на ThreadPoolexeCutor < /code> (вторая строка) Все работает должным образом, поэтому я предполагаю, что это может быть связано с некоторой проблемой сериализации. Не могли бы вы помочь выяснить правильный вызов TQDM < /code> при использовании многопроцессы. < /P>

python --version
IS Python 3.7.2 и tqdm == 4.31.1 , Ubuntu 18.04

Подробнее здесь: https://stackoverflow.com/questions/549 ... gress-bars
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»