سؤال

أنا في البرمجة المتوازية وأنا أدرس MAPREDUCE وغيرها من الخوارزميات الموزعة. هل من الأفضل تعلم MAPRREDUCE أم أن هناك خوارزمية عامة أكثر أن تخدمني أفضل؟

هل كانت مفيدة؟

المحلول

ذلك يعتمد على ما تنوي استخدام خوارزمية (ق) ل.

mapreduce. هو نموذج برمجة معمم ومفيد للغاية للغاية. (جوجل قواعد العديد من عمليات الفهرسة الداخلية لها). تعلم أنه بالتأكيد لن تفعل لك أي ضرر.

MapReduce هو نموذج برمجة وتنفيذ مرتبط بمعالجة وإنشاء مجموعات بيانات كبيرة. يحدد المستخدمون وظيفة الخريطة التي تعالج زوجا رئيسيا / قيمة لإنشاء مجموعة من أزواج المفاتيح / القيمة الوسيطة، وستقل وظيفة تقليم جميع القيم المتوسطة المرتبطة بالمفتاح الوسيط نفسه. العديد من المهام العالمية الحقيقية معبرية في هذا النموذج، كما هو موضح في الورقة.

أهم مفهوم المعالجة الموازية للتعلم أمر بسيط للغاية: المزامنة هو ما تحتاجه لتقليله إذا كنت ترغب في الحصول على تسريع فعال.

يسعى من اجل:

  • حبيبات كبيرة من قطع العمل
  • الاحتفاظ بحجم العمل قطع شافعة في الحجم
  • تقليل عدد خطوات المزامنة

نصائح أخرى

إذا كنت ترغب في تعلم شيء ما حول المعالجة الموازية، فأنا لا أعتقد أن اختيار خوارزمية واحدة ستوفر لك رؤى كبيرة.

mapreduce هو تكوين map و reduce عملية. هذه هي الوظائف العليا النموذجية التي توفر اللغات الوظيفية.

أوصي أولا أن تتعلم لغة وظيفية، على سبيل المثال مخطط أو عباءة. بالنسبة للمخطط، يبدو أن "هيكل وتفسير برامج الكمبيوتر" هو كل الغضب.

بالنسبة للعديد من الخوارزميات التسلسلية "العادية"، هناك إصدارات متوازية، يمكن أن يتم تصميم بعضها مع Map Reduce. بالتأكيد تعلم MAPREDUCE، لأنها جديدة ومثيرة، ولكن مجرد أداة أخرى في صندوق الأدوات الخاص بك، وبالتأكيد يمكنك معرفة المزيد، حيث توجد قيود على Mapreduce (وستعرف عليها).

للحصول على تقدير جيد للبرمجة الموازية، يجب عليك دراسة العديد من النماذج من البرمجة الموازية وليس مجرد إطار برمجة متوازي. يجب عليك دراسة كلا من الذاكرة المشتركة (مثل pthreads) ويتم تمرير الرسائل (مثل MPI و MapReduce) للبرمجة الموازية.

MPI هي أداة للأغراض العامة للغاية لإنشاء تطبيقات تمرير الرسائل. إذا كنت تستخدم MPI على نطاق واسع، فستجد أن بعض عناصر برامج MPI تكرر مرارا وتكرارا، مثل إعداد عملية "ماجستير" تقوم بها الأقسام إلى عمليات "العامل"، وتجميع النتائج. MapReduce هو تطبيق معين لإطار عمل الرسائل ويوفر نموذج برمجة أبسط من MPI. يرعى الكود الذي يحدث بشكل متكرر في التطبيقات الموازية، والأهم من ذلك، يعتني بهذه القضايا مثل استرداد الفشل وعالم البيانات. يحاول هدوب المفتوئة تحاكي مابيدوس.

أعتقد أنك ستكون أكثر قدرة على تقدير ما يفعله Map لا يمكن أن تؤذي تعلم هدوب، ولكن عندما يتعلق الأمر بالمعرفة العامة بالبرمجة الموازية، فمن الجيد أن تكون على دراية بأساسيات مثل Pthreads و OpenMP و MPI.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top