البرمجة

تنفيذ متوازي باستخدام tqdm و joblib

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:

python
from 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.

Note: Make sure to install the tqdm package if you haven’t already:

bash
pip install tqdm

المزيد من المعلومات

لإضافة المزيد من التفاصيل والتوضيح في استخدام tqdm في تنفيذ متوازي مع joblib، يمكننا تحسين الكود ليكون أكثر وضوحًا وشمولًا. هنا بعض النقاط التي يمكن توضيحها:

  1. استيراد tqdm و joblib: يجب استيراد وحدة tqdm و joblib في بداية الكود:

    python
    from tqdm import tqdm from joblib import Parallel, delayed
  2. تعريف الوظيفة التي سيتم تنفيذها متوازيًا: يجب تعريف الوظيفة التي ستنفذ متوازيًا ويتم احتساب التقدم لها. في هذا المثال، نقوم بتعريف وظيفة calculate_sqrt التي تأخذ i وتحسب جذر التربيع له.

    python
    def calculate_sqrt(i): return sqrt(i ** 2)
  3. تحديد عدد المهام المتوازية: يجب تحديد عدد المهام المتوازية التي تريد تنفيذها في الوقت نفسه. في هذا المثال، قمنا بتعيين num_jobs = 2 لتنفيذ مهمتين متوازيتين.

  4. استخدام tqdm لعرض شريط التقدم: يتم استخدام tqdm كسياق لإنشاء شريط تقدم. يجب تحديد إجمالي عدد الخطوات في الشريط (في هذا المثال، 10)، وسيتم تحديث الشريط لكل مهمة تنتهي.

    python
    with 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)
  5. طباعة النتائج: في النهاية، يمكنك طباعة النتائج بعد الانتهاء من تنفيذ جميع المهام المتوازية.

    python
    print(results)

باستخدام هذه النصائح، يمكنك تنفيذ ومراقبة عملياتك المتوازية بشكل فعال باستخدام tqdm و joblib في Python.

مقالات ذات صلة

زر الذهاب إلى الأعلى

المحتوى محمي من النسخ !!