لا أعتقد حقًا أن هذين العنصرين الأساسيين يرقيان حقًا إلى ما يبدو أنهما يجب أن يشيروا إليه في سياق "قائمة انتظار المهام الموزعة". أفهم سبب رغبة شخص ما في وظائف الخريطة والخريطة نظرًا لأنهم ينشئون مهمة واحدة ، لكنني لا أحصل على الميزة لهم حقًا لأنه سيكون من التافه أن يكتب المستخدم الوظيفة لمجرد دعم قائمة المدخلات . بالنسبة لي ، فإن مصطلح "خريطة" هنا يشير إلى شيء مثل خوارزمية لتقليل الخريطة وهذا بالتأكيد ليس كذلك. الوتر هو شكل فعال من أشكال تقليل الخريطة مما يجعل التسمية محيرة.
أعتقد أن تسمية الوتر يجب أن تظل ثابتة لأنها تكفي منذ ذلك الحين ، ولكن وجود خريطة وخريطة ركيزة يلمح إلى وجود وظيفة IMO لتقليل الخريطة.
http://docs.python.org/2/library/multiprocessing.html#using -a-pool-of-working
group
هي وظيفة الخريطة الموزعة.
تم استخدام مصطلح الخريطة قبل وقت طويل من كتابة Google لورقة MapReduce ، ولا أعتقد أن أي شخص مرتبك بالمصطلح عند استخدامه في haskell أو clojure. يتم التعبير عن الوظيفة تمامًا باستخدام مصطلح "الخريطة" ، ولا أعتقد أن هناك أي بدائل طبيعية.
تعد العناصر الأولية للقماش أيضًا جميع الأسماء (التوقيع ، المجموعة ، الوتر ، السلسلة) ، ولكن يتم استخدام الخريطة كفعل (خريطة مهمة) ، وليس الشيء الذي يُرى السائحون به أحيانًا.
لن تحتوي إطارات عمل MapReduce عادةً على خريطة غير متصلة وتقليل المراحل ، بدلاً من ذلك
لديك عملية mapreduce تأخذ Mapper و Reducer ، حيث يتم دفق البيانات المعالجة إلى المخفض. في الواقع ، مجرد وجود خريطة () وتقليل () لا يعتبر كافياً لـ MapReduce.
لذا فإن chord
ليس حقًا شكلاً من أشكال تقليل الخريطة ، بل هو نسخة موزعة من الحاجز ، والاسم
مأخوذ مباشرة من هذا الحاجز في Cω.
لا يتم أخذ group
من أي مكان ، لكن العملية هي نفسها
كما يطلق عليها غالبًا "الخريطة المتوازية" في أدبيات التزامن ، فقط في شكل موزع.
لذلك ، عادةً ما يُعتبر map
متتاليًا وليس متوازيًا
وهي مفيدة لأنها تتيح لك تقليل دقة العملية ببساطة عن طريق استخدام task.map(list)
بدلاً من group(task.s(i) for i in list)
باستثناء أن task.map(list)
لا يسمح بتشغيل المهام بشكل متزامن. تعمل جميع المهام على نفس العامل واحدة تلو الأخرى. إذا لم يكن الأمر كذلك ، يمكنني فتح مشكلة جديدة.
التعليق الأكثر فائدة
group
هي وظيفة الخريطة الموزعة.تم استخدام مصطلح الخريطة قبل وقت طويل من كتابة Google لورقة MapReduce ، ولا أعتقد أن أي شخص مرتبك بالمصطلح عند استخدامه في haskell أو clojure. يتم التعبير عن الوظيفة تمامًا باستخدام مصطلح "الخريطة" ، ولا أعتقد أن هناك أي بدائل طبيعية.
تعد العناصر الأولية للقماش أيضًا جميع الأسماء (التوقيع ، المجموعة ، الوتر ، السلسلة) ، ولكن يتم استخدام الخريطة كفعل (خريطة مهمة) ، وليس الشيء الذي يُرى السائحون به أحيانًا.
لن تحتوي إطارات عمل MapReduce عادةً على خريطة غير متصلة وتقليل المراحل ، بدلاً من ذلك
لديك عملية mapreduce تأخذ Mapper و Reducer ، حيث يتم دفق البيانات المعالجة إلى المخفض. في الواقع ، مجرد وجود خريطة () وتقليل () لا يعتبر كافياً لـ MapReduce.
لذا فإن
chord
ليس حقًا شكلاً من أشكال تقليل الخريطة ، بل هو نسخة موزعة من الحاجز ، والاسممأخوذ مباشرة من هذا الحاجز في Cω.
لا يتم أخذ
group
من أي مكان ، لكن العملية هي نفسهاكما يطلق عليها غالبًا "الخريطة المتوازية" في أدبيات التزامن ، فقط في شكل موزع.
لذلك ، عادةً ما يُعتبر
map
متتاليًا وليس متوازيًا