ملخص

مكتمل
  • يمكن تصنيف برامج الكمبيوتر على أنها برامج متسلسلة، ومتوازية، وموزعة، ومتزامنة.
  • يتم تشغيل أي برنامج متسلسل بترتيب البرنامج على وحدة معالجة مركزية واحدة (أو، بشكل أكثر تحديداً، ذاكرة أساسية).
  • أي برنامج متزامن هو مجموعة من البرامج المتسلسلة التي تشترك في وحدة معالجة مركزية واحدة أو أكثر في الوقت المحدد أثناء التنفيذ.
  • أي برنامج متوازي هو مجموعة من البرامج المتسلسلة التي تتداخل في الوقت المحدد بواسطة التشغيل على وحدات المعالجة المركزية المنفصلة بالتوازي.
  • تسمى البرامج المتوازية التي تعمل على وحدات المعالجة المركزية المنفصلة على أجهزة مميزة متصلة بشبكة البرامج الموزعة.
  • مؤشر الترابط هو أصغر تسلسل من الإرشادات التي يمكن لأي نظام تشغيل إدارته من خلال المجدول الخاص به. وتشكل مؤشرات الترابط المتعددة عملية، تشترك جميعها في نفس مساحة العنوان الخاصة بالمعالج. وتشكل العمليات المتعددة مهمة، بينما يتم تجميع المهام المتعددة عادةً معاً كوظيفة.
  • البرمجة الموزعة أمر بالغ الأهمية لحل العديد من المشاكل، مثل أعباء العمل العلمية، وحساب البيانات الضخمة، وقواعد البيانات، ومحركات البحث.
  • تتحكم مخاوف متعددة في تصميم البرنامج الموزع للسحب؛ وهي نموذج البرمجة، ونموذج الحساب، وبنية البرنامج.
  • تتضمن نماذج البرمجة النموذجية نموذج الذاكرة المشتركة ونموذج تمرير الرسائل.
  • يفترض نموذج الذاكرة المشتركة وجود مساحة عنوان مشتركة، والتي يمكن الوصول إليها من قبل كل المهام. حيث تتصل المهام ببعضها البعض من خلال القراءة والكتابة إلى مساحة العنوان المشتركة هذه. ويجب أن يكون الاتصال بين المهام متزامناً بشكل صريح (باستخدام بنيات مثل الحواجز والإشارات والأقفال). وبرنامج OpenMP هو مثال على لغة برمجة بنموذج الذاكرة المشتركة.
  • في نموذج تمرير الرسائل، لا تشترك المهام في مساحة عنوان ويمكنها الاتصال ببعضها البعض فقط عن طريق إرسال الرسائل وتلقيها بشكل صريح. وMPI مثال على لغة برمجة بنموذج تمرير الرسائل.
  • يتم تصنيف نماذج البرمجة كذلك على أنها متزامنة وغير متزامنة، استناداً إلى تزامن المهام المختلفة التي تعمل بالتوازي. وتفرض نماذج البرمجة المتزامنة على كل مهام المكون العمل في وضع تزامن، بينما لا تقوم النماذج غير المتزامنة بذلك.
  • يمكن أيضاً تصنيف البرامج وفقاً لنوع التوازي الذي تجسده. فقد تكون إما متوازية البيانات أو متوازية الرسم البياني.
  • تركز نماذج توازي البيانات على توزيع البيانات عبر أجهزة متعددة أثناء تشغيل نفس التعليمات البرمجية على كل منها. وهذا النوع من النماذج يسمى أيضاً نموذج أحادي البرنامج متعدد البيانات (SPMD).
  • تركز نماذج توازي الرسم البياني على توزيع الحساب بدلاً من البيانات. وهذا النوع من النماذج يسمى أيضاً نموذج متعدد البرامج متعدد البيانات (MPMD).
  • يمكن ترتيب المهام في أي نموذج برمجة موزعة في نموذجين معماريين مختلفين: بنية غير متماثلة/رئيس-تابع وبنية متماثلة/نظير إلى نظير.
  • يتطلب الترتيب الرئيس-التابع أن يتم تعيين مهمة واحدة أو أكثر على وجه التحديد كمهام رئيسية، والتي ستنسق تنفيذ البرنامج بين المهام التابعة.
  • يتكون الترتيب نظير إلى نظير من مجموعة من المهام التي تكون كلها متساوية ولكنها تتطلب مخططات أكثر تعقيداً لتنظيم الحساب واتخاذ القرارات.
  • تتضمن التحديات الرئيسية في إنشاء برامج السحابة إدارة قابلية التوسع والاتصال وعدم التجانس والمزامنة والتسامح مع الأخطاء والجدولة.
  • لا يمكن تسريع البرامج بشكل لا نهائي بموجب قانون أمدال، الذي يعبر عن الحد الأقصى للسرعة في أي برنامج في صورة دالة خاصة بجزء من الوقت الذي يقضيه البرنامج في تنفيذ التعليمات البرمجية التي تكون تسلسلية في طبيعتها.
  • إدارة الاتصال بين المهام الموزعة بكفاءة تحدد شكل الأداء للعديد من التطبيقات. وتتضمن الاستراتيجيات لتحسين ازدحامات الاتصال في السحابة تجميع المهام ذات التواصل العالي وإدارة تقسيم البيانات بشكل فعال لتعيين البيانات إلى العقد الأقرب إليها.
  • تؤدي السحب إلى عدم التجانس فيما يتعلق بالأجهزة المادية الأساسية، والتي عادة ما تكون مختفية عن المستخدم النهائي من خلال الظاهرية. ويمكن للبرامج التي تعمل على السحابة، التي يمكن شرحها وضبطها استناداً إلى الأجهزة غير المتجانسة، أن تستفيد من حيث الأداء.
  • تقنيات المزامنة القوية ضرورة لا غنى عنها في البرمجة الموزعة للتعامل مع مشكلات مثل حالات التوقف التام.
  • التسامح مع الخطأ يشكل تحدياً خطيراً في البرمجة للسحب. حيث يجب أن تتوقع البرامج وتتعافى من حالات الفشل في البرامج والأجهزة أثناء تشغيلها في السحابة.
  • تأخذ تقنيات جدولة المهام والوظائف في الاعتبار الطبيعة الفريدة لموارد السحابة من أجل تحقيق أقصى قدر من الأداء.