عامل تخفيض السرعة
في علوم الحاسوب ، يُعدّ عامل الاختزال [ 1 ] نوعًا من العوامل الشائعة الاستخدام في البرمجة المتوازية لاختزال عناصر المصفوفة إلى نتيجة واحدة. عوامل الاختزال تجميعية ، وغالبًا (ولكن ليس بالضرورة) تبديلية . [ 2 ] [ 3 ] [ 4 ] يُعدّ اختزال مجموعات العناصر جزءًا لا يتجزأ من نماذج البرمجة مثل MapReduce ، حيث يُطبّق عامل الاختزال ( يُربط ) على جميع العناصر قبل اختزالها. تستخدم خوارزميات متوازية أخرى عوامل الاختزال كعمليات أساسية لحلّ مشاكل أكثر تعقيدًا. يمكن استخدام العديد من عوامل الاختزال للبثّ لتوزيع البيانات على جميع المعالجات.
نظرية
تُساعد عملية الاختزال على تقسيم المهمة إلى مهام جزئية متعددة عن طريق حساب النتائج الجزئية التي يمكن استخدامها للوصول إلى النتيجة النهائية. كما تُتيح تنفيذ بعض العمليات التسلسلية بالتوازي، مع تقليل عدد الخطوات اللازمة لتنفيذ هذه العمليات. تقوم عملية الاختزال بتخزين نتائج المهام الجزئية في نسخة خاصة من المتغير، ثم تُدمج هذه النسخ الخاصة في نسخة مشتركة في النهاية.
يكون العامل عامل اختزال إذا:
- يمكنه اختزال مصفوفة إلى قيمة عددية واحدة. [ 2 ]
- ينبغي أن تكون النتيجة النهائية قابلة للتحصيل من نتائج المهام الجزئية التي تم إنشاؤها. [ 2 ]
يتم استيفاء هذين الشرطين بالنسبة للمشغلين التبادليين والتجميعيين اللذين يتم تطبيقهما على جميع عناصر المصفوفة.
بعض العوامل التي تفي بهذه المتطلبات هي الجمع والضرب وبعض العوامل المنطقية (و، أو، إلخ).
عامل تخفيض السرعةيمكن تطبيقها في وقت ثابت على مجموعة إدخاللمتجهات معكل عنصر على حدة. والنتيجةإن جوهر العملية هو مزيج من العناصرويجب تخزينها في معالج الجذر المحدد في نهاية التنفيذ. إذا كانت النتيجةيجب أن يكون متاحًا في كل معالج بعد انتهاء الحساب، وغالبًا ما يُطلق عليه اسم Allreduce. يمكن لخوارزمية الاختزال الخطية التسلسلية المثلى تطبيق العامل بالتتابع من البداية إلى النهاية، مع استبدال متجهين دائمًا بنتيجة العملية المطبقة على جميع عناصرهما، وبالتالي إنشاء نسخة تحتوي على متجه أقل.حتى فقطيتبقى مجال للتحسين. لا يمكن للخوارزميات التسلسلية أن تحقق أداءً أفضل من الوقت الخطي، لكن الخوارزميات المتوازية تترك مجالاً للتحسين.
مثال
لنفترض أن لدينا مصفوفةيمكن حساب مجموع هذه المصفوفة بشكل تسلسلي عن طريق اختزال المصفوفة تباعًا إلى مجموع واحد باستخدام عامل الجمع (+). بدء عملية الجمع من بداية المصفوفة ينتج عنه: بما أن علامة الجمع (+) تبديلية وتجميعية، فهي عامل اختزال. لذا، يمكن إجراء هذا الاختزال بالتوازي باستخدام عدة نوى، حيث تحسب كل نواة مجموع مجموعة فرعية من المصفوفة، ثم يدمج عامل الاختزال النتائج. باستخدام اختزال الشجرة الثنائية، يمكن لأربع نوى إجراء العملية.،،، وثم يمكن لنواتين إجراء العمليات الحسابيةووأخيراً، تقوم نواة واحدة بالحساباتلذا، يمكن استخدام 4 أنوية إجمالاً لحساب المجموع فيخطوات بدلاً منالخطوات المطلوبة للإصدار التسلسلي. تحسب تقنية الشجرة الثنائية المتوازية هذهبالطبع، النتيجة واحدة، ولكن فقط بسبب خاصية التجميع في عامل الاختزال. أما خاصية التبديل في عامل الاختزال فتكون مهمة في حال وجود نواة رئيسية توزع العمل على عدة معالجات، إذ حينها يمكن أن تعود النتائج إلى المعالج الرئيسي بأي ترتيب. وتضمن خاصية التبديل أن تكون النتيجة واحدة.
يُعرّف معيار IEEE 754-2019 أربعة أنواع من عمليات اختزال المجموع وثلاثة أنواع من عمليات اختزال المنتج المُقاس. ولأن هذه العمليات هي عوامل اختزال، ينص المعيار على أنه "يجوز للتطبيقات الربط بأي ترتيب أو التقييم بأي صيغة أوسع". [ 5 ]
مثال غير صحيح
لا يُعدّ ضرب المصفوفات عملية اختزال، لأنها ليست عملية تبديلية. فلو سُمح للعمليات بإعادة نتائج ضرب المصفوفات إلى العملية الرئيسية بأي ترتيب، لكانت النتيجة النهائية التي تحسبها العملية الرئيسية خاطئة على الأرجح إذا وصلت النتائج بترتيب خاطئ. مع ذلك، تجدر الإشارة إلى أن ضرب المصفوفات عملية تجميعية، وبالتالي ستكون النتيجة صحيحة طالما تم تطبيق الترتيب الصحيح، كما هو الحال في تقنية اختزال الشجرة الثنائية.
الخوارزميات
خوارزميات الشجرة ذات الحدين
فيما يتعلق بالخوارزميات المتوازية، يوجد نموذجان رئيسيان للحوسبة المتوازية: آلة الوصول العشوائي المتوازية (PRAM) التي تُعدّ امتدادًا لذاكرة الوصول العشوائي (RAM) مع ذاكرة مشتركة بين وحدات المعالجة، والحاسوب المتوازي المتزامن الضخم الذي يأخذ الاتصال والتزامن في الحسبان. ولكل نموذج آثار مختلفة على التعقيد الزمني ، لذا سيتم عرض خوارزميتين.
خوارزمية PRAM
تمثل هذه الخوارزمية طريقة شائعة الاستخدام للتعامل مع المدخلات حيثهو قوة للعدد اثنين. غالبًا ما تُستخدم العملية العكسية لبث العناصر. [ 6 ] [ 7 ] [ 8 ]

