TGViewer
DataGym Channel [Power of data] DataGym Channel [Power of data] @powerofdata · 2.41K subscribers
Post #32 1.55K
#python #tips : Распараллеливание и progress bar
Как контролировать многопоточное применение функции к массиву данных?
- С появлением tqdm стало проще контролировать процесс прохода по циклу (про tqdm: http://xxtt.ru/60c8)
- Также мало для кого секрет, что функции map проста для распараллеливания с помощью встроенной библиотеки multiprocessing (хорошая статья про это: http://xxtt.ru/c6c6)
Но что, если вы хотите следить за процессом распараллеленного выполнения с помощью multiprocessing?
Есть решение! Вот пример:
from multiprocessing import Pool
from tqdm import tqdm_notebook

def pow_2(n):
import time
sq_n = n ** 2
time.sleep(0.1) # slow function 🙂
return (n, sq_n)

def imap_unordered_bar(func, args, n_jobs):
p = Pool(n_jobs)
res_list = [x for x in tqdm_notebook(
p.imap_unordered(func, args),
total=len(args)
)]
p.close()
p.join()
return res_list

result = imap_unordered_bar(pow_2, range(100), n_jobs=10)

где args - массив данных к которому вы хотите параллельно применить функцию func
❗️`imap_unordered` возвращает результаты не обязательно в порядке входных данных. Потому, если вам важно понимать, результатом каких входных значений является выходное значение, возвращайте идентификатор, по которому восстановите к чему относился результат.
Код примера на github: http://xxtt.ru/6b4d
More from @powerofdata
  1. Sep 17, 2026Друзья! у нас последний день регистрации на офлайн Practical ML Conf — https://pmlconf.yan…
  2. Jul 30, 2026photo post
  3. Jul 10, 2026Recycle ♻️ research
  4. Jul 8, 2026Сегодня второй день постеров, если вы в Сеуле, го на кофе. А пока пару чисел в карточках о…
  5. Jun 26, 2026Готовлю исследование по статьям ICML-2026, включайте нотификации, чтобы не пропустить)
  6. Apr 27, 2026Друзья! 🩵 Мы начинаем подготовку нашей конференции по машинному обучению Practical ML Con…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →