☀️ پردازش موازی در پایتون
در خواست ابر رایانه شبیه سازان امیرکبیر
پردازش موازی یک روش برنامهنویسی است که به برنامهنویسان اجازه میدهد که برنامههای خود را به گونهای طراحی کنند که قسمتهای مختلف آنها همزمان اجرا شوند و بدین ترتیب، زمان اجرای آنها کاهش یابد. در پایتون نیز امکان پردازش موازی وجود دارد. چندین روش برای پردازش موازی در پایتون وجود دارد که از جمله آنها میتوان به استفاده از روشهای موجود در کتابخانههای multiprocessing
، threading
و concurrent.futures
اشاره کرد. در زیر یک مثال ساده از هر یک از این روشها را ارائه میدهم:
۱. استفاده از کتابخانه multiprocessing
:
pythonimport multiprocessing
def worker(num):
"""برای محاسبه مربع یک عدد"""
print(num*num)
if __name__ == '__main__':
# تعداد پردازهها مشخص میشود
processes = []
for i in range(10):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()
for process in processes:
process.join()
۲. استفاده از کتابخانه threading
:
pythonimport threading
def worker(num):
"""برای محاسبه مربع یک عدد"""
print(num*num)
if __name__ == '__main__':
# تعداد رشتهها مشخص میشود
threads = []
for i in range(10):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
for thread in threads:
thread.join()
۳. استفاده از کتابخانه concurrent.futures
:
pythonimport concurrent.futures
def worker(num):
"""برای محاسبه مربع یک عدد"""
print(num*num)
if __name__ == '__main__':
# تعداد فرآیندها مشخص میشود
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(worker, range(10))
در این مثالها، تعداد مربع اعداد از ۰ تا ۹ به صورت همزمان محاسبه میشود. لازم به ذکر است که برای برنامههای واقعی و پیچیدهتر نیز میتوان از این روشها بهره برد و بهترین روش را بر اساس نیاز و شرایط مربوطه انتخاب کرد.
در اینجا میتوانید از پایتون بیشتر بدانید.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.