- لليفعل
- للقم بذلك بالتوازي
- لوإذا كان نشطًا
- إذا بتليتم ضبطه بعد ذلك
- تعيينإلى غير نشط
- وإلا إذا
- إذا بتليتم ضبطه بعد ذلك
- لوإذا كان نشطًا
- للقم بذلك بالتوازي
يُعرَّف المؤثر الثنائي للمتجهات عنصرًا بعنصر بحيث
وتفترض الخوارزمية كذلك أنه في البدايةللجميعوهو قوة للعدد اثنين ويستخدم وحدات المعالجةفي كل تكرار، يصبح نصف وحدات المعالجة غير نشط ولا يساهم في العمليات الحسابية اللاحقة. يوضح الشكل تمثيلًا مرئيًا للخوارزمية باستخدام الجمع كعامل. تمثل الخطوط الرأسية وحدات المعالجة التي تُجرى فيها حسابات العناصر الموجودة على ذلك الخط. تقع عناصر الإدخال الثمانية في الأسفل، وتتوافق كل خطوة من خطوات الرسوم المتحركة مع خطوة متوازية واحدة في تنفيذ الخوارزمية. معالج نشطيقوم بتقييم العامل المحدد على العنصروهي تحتفظ حالياً بـأينهل الفهرس الأدنى يحقق، لهذا السببيصبح معالجًا غير نشط في الخطوة الحالية.وليست بالضرورة عناصر من مجموعة المدخلاتحيث يتم استبدال الحقول وإعادة استخدامها للتعبيرات التي تم تقييمها مسبقًا. ولتنسيق أدوار وحدات المعالجة في كل خطوة دون التسبب في اتصال إضافي بينها، يتم فهرسة وحدات المعالجة بأرقام منليتم استخدامه. ينظر كل معالج إلى- البت الأقل أهمية ويحدد ما إذا كان سيتم تعطيله أو حساب المعامل على العنصر نفسه والعنصر ذي الفهرس حيثالبت رقم -th غير مُفعّل. نمط الاتصال الأساسي للخوارزمية هو شجرة ذات الحدين، ومن هنا جاء اسم الخوارزمية.
فقط يحتفظ بالنتيجة في النهاية، ولذلك فهو المعالج الرئيسي. في عملية Allreduce، يجب توزيع النتيجة، ويمكن القيام بذلك عن طريق إضافة بث منعلاوة على ذلك، العدديقتصر عدد المعالجات على أن يكون قوة للعدد اثنين. ويمكن تجاوز هذا القيد بزيادة عدد المعالجات إلى القوة التالية للعدد اثنين. كما توجد خوارزميات مصممة خصيصًا لهذه الحالة. [ 9 ]
تحليل وقت التشغيل
يتم تنفيذ الحلقة الرئيسيةفي بعض الأحيان، يكون الوقت اللازم للجزء الذي يتم إنجازه بالتوازي فيكوحدة معالجة، إما أن تجمع متجهين أو تصبح غير نشطة. وبالتالي، فإن الوقت المتوازيبالنسبة لعربة الأطفال الرضع (PRAM)يمكن اختيار استراتيجية للتعامل مع تعارضات القراءة والكتابة بحيث تكون مقيدة مثل القراءة والكتابة الحصريتين (EREW). يؤدي ذلك إلى تسريع العملية.جزء من الخوارزمية هووبالتالي فإن الكفاءةتتأثر الكفاءة سلبًا لأن نصف وحدات المعالجة النشطة تصبح غير نشطة بعد كل خطوة، لذاتكون الوحدات نشطة في الخطوة.
خوارزمية الذاكرة الموزعة
على عكس خوارزمية PRAM، في نموذج الذاكرة الموزعة ، لا تتم مشاركة الذاكرة بين وحدات المعالجة، ويجب تبادل البيانات بشكل صريح بينها. لذا، يجب تبادل البيانات بشكل صريح بين الوحدات، كما هو موضح في الخوارزمية التالية.
- لليفعل
- للقم بذلك بالتوازي
- لوإذا كان نشطًا
- إذا بتليتم ضبطه بعد ذلك
- يرسلل
- تعيينإلى غير نشط
- وإلا إذا
- يستلم
- إذا بتليتم ضبطه بعد ذلك
- لوإذا كان نشطًا
- للقم بذلك بالتوازي
الفرق الوحيد بين الخوارزمية الموزعة وإصدار PRAM هو تضمين بدائيات الاتصال الصريحة، ويبقى مبدأ التشغيل كما هو.
تحليل وقت التشغيل
يؤدي التواصل بين الوحدات إلى بعض التكاليف الإضافية. يستخدم تحليل بسيط للخوارزمية نموذج BSP ويتضمن الوقتكان من الضروري بدء التواصل والوقت اللازم لإرسال بايت واحد. ثم يكون وقت التشغيل الناتج هو، مثليتم إرسال عناصر المتجه في كل تكرار ولها حجمإجمالاً.
خوارزمية خط الأنابيب

