پردازش توزیع شده یا Distributed Computing چیست؟

می‌دانیم که به صورت سنتی، پردازش‌ها روی یک ماشین انجام می‌شود. هر روز از کامپیوترها، گوشی‌ها و دیگر دستگاه‌های پردازشی استفاده می‌کنیم یعنی ورودی به آنها می‌دهیم و خروجی می‌گیریم. اما در پروژه‌های بزرگ و پیچیده مانند پروژه‌های 3D Graphic و Video Rendering، حل مسایل پیچیده علمی، شبیه سازی ها، هوش مصنوعی، یادگیری ماشین، و در کل آنالیز بیگ دیتا و کلان داده این راهکارهای معمول و روزمره ناکارآمد هستند و قدرت پردازشی مورد نیاز شما را تامین نمی‌کنند. چه می‌شد اگر برای افزایش کارایی و بهره‌وری بتوان مولفه‌های نرم افزاری سیستم را بین چند کامپیوتر به اشتراک گذاشت؟ مدل Distributed Computing پاسخ شما را خواهد داد!
کامپیوتر، سرعت بسیار کمی در حل مسایل بزرگ دارد و اینجاست که Distributed Computing وارد عمل می‌شود. ایده ساده‌ای است. می‌توان مساله پیچیده و بزرگ را به چند قسمت کوچک، تقسیم و بین چند کامپیوتر توزیع کرد. پس هر کامپیوتر فقط یک قسمت کوچک از کار را که Job نامیده می‌شود باید انجام دهد. همه کامپیوترها به صورت هماهنگ کار می‌کنند و در نهایت، پردازش بزرگ را در زمان بسیار کمی به دست خواهید آورد.
نامناسب‌ترین Task ها برای Distributed Computing
این ایده از نظر مفهومی بسیار ساده است اما وقتی نوبت به انتخاب Task ای می‌رسد که واقعا مناسب Distributed Computing باشد، باید نکاتی را رعایت کرد.
برخی Task ها برای Distributed Computing خیلی مناسب نیستند. در ارتباط با برخی Task های پیچیده، ممکن است در قدم اول با تقسیم آن به قسمت‌های کوچک و توزیع آنها بین کامپیوترها مشکلاتی داشته باشید خصوصا اگر هر پردازش نیاز به نتیجه پردازش قبلی داشته باشد یعنی الگوی سریالی موجود، باعث می‌شود توزیع محاسبات، سخت‌تر شود.
مناسب‌ترین Task ها برای Distributed Computing
مناسب‌ترین Task ها برای Distributed Computing، کارها و Task های موازی هستند. چنین Task هایی نیاز به تعداد زیادی عملیات پیچیده دارند اما بسیاری از آنها به صورت مجزا و مستقل از بقیه انجام می‌شوند. یعنی می‌توانید هر یک از این Task ها را به سادگی توزیع کنید چون هر Task متکی بر نتیجه Task دیگر نیست. پس تمامی این Task ها در یک زمان و بدون نیاز به دیگر Task ها قابل انجام هستند.


توزیع Task ها در Distributed Computing چگونه انجام می‌شود؟
شما یک کامپیوترِ هاست و آرایه‌ای از کامپیوترها دارید که در Distributed Computing استفاده می‌شود. کامپیوترِ هاست همان کامپیوتری است که شما Task را به آن می‌دهید و برنامه اصلی را اجرا می‌کنید. این کامپیوتر، کار تقسیم به بخش‌های کوچک را انجام می‌دهد و سپس این Task ها یا Job ها را بین بقیه کامپیوترها توطیع می‌کند. هر کامپیوتر، پردازش این Job ها را انجام داده و نتیجه را برمی‌گرداند. کامپیوترِ هاست، نتیه این Task های مجزا را می‌گیرد و با قرار دادن همه آنها در کنار هم، نتیجه نهایی را ایجاد می‌کند.
ارتباطات بین کامپیوترها اغلب روی شبکه‌ای اتفاق می‌افتد که مشابه آن را در منازل خود داریم اما ممکن است این ارتباطات به وسیله باس روی یک بورد اتفاق بیفتد.
نکته جالبی که باید به آن توجه شود این است که آرایه کامپیوترها که نتیجه این پردازش توزیع شده را تولید می‌کنند، ممکن است کامپیوتری قدیمی باشند یعنی می‌توان از کامپیوترهای دور و بر خود که چندان استفاده‌ای برایتان ندارند به عنوان جزیی از شبکه Distributed Computing یا پردازش توزیع شده استفاده و تنظیم کنید.
آشنایی با پلتفرم هادوپ یا Hadoop
هادوپ یا Hadoop یکی از پلتفرم های معروف و متن باز است که در سیستم های توزیع شده یا Distributed System ها استفاده می‌شود. در پروژه‌های بزرگ باعث کاهش هزینه و کاهش زمان لازم برای رسیدن به نتیجه می‌شود که البته از مزایای Distributed Computing است. هادوپ از الگوریتم نگاشت-کاهش یا MapReduce استفاده می‌کند.
  • 23 بهمن 1397
  • modir
  • 253
طراحی سایت : رسانه گستر © 2002 - 2020