آخرین بروزرسانی 1 ماه قبل

چند پردازش (Multi-Processing) چیست؟

Multi-Processing چیست؟ کامپیوترها چطور کارهای زیادی رو همزمان انجام میدن؟

سلام دوستان! تا حالا فکر کردید کامپیوتر شما چطور این همه کار رو با هم انجام میده؟ مثلاً همزمان دارید یه فیلم میبینید، آهنگ گوش میدید و یه فایل رو دانلود میکنید. این جادو نیست، بلکه یه تکنیکی به اسم 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, پردازش موازی, کامپیوتر, سرعت, کارایی

Multi-Processing دقیقاً یعنی چی؟
یعنی اینکه یه کامپیوتر میتونه چند تا برنامه یا کار رو به ظاهر همزمان انجام بده. در واقع CPU بین این کارها خیلی سریع جابجا میشه.
تفاوت Multi-Processing و Multi-Threading چیه؟
Multi-Processing از چند تا پردازنده یا هسته پردازنده برای انجام کارها استفاده میکنه، در حالی که Multi-Threading از چند تا Thread (زیرمجموعه یه برنامه) در یه پردازنده استفاده میکنه. Multi-Processing معمولاً برای کارهای سنگین تر مناسبه، در حالیکه Multi-Threading برای کارهای سبک تر.
آیا Multi-Processing همیشه باعث افزایش سرعت میشه؟
نه لزوماً. استفاده از Multi-Processing یه سری هزینه ها هم داره، مثل overhead مربوط به مدیریت کارها و هماهنگی بین اونها. اگه تعداد هسته های CPU خیلی زیاد نباشه یا کارها خیلی سبک باشن، ممکنه Multi-Processing حتی باعث کاهش سرعت هم بشه.
چطور میتونم از Multi-Processing توی برنامه های خودم استفاده کنم؟
زبان های برنامه نویسی مختلف کتابخونه ها و ابزارهای مختلفی برای Multi-Processing دارن. مثلاً توی پایتون میتونید از کتابخونه multiprocessing استفاده کنید. قبل از شروع، حتماً مستندات مربوط به کتابخونه مورد نظرتون رو مطالعه کنید.
چه نوع کارهایی برای Multi-Processing مناسب تر هستن؟
کارهایی که میشه اونها رو به چند قسمت کوچکتر تقسیم کرد و هر قسمت رو به صورت جداگانه پردازش کرد، برای Multi-Processing خیلی مناسب هستن. مثلاً ویرایش ویدیو، پردازش تصاویر، محاسبات علمی و ...

به اشتراک گذاشتن این مطلب در شبکه های اجتماعی

امتیاز شما به این مطلب

امتیاز: 5 از 5 (مجموع 1 رای)

اولین نفری باشید که در مورد این مقاله نظر می دهید!

6212- V18
Terms & Conditions | Privacy Policy

techfeed.ir© 2024 All rights reserved