ما سبب استخدام البرمجة الموزعة؟
يمكن لتقنيات التحليل على مستويات الخوارزمية والتعليمات البرمجية تحديد التوازي الممكن في البرامج المتسلسلة1 ومن حيث المبدأ، يمكن تحقيق التوازي لكل برنامج متسلسل. ومن ثم، يمكن تقسيم أي برنامج إلى أجزاء تسلسلية ومتوازية، كما هو موضح في الشكل 3. ويمكن تشغيل الأجزاء المتوازية بشكل متزامن على جهاز واحد أو توزيعها عبر الأجهزة. ويقوم المبرمجون عادة بتحويل البرامج المتسلسلة إلى إصدارات متوازية، بشكل رئيسي لتحقيق سرعة حسابية أعلى أو معدل نقل أعلى. وإذا كنا نعيش في عالم مثالي، فإن توازي أي برنامج متسلسل في أي برنامج موزع بطريقة n من شأنه أن ينتج انخفاضاً n من المرات في وقت التنفيذ. إن استخدام البرامج الموزعة بدلاً من البرامج المتسلسلة أمر بالغ الأهمية بالنسبة لمجالات متعددة، وخاصة العلوم. على سبيل المثال، يمكن أن تستغرق محاكاة طي بروتين واحد سنوات إذا تم تنفيذها بشكل تسلسلي ولكن تستغرق أياماً فقط إذا تم التنفيذ بالتوازي. وتعتمد وتيرة الاكتشاف العلمي في بعض المجالات على مدى السرعة التي تحل بها بعض المشاكل العلمية. وعلاوة على ذلك، بعض البرامج لديها قيود في الوقت الحقيقي بحيث إذا لم يتم إجراء الحساب بسرعة كافية، قد يتم اعتبار البرنامج بأكمله بلا فائدة. على سبيل المثال، يجب أن يتم التنبؤ باتجاه الأعاصير والزوابع باستخدام نموذج الطقس في الوقت المناسب، وإلا فإن التنبؤ سيكون بلا فائدة. في الواقع، اعتمد العلماء والمهندسون على البرامج الموزعة لعقود لحل المشاكل العلمية المهمة والمعقدة، مثل ميكانيكا الكم، والمحاكاة الفيزيائية، والتنبؤ بالطقس، واستكشاف النفط والغاز، والنمذجة الجزيئية، على سبيل المثال لا الحصر. ومن المحتمل أن يستمر هذا الاتجاه، على الأقل في المستقبل المنظور.
الشكل 3: البرنامج (أ) برنامج متسلسل مع أجزاء تسلسلية (S1) ومتوازية (P1). (ب) برنامج موازٍ/موزع يتوافق مع البرنامج المتسلسل في (أ)، حيث يمكن توزيع الأجزاء المتوازية إما عبر الأجهزة أو تشغيلها بشكل متزامن على جهاز واحد.
كما وجدت البرامج الموزعة تطبيقات واسعة تتجاوز نطاق العلم، مثل محركات البحث، وخوادم الويب، وقواعد البيانات. أحد الأمثلة على ذلك هو مشروع Folding@Home الذي يستخدم الحوسبة الموزعة على جميع أنواع الأنظمة، من أجهزة الكمبيوتر الفائقة، إلى أجهزة الكمبيوتر الشخصية لإجراء محاكاة ديناميكيات جزيئية لديناميات البروتين. ومن دون التوازي، لن يكون Folding@Home قادراً على الوصول إلى ما يقرب من العديد من الموارد الحسابية. على سبيل المثال، تشغيل برنامج Hadoop MapReduce2 على مثيل جهاز ظاهري واحد ليس فعالا مثل تشغيله على مجموعة واسعة النطاق من مثيلات الجهاز الظاهري. وبطبيعة الحال، فإن تثبيت المهام في وقت مبكر على السحابة يؤدي إلى خفض التكلفة، وهو هدف رئيسي لمستخدمي السحابة.
كما تساعد البرامج الموزعة على تخفيف ازدحامات النظام الفرعي. على سبيل المثال، تمثل أجهزة الإدخال/الإخراج، مثل الأقراص وبطاقات واجهة الشبكة، ازدحامات كبيرة من حيث عرض النطاق الترددي و/أو الأداء و/أو معدل النقل. ومن خلال توزيع العمل عبر الأجهزة، يمكن تقديم البيانات من عدة أقراص في وقت واحد، مما يوفر زيادة عرض النطاق الترددي للإدخال/الإخراج المجمع، وتحسين الأداء، وزيادة معدل النقل. وباختصار، تلعب البرامج الموزعة دوراً حاسماً في حل مشاكل الحوسبة المختلفة بسرعة والتخفيف من ازدحامات الموارد بشكل فعال. يعمل هذا الإجراء على تحسين الأداء، وزيادة معدل النقل، وتقليل التكلفة، خاصةً في السحابة.
المراجع
- ي. صليحين (2009). أساسيات هندسة الكمبيوتر المتوازية كتب Solihin
- أباتشي هادوب