بالنسبة لنماذج الذاكرة الموزعة، قد يكون من المنطقي استخدام الاتصال المتسلسل. وهذا ينطبق بشكل خاص عندماصغير مقارنة بـعادةً، تقوم خطوط المعالجة الخطية بتقسيم البيانات أو المهام إلى أجزاء أصغر ومعالجتها على مراحل. وعلى عكس خوارزميات الشجرة الثنائية، تستخدم خوارزمية خطوط المعالجة حقيقة أن المتجهات ليست غير قابلة للفصل، ولكن يمكن تقييم العامل لعناصر منفردة: [ 10 ]
- لليفعل
- للقم بذلك بالتوازي
- لو
- يرسلل
- لو
- يستلممن
- لو
- للقم بذلك بالتوازي
من المهم ملاحظة أن عمليتي الإرسال والاستقبال يجب أن تُنفذا بالتزامن لكي تعمل الخوارزمية. يتم تخزين متجه النتائج فيفي النهاية. يُظهر الرسم المتحرك المصاحب تنفيذ الخوارزمية على متجهات بحجم أربعة باستخدام خمس وحدات معالجة. تُصوّر خطوتان من الرسم المتحرك خطوة تنفيذ متوازية واحدة.
تحليل وقت التشغيل
عدد الخطوات في التنفيذ المتوازي هو، فإنه يأخذخطوات حتى تتلقى وحدة المعالجة الأخيرة عنصرها الأول وعناصر إضافيةحتى يتم استلام جميع العناصر. لذلك، فإن وقت التشغيل في نموذج BSP هوبافتراض أنيمثل الحجم الإجمالي للبايتات للمتجه.
بالرغم منإذا كانت لها قيمة ثابتة، فمن الممكن تجميع عناصر المتجه معًا منطقيًا وتقليلهاعلى سبيل المثال، يمكن معالجة مسألة تتضمن متجهات بحجم أربعة عن طريق تقسيم المتجهات إلى أول عنصرين وآخر عنصرين، واللذين يتم إرسالهما وحسابهما معًا دائمًا. في هذه الحالة، يتم إرسال ضعف الحجم في كل خطوة، ولكن عدد الخطوات ينخفض إلى النصف تقريبًا. هذا يعني أن المعامليتم تخفيض حجمه إلى النصف، بينما يتم تقليل الحجم الإجمالي بالبايتيبقى كما هو. وقت التشغيليعتمد هذا النهج على قيمةوالتي يمكن تحسينها إذاومعروفة. إنها الأمثل لـبافتراض أن هذا يؤدي إلى حجم أصغرالذي يقسم الأصل.
التطبيقات
يُعدّ الاختزال أحد العمليات الجماعية الرئيسية المُطبقة في واجهة تمرير الرسائل ، حيث يُعتبر أداء الخوارزمية المُستخدمة بالغ الأهمية ويتم تقييمه باستمرار لمختلف حالات الاستخدام. [ 11 ] يمكن استخدام المُعاملات كمعلمات للعمليتين MPI_Reduce، MPI_Allreduceمع اختلاف أن النتيجة تكون متاحة في وحدة معالجة واحدة (الجذرية) أو في جميع وحدات المعالجة.
توفر OpenMP بندًا للاختزال لوصف كيفية تجميع نتائج العمليات المتوازية معًا. [ 12 ]
تعتمد تقنية MapReduce بشكل كبير على خوارزميات الاختزال الفعالة لمعالجة مجموعات البيانات الضخمة، حتى على مجموعات البيانات الكبيرة. [ 13 ] [ 14 ]
تستخدم بعض خوارزميات الفرز المتوازية عمليات الاختزال لتتمكن من التعامل مع مجموعات البيانات الكبيرة جدًا. [ 15 ]
انظر أيضاً
مراجع
- ↑ "بند التخفيض" . www.dartmouth.edu . كلية دارتموث. 23 مارس 2009. تم الاطلاع عليه بتاريخ 26 سبتمبر 2016 .
- 1 2 3 سوليهين، يان (2016). أساسيات بنية المعالجات متعددة النوى المتوازية . مطبعة سي آر سي. ص 75. ISBN 978-1-4822-1118-4.
- ↑ شاندرا، روهيت (2001). البرمجة المتوازية في OpenMP . مورغان كوفمان. الصفحات 59-77 . ISBN 1558606718.
- ↑ كول، موراي (2004). "إخراج الأسرار من الخزانة: بيان عملي للبرمجة المتوازية الهيكلية" (ملف PDF) . الحوسبة المتوازية . 30 (3): 393. doi : 10.1016/j.parco.2003.12.002 . hdl : 20.500.11820/8eb79d42-de83-4cfb-9faa-30d9ac3b3839 .
- ↑ جمعية مهندسي الكهرباء والإلكترونيات (IEEE) (22 يوليو 2019). "9.4 عمليات الاختزال". معيار IEEE للحسابات ذات الفاصلة العائمة . IEEE STD 754-2019. IEEE. الصفحات 1-84 . doi : 10.1109/IEEESTD.2019.8766229 . ISBN 978-1-5044-5924-2. IEEE Std 754-2019.
- ↑ بار-نوي، أموتز؛ كيبنيس، شلومو (1994). "بث رسائل متعددة في أنظمة الإرسال/الاستقبال المتزامنة". الرياضيات التطبيقية المنفصلة . 55 (2): 95-105 . doi : 10.1016/0166-218x(94)90001-9 .
- ↑ سانتوس، يونيس إي. (2002). "خوارزميات مثلى وفعالة للجمع والجمع البادئ على الأجهزة المتوازية". مجلة الحوسبة المتوازية والموزعة . 62 (4): 517-543 . doi : 10.1006/jpdc.2000.1698 .
- ↑ سلاتر، ب.؛ كوكاين، إ.؛ هيديتنييمي، س. (1981-11-01). "نشر المعلومات في الأشجار". مجلة SIAM للحوسبة . 10 (4): 692-701 . doi : 10.1137/0210052 . ISSN 0097-5397 .
- ↑ رابنسيفنر، رولف؛ تراف، جيسبر لارسون (19-09-2004). "خوارزميات اختزال أكثر كفاءة لعدد معالجات غير قوى العدد اثنين في أنظمة تمرير الرسائل المتوازية". التطورات الحديثة في الآلة الافتراضية المتوازية وواجهة تمرير الرسائل . سلسلة محاضرات في علوم الحاسوب. المجلد 3241. سبرينغر، برلين، هايدلبرغ. الصفحات 36-46 . doi : 10.1007/978-3-540-30218-6_13 . ISBN 9783540231639.
- ↑ بار-نوي، أ.؛ كيبنيس، س. (1994-09-01). "تصميم خوارزميات البث في النموذج البريدي لأنظمة تمرير الرسائل". نظرية الأنظمة الرياضية . 27 (5): 431-452 . CiteSeerX 10.1.1.54.2543 . doi : 10.1007/BF01184933 . ISSN 0025-5661 . S2CID 42798826 .
- ↑ بيشيفاك-غربوفيتش، يلينا؛ أنغسكون، ثارا؛ بوسيلكا، جورج؛ فاج، غراهام إي.؛ غابرييل، إدغار؛ دونغارا، جاك جيه. (2007-06-01). "تحليل أداء العمليات الجماعية لـ MPI". الحوسبة العنقودية . 10 (2): 127-143 . CiteSeerX 10.1.1.80.3867 . doi : 10.1007/s10586-007-0012-0 . ISSN 1386-7857 . S2CID 2142998 .
- ↑ "10.9. الاختزال - أمثلة على واجهة برمجة تطبيقات OpenMP" . passlab.github.io .
- ↑ لاميل، رالف (2008). "نموذج برمجة MapReduce من جوجل - إعادة النظر". مجلة علوم برمجة الحاسوب . 70 (1): 1-30 . doi : 10.1016/j.scico.2007.07.001 .
- ↑ سينجر، هيرميس؛ جيل-كوستا، فيرونيكا؛ أرانتيس، لوسيانا؛ ماركونديس، سيزار أ.س؛ مارين، ماوريسيو؛ ساتو، ليريا م؛ دا سيلفا، فابريسيو أ.ب (10 يونيو 2016). "تحليل تكلفة وقابلية التوسع لـ BSP لعمليات MapReduce". التزامن والحوسبة: الممارسة والتجربة . 28 (8): 2503-2527 . doi : 10.1002/cpe.3628 . hdl : 10533/147670 . ISSN 1532-0634 . S2CID 33645927 .
- ↑ أكستمان، مايكل؛ بينغمان، تيمو؛ ساندرز، بيتر؛ شولز، كريستيان (24-10-2014). "الفرز العملي المتوازي على نطاق واسع". arXiv : 1410.6754 [ cs.DS ].
- الحوسبة المتوازية
