To use tqdm in a parallel execution with joblib, you can use the joblib.Parallel
context manager along with tqdm
to create a progress bar. Here’s an example:
pythonfrom math import sqrt
from joblib import Parallel, delayed
from tqdm import tqdm
# Define the function to be executed in parallel
def calculate_sqrt(i):
return sqrt(i ** 2)
# Specify the number of parallel jobs
num_jobs = 2
# Use joblib.Parallel as a context manager with tqdm
with tqdm(total=10) as pbar:
with Parallel(n_jobs=num_jobs) as parallel:
# Call the calculate_sqrt function for each i in range(10)
# Use delayed to defer the execution of calculate_sqrt
results = parallel(delayed(calculate_sqrt)(i) for i in range(10))
# Update the progress bar for each completed job
for _ in parallel(results):
pbar.update(1)
# Print the results
print(results)
In this example, joblib.Parallel
is used as a context manager, and tqdm
is used to create a progress bar with a total of 10 steps (corresponding to the range of values). As each job is completed, the progress bar is updated accordingly. Finally, the results are printed.
-
تخصيص مظهر شريط التقدم في تطبيقات Android06/02/2024
-
تحسين استقرار Parallel.ForEach25/03/2024
-
كيفية تعطيل شريط التقدم في npm04/03/2024
Note: Make sure to install the tqdm
package if you haven’t already:
bashpip install tqdm
المزيد من المعلومات
لإضافة المزيد من التفاصيل والتوضيح في استخدام tqdm في تنفيذ متوازي مع joblib، يمكننا تحسين الكود ليكون أكثر وضوحًا وشمولًا. هنا بعض النقاط التي يمكن توضيحها:
-
استيراد tqdm و joblib: يجب استيراد وحدة tqdm و joblib في بداية الكود:
pythonfrom tqdm import tqdm from joblib import Parallel, delayed
-
تعريف الوظيفة التي سيتم تنفيذها متوازيًا: يجب تعريف الوظيفة التي ستنفذ متوازيًا ويتم احتساب التقدم لها. في هذا المثال، نقوم بتعريف وظيفة
calculate_sqrt
التي تأخذi
وتحسب جذر التربيع له.pythondef calculate_sqrt(i): return sqrt(i ** 2)
-
تحديد عدد المهام المتوازية: يجب تحديد عدد المهام المتوازية التي تريد تنفيذها في الوقت نفسه. في هذا المثال، قمنا بتعيين
num_jobs = 2
لتنفيذ مهمتين متوازيتين. -
استخدام tqdm لعرض شريط التقدم: يتم استخدام
tqdm
كسياق لإنشاء شريط تقدم. يجب تحديد إجمالي عدد الخطوات في الشريط (في هذا المثال، 10)، وسيتم تحديث الشريط لكل مهمة تنتهي.pythonwith tqdm(total=10) as pbar: # تنفيذ المهام المتوازية باستخدام joblib with Parallel(n_jobs=num_jobs) as parallel: results = parallel(delayed(calculate_sqrt)(i) for i in range(10)) for _ in parallel(results): pbar.update(1)
-
طباعة النتائج: في النهاية، يمكنك طباعة النتائج بعد الانتهاء من تنفيذ جميع المهام المتوازية.
pythonprint(results)
باستخدام هذه النصائح، يمكنك تنفيذ ومراقبة عملياتك المتوازية بشكل فعال باستخدام tqdm و joblib في Python.