سلام دوستان! تا حالا فکر کردید کامپیوتر شما چطور این همه کار رو با هم انجام میده؟ مثلاً همزمان دارید یه فیلم میبینید، آهنگ گوش میدید و یه فایل رو دانلود میکنید. این جادو نیست، بلکه یه تکنیکی به اسم Multi-Processing هست. توی این مقاله میخوایم ببینیم Multi-Processing چیه و چطور کار میکنه، خیلی ساده و روون!
به زبان ساده، Multi-Processing یعنی اینکه کامپیوتر شما به جای اینکه یه کار رو تموم کنه و بعد بره سراغ کار بعدی، میتونه چند تا کار رو به صورت همزمان انجام بده. البته منظورمون از "همزمان" این نیست که واقعاً دقیقاً توی یه لحظه دارن انجام میشن، بلکه خیلی سریع بین کارها جابجا میشه که ما حس میکنیم همزمان دارن پیش میرن.
حالا این Multi-Processing چطوری ممکن میشه؟ جوابش اینه که کامپیوترهای مدرن یه چیزی دارن به اسم CPU یا "واحد پردازش مرکزی". CPU قلب کامپیوتره و تمام محاسبات رو انجام میده. بعضی از CPU ها فقط یه هسته دارن (مثل یه آشپز که فقط یه دست داره)، ولی CPU های جدیدتر چند تا هسته دارن (مثل یه آشپز که چند تا دست داره!). هر کدوم از این هسته ها میتونن یه کار جداگانه رو انجام بدن. به این میگن Multi-Core Processing و یکی از راه های رسیدن به Multi-Processing هست.
تصور کنید دارید یه کیک میپزید. اگه یه آشپز داشته باشید (CPU با یه هسته)، باید همه کارها رو خودش انجام بده: اول آرد رو وزن کنه، بعد تخم مرغ ها رو بشکنه، بعد مواد رو با هم مخلوط کنه و در آخر کیک رو بپزه. ولی اگه چند تا آشپز داشته باشید (CPU با چند هسته)، میتونید کارها رو بینشون تقسیم کنید: یه آشپز آرد رو وزن میکنه، یه آشپز تخم مرغ ها رو میشکنه و الی آخر. اینطوری کار خیلی سریعتر پیش میره!
برای اینکه بهتر متوجه بشید، یه جدول براتون آماده کردیم که تفاوت بین Single-Core و Multi-Core Processing رو نشون میده:
ویژگی | Single-Core Processing | Multi-Core Processing |
---|---|---|
تعداد هسته ها | 1 | چندتا (2، 4، 8 و ...) |
توانایی انجام کارها | فقط یه کار در یه زمان | چندین کار در یه زمان (تقریباً) |
سرعت | پایین تر | بالاتر |
مناسب برای | کارهای سبک مثل مرور وب، تایپ کردن | کارهای سنگین مثل ویرایش ویدیو، بازی کردن |
حالا یه مثال بزنیم. فرض کنید یه برنامه دارید که باید یه فایل بزرگ رو پردازش کنه. اگه از Multi-Processing استفاده کنید، میتونید فایل رو به چند قسمت کوچکتر تقسیم کنید و هر قسمت رو به یه هسته CPU بدید تا پردازش کنه. اینطوری کار خیلی سریعتر تموم میشه. توی کد پایتون، میتونید از کتابخونه ای به اسم multiprocessing
استفاده کنید:
import multiprocessing
def process_part(data):
# کارهایی که باید روی هر قسمت انجام بشه
result = data * 2
return result
if __name__ == '__main__':
data = [1, 2, 3, 4, 5, 6, 7, 8]
pool = multiprocessing.Pool(processes=4) # استفاده از 4 هسته
results = pool.map(process_part, data)
pool.close()
pool.join()
print(results) # چاپ نتیجه
این فقط یه مثال ساده بود، ولی نشون میده که چطور میشه از Multi-Processing برای سریعتر کردن کارها استفاده کرد. البته استفاده از Multi-Processing یه سری چالش ها هم داره. مثلاً باید مراقب باشید که کارها با هم تداخل نداشته باشن و اطلاعات همدیگه رو خراب نکنن. این مبحث یه کمی پیشرفته تره و توی این مقاله نمیخوایم خیلی وارد جزئیات بشیم.
در اخر, برای اینکه خیلی مطمئن بشیم همه چی رو درس فهمیدی، یک نگاه به یه نکته مهم دیگه میندازیم: Multi-Processing فقط به CPU های چند هسته ای محدود نمیشه. حتی اگه CPU شما فقط یه هسته داشته باشه، باز هم میتونه با استفاده از تکنیک هایی مثل زمان بندی (Scheduling) چند تا کار رو به صورت همزمان انجام بده. توی این حالت، CPU خیلی سریع بین کارها جابجا میشه، به طوری که ما حس میکنیم همزمان دارن پیش میرن. این تکنیک بیشتر برای کارهایی مناسبه که خیلی CPU-intensive نیستن، مثل دانلود کردن فایل یا مرور وب.
در کل، Multi-Processing یه تکنیک خیلی مهم و کاربردیه که به کامپیوترها اجازه میده کارهای زیادی رو با سرعت بیشتری انجام بدن. امیدوارم این مقاله تونسته باشه به زبون ساده این مفهوم رو براتون توضیح بده. اگه سوالی داشتید، حتماً بپرسید!
Multi-Processing یعنی انجام چند کار به صورت همزمان. کامپیوترهای مدرن از CPU های چند هسته ای برای انجام این کار استفاده میکنن. استفاده از Multi-Processing میتونه سرعت انجام کارها رو به طرز چشمگیری افزایش بده، به خصوص برای کارهای سنگین.
Multi-Processing, CPU, Multi-Core, پردازش موازی, کامپیوتر, سرعت, کارایی
multiprocessing
استفاده کنید. قبل از شروع، حتماً مستندات مربوط به کتابخونه مورد نظرتون رو مطالعه کنید.امتیاز شما به این مطلب
امتیاز: 5 از 5 (مجموع 1 رای)
اولین نفری باشید که در مورد این مقاله نظر می دهید!
techfeed.ir© 2024 All rights reserved