Параллельное выполнение функций и наблюдение за их ходомPython

Программы на Python
Ответить
Anonymous
 Параллельное выполнение функций и наблюдение за их ходом

Сообщение Anonymous »

Я использую joblib для параллельного запуска четырех процессов на четырех ядрах. Мне бы хотелось увидеть развитие этих четырех процессов отдельно по разным направлениям. Однако я вижу, что прогресс записывается друг над другом в одну и ту же строку до тех пор, пока не завершится первый процесс.

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

from math import factorial
from decimal import Decimal, getcontext
from joblib import Parallel, delayed
from tqdm import trange
import time

def calc(n_digits):
# number of iterations
n = int(n_digits+1/14.181647462725477)
n = n if n >= 1 else 1

# set the number of digits for our numbers
getcontext().prec = n_digits+1

t    = Decimal(0)
pi   = Decimal(0)
deno = Decimal(0)

for k in trange(n):
t = ((-1)**k)*(factorial(6*k))*(13591409+545140134*k)
deno = factorial(3*k)*(factorial(k)**3)*(640320**(3*k))
pi += Decimal(t)/Decimal(deno)

pi = pi * Decimal(12) / Decimal(640320 ** Decimal(1.5))
pi = 1/pi

# no need to round
return pi

def parallel_with_joblib():
# Define the number of cores to use
n_cores = 4

# Define the tasks (e.g., compute first 100, 200, 300, 400 digits of pi)
tasks = [1200, 1700, 900, 1400]

# Run tasks in parallel
results = Parallel(n_jobs=n_cores)(delayed(calc)(n) for n in tasks)

if __name__ == "__main__":
parallel_with_joblib()
Я также хотел бы, чтобы четыре строки были помечены как «Задание 1 из 4», «Задание 2 из 4» и т. д.

Подробнее здесь: https://stackoverflow.com/questions/793 ... r-progress
Ответить

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

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

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

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

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