پردازش موازی یک روش برنامهنویسی است که به برنامهنویسان اجازه میدهد که برنامههای خود را به گونهای طراحی کنند که قسمتهای مختلف آنها همزمان اجرا شوند و بدین ترتیب، زمان اجرای آنها کاهش یابد. در پایتون نیز امکان پردازش موازی وجود دارد. چندین روش برای پردازش موازی در پایتون وجود دارد که از جمله آنها میتوان به استفاده از روشهای موجود در کتابخانههای multiprocessing
، threading
و concurrent.futures
اشاره کرد. در زیر یک مثال ساده از هر یک از این روشها را ارائه میدهم:
۱. استفاده از کتابخانه multiprocessing
:
import 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
:
import 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
:
import concurrent.futures
def worker(num):
"""برای محاسبه مربع یک عدد"""
print(num*num)
if __name__ == '__main__':
# تعداد فرآیندها مشخص میشود
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(worker, range(10))
در این مثالها، تعداد مربع اعداد از ۰ تا ۹ به صورت همزمان محاسبه میشود. لازم به ذکر است که برای برنامههای واقعی و پیچیدهتر نیز میتوان از این روشها بهره برد و بهترین روش را بر اساس نیاز و شرایط مربوطه انتخاب کرد.
در خواست ابر رایانه شبیه سازان امیرکبیر