خوارزمية كانون
في علوم الحاسوب ، تُعد خوارزمية كانون خوارزمية موزعة لضرب المصفوفات للشبكات ثنائية الأبعاد، وقد وصفها لين إليوت كانون لأول مرة عام 1969. [ 1 ] [ 2 ]
يُعدّ هذا الأسلوب مناسبًا بشكل خاص لأجهزة الكمبيوتر المصممة على شبكة N × N. [ 3 ] في حين أن خوارزمية كانون تعمل بكفاءة في الشبكات ثنائية الأبعاد المتجانسة، فقد تبيّن أن توسيعها لتشمل الشبكات ثنائية الأبعاد غير المتجانسة أمرٌ صعب. [ 4 ]
تتمثل الميزة الرئيسية للخوارزمية في أن متطلبات التخزين الخاصة بها تظل ثابتة ولا تعتمد على عدد المعالجات. [ 2 ]
تُعدّ خوارزمية ضرب المصفوفات الشاملة القابلة للتوسع (SUMMA) [ 5 ] خوارزمية أكثر عملية تتطلب مساحة عمل أقل وتتجاوز الحاجة إلى شبكة مربعة ثنائية الأبعاد. وهي مستخدمة في مكتبات ScaLAPACK و PLAPACK و Elemental .
نظرة عامة على الخوارزمية
عند ضرب مصفوفتين من الرتبة n × n ، A و B، نحتاج إلى n × n عقدة معالجة p مرتبة في شبكة ثنائية الأبعاد.
// PE(i , j) k := (i + j) mod N; a := a[i][k]; b := b[k][j]; c[i][j] := 0; for (l := 0; l < N; l++) { c[i][j] := c[i][j] + a * b; في وقت واحد { أرسل a إلى PE(i, (j + N − 1) mod N)؛ أرسل b إلى PE((i + N − 1) mod N, j)؛ } مع { استلام a' من PE(i, (j + 1) mod N)؛ استلام b' من PE((i + 1) mod N, j ); } a := a'; b := b'; }نحتاج إلى تحديد قيمة k في كل تكرار لكل عنصر معالجة (PE) حتى لا تصل المعالجات إلى نفس البيانات لإجراء العمليات الحسابية..
لذلك، يجب أن تبدأ المعالجات في نفس الصف/العمود عملية الجمع بمؤشرات مختلفة. على سبيل المثال، إذا قامت PE(0,0) بحسابفي الخطوة الأولى، يختار PE(0,1)أولاً. إن اختيار k := (i + j) mod n لـ PE(i,j) يفي بهذا القيد للخطوة الأولى.
في الخطوة الأولى، نقوم بتوزيع مصفوفات الإدخال بين المعالجات بناءً على القاعدة السابقة.
في التكرارات التالية، نختار قيمة جديدة لـ k' := (k + 1) mod n لكل معالج. بهذه الطريقة، سيستمر كل معالج في الوصول إلى قيم مختلفة للمصفوفات. وبالتالي، تكون البيانات المطلوبة موجودة دائمًا لدى المعالجات المجاورة. يحتاج المعالج PE(i,j) حينها إلىمن PE(i,(j + 1) mod n) ومن PE((i + 1) mod n,j) للخطوة التالية. هذا يعني أنيجب تمريرها بشكل دوري إلى اليسار وأيضًابشكل دوري تصاعدي. تُجمع نتائج عمليات الضرب كالمعتاد. بعد n خطوة، يكون كل معالج قد حسب جميعمرة واحدة، ومجموعها هو المطلوب..
بعد التوزيع الأولي لكل معالج، لا يلزم سوى تخزين بيانات الخطوة التالية. وهذه هي النتيجة الوسيطة للمجموع السابق، وهي أو أوهذا يعني أن المصفوفات الثلاث تحتاج فقط إلى التخزين في الذاكرة بمجرد توزيعها بالتساوي عبر المعالجات.
تعميم
عمليًا، لدينا عدد أقل بكثير من المعالجات مقارنةً بعناصر المصفوفة. يمكننا استبدال عناصر المصفوفة بمصفوفات فرعية، بحيث يعالج كل معالج عددًا أكبر من القيم. يتحول الضرب والجمع القياسيان إلى ضرب وجمع مصفوفات متسلسلين. سيكون عرض وارتفاع المصفوفات الفرعية.
زمن تشغيل الخوارزمية هو ، أينيمثل وقت التوزيع الأولي للمصفوفات في الخطوة الأولى،وهي عملية حساب النتائج الوسيطة وويمثل الوقت اللازم لإنشاء اتصال ونقل البايت على التوالي.
من عيوب هذه الخوارزمية كثرة الاتصالات وصغر حجم الرسائل. من الأفضل لو أمكن نقل كمية أكبر من البيانات في كل رسالة.
انظر أيضاً
مراجع
- ↑ كانون، لين إليوت (14 يوليو 1969). حاسوب خلوي لتنفيذ خوارزمية مرشح كالمان (دكتوراه). جامعة ولاية مونتانا.
- 1 2 غوبتا، هـ.؛ سادايابان، ب. (1994). ضرب المصفوفات بكفاءة الاتصال على المكعبات الفائقة (تقرير فني). مختبر ستانفورد للمعلومات.
- ↑ "4.2 ضرب المصفوفات على جهاز ذاكرة موزعة" . الجبر الخطي العددي . مشروع تعليم علوم الحاسوب. 1991-1995. مؤرشف من الأصل في 1 أبريل 2018.
- ^ بينو ، جان فرانسوا (أكتوبر 2010). جدولة مدركة للاتصالات على منصات العمل الرئيسية غير المتجانسة (دكتوراه). المدرسة العادية العليا في ليون. هاتف-00530131.
- ↑ فان دي جين، روبرت أ.؛ واتس، جيريل (أبريل 1997). "سوما: خوارزمية ضرب المصفوفات الشاملة القابلة للتوسع" . التزامن: الممارسة والتجربة . 9 (4): 255-274 . doi : 10.1002/(SICI)1096-9128(199704)9:4 < 255::AID-CPE250 > 3.0.CO ; 2-2 .
روابط خارجية
- ديميل، ج. (1996). "المحاضرة 9: ضرب المصفوفات المتوازي" . تطبيقات الحواسيب المتوازية CS267 . جامعة كاليفورنيا، بيركلي.
- هاروود، آرون (2003). "ضرب المصفوفات §خوارزمية كانون" . 433-498 الشبكات وتعقيد المعالجة المتوازية . جامعة ملبورن. مؤرشف من الأصل في 3 يوليو 2007.
- الخوارزميات الموزعة
- خوارزميات ضرب المصفوفات
- شبكة متداخلة
