ذاكرة خارجية متوازية

نموذج PEM

في علم الحاسوب، يُعدّ نموذج الذاكرة الخارجية المتوازية (PEM) آلةً مجردةً ذات ذاكرة خارجية، مُدركةً لذاكرة التخزين المؤقت . [ 1 ] وهو يُشابه نموذج الذاكرة الخارجية أحادي المعالج (EM) في الحوسبة المتوازية. وبالمثل، يُشابه نموذج الذاكرة الخارجية المتوازية (PEM) في الحوسبة المتوازية، مُدركًا لذاكرة التخزين المؤقت ، آلة الوصول العشوائي المتوازية (PRAM). يتكون نموذج PEM من عدد من المعالجات، بالإضافة إلى ذاكرات التخزين المؤقت الخاصة بها وذاكرة رئيسية مشتركة.

نموذج

تعريف

يُعد نموذج PEM [ 1 ] مزيجًا من نموذج EM ونموذج PRAM. وهو نموذج حسابي يتكون منP{\displaystyle P}معالجات وهيكل ذاكرة ثنائي المستوى . يتكون هيكل الذاكرة هذا من ذاكرة خارجية كبيرة (ذاكرة رئيسية) بحجمشمال{\displaystyle N}وP{\displaystyle P}ذاكرة داخلية صغيرة (ذاكرة تخزين مؤقتة) . تتشارك المعالجات الذاكرة الرئيسية. كل ذاكرة تخزين مؤقتة خاصة بمعالج واحد فقط. لا يمكن لمعالج الوصول إلى ذاكرة تخزين مؤقتة لمعالج آخر. تتميز ذاكرات التخزين المؤقتة بحجم محدد.م{\displaystyle M}والتي يتم تقسيمها إلى كتل بحجمب{\displaystyle B}لا تستطيع المعالجات إجراء عمليات إلا على البيانات الموجودة في ذاكرتها المؤقتة (الذاكرة المخبئية). ويمكن نقل البيانات بين الذاكرة الرئيسية والذاكرة المؤقتة على شكل كتل بحجم معين.ب{\displaystyle B}.

تعقيد الإدخال/الإخراج

مقياس تعقيد نموذج PEM هو تعقيد الإدخال/الإخراج، [ 1 ] والذي يحدد عدد عمليات نقل الكتل المتوازية بين الذاكرة الرئيسية وذاكرة التخزين المؤقت. خلال عملية نقل كتلة متوازية، يمكن لكل معالج نقل كتلة واحدة. لذا، إذاP{\displaystyle P}تقوم المعالجات بتحميل كتلة بيانات بحجم معين بالتوازيب{\displaystyle B}تحويل الذاكرة الرئيسية إلى ذاكرات تخزين مؤقتة، يُعتبر ذلك تعقيدًا في عمليات الإدخال/الإخراج.يا(1){\displaystyle O(1)}لايا(P){\displaystyle O(P)}ينبغي للبرنامج في نموذج PEM أن يقلل من نقل البيانات بين الذاكرة الرئيسية وذاكرة التخزين المؤقت وأن يعمل قدر الإمكان على البيانات الموجودة في ذاكرة التخزين المؤقت.

تعارضات القراءة/الكتابة

في نموذج PEM، لا توجد شبكة اتصال مباشرة بين المعالجات P. يتعين على المعالجات التواصل بشكل غير مباشر عبر الذاكرة الرئيسية. إذا حاولت عدة معالجات الوصول إلى نفس الكتلة في الذاكرة الرئيسية في وقت واحد، فستحدث تعارضات في القراءة/الكتابة [ 1 ] . وكما هو الحال في نموذج PRAM، تُدرس ثلاثة اختلافات لهذه المشكلة:

  • القراءة والكتابة المتزامنة (CRCW): يمكن قراءة وكتابة نفس الكتلة في الذاكرة الرئيسية بواسطة معالجات متعددة في وقت واحد.
  • القراءة والكتابة المتزامنة الحصرية (CREW): يمكن قراءة نفس الكتلة في الذاكرة الرئيسية بواسطة معالجات متعددة في وقت واحد. ولا يمكن إلا لمعالج واحد الكتابة إلى كتلة في وقت واحد.
  • القراءة والكتابة الحصريتان (EREW): لا يمكن قراءة أو كتابة نفس الكتلة في الذاكرة الرئيسية بواسطة معالجات متعددة في وقت واحد. يمكن لمعالج واحد فقط الوصول إلى الكتلة في كل مرة.

تحل الخوارزميتان التاليتان [ 1 ] مشكلة CREW و EREW إذاPب{\displaystyle P\leq B}تقوم المعالجات بالكتابة إلى نفس الكتلة في وقت واحد. يتمثل أحد الأساليب الأولى في تسلسل عمليات الكتابة. حيث يقوم معالج واحد فقط بالكتابة إلى الكتلة بعد الآخر. ينتج عن ذلك إجماليP{\displaystyle P}عمليات نقل الكتل المتوازية. ويتطلب النهج الثاني...يا(سجل(P)){\displaystyle O(\log(P))}عمليات نقل متوازية للكتل، وكتلة إضافية لكل معالج. الفكرة الرئيسية هي جدولة عمليات الكتابة على شكل شجرة ثنائية ، ودمج البيانات تدريجيًا في كتلة واحدة. في الجولة الأولىP{\displaystyle P}تقوم المعالجات بدمج كتلها فيP/2{\displaystyle P/2}كتل. ثمP/2{\displaystyle P/2}تجمع المعالجات بينP/2{\displaystyle P/2}كتل إلىP/4{\displaystyle P/4}وتستمر هذه العملية حتى يتم دمج جميع البيانات في كتلة واحدة.

مقارنة بالنماذج الأخرى

نموذجمتعدد النوىيدعم التخزين المؤقت
ذاكرة الوصول العشوائي (RAM)لالا
آلة الوصول العشوائي المتوازية (PRAM)نعملا
الذاكرة الخارجية (EM)لانعم
الذاكرة الخارجية المتوازية (PEM)نعمنعم

أمثلة

تقسيم متعدد الاتجاهات

يتركم={م1،...،مد-1}{\displaystyle M=\{m_{1},...,m_{d-1}\}}ليكن متجهًا من d-1 محاور مرتبة ترتيبًا تصاعديًا. ولتكن A مجموعة غير مرتبة من N عنصرًا. التقسيم d-way [ 1 ] لـ A هو مجموعةΠ={أ1،...،أد}{\displaystyle \Pi =\{A_{1},...,A_{d}\}}، أينأنا=1دأأنا=أ{\displaystyle \cup _{i=1}^{d}A_{i}=A}وأأناأج={\displaystyle A_{i}\cap A_{j}=\emptyset }ل1أنا<جد{\displaystyle 1\leq i<j\leq d}.أأنا{\displaystyle A_{i}}يُطلق عليه اسم الحاوية رقم i. عدد العناصر فيأأنا{\displaystyle A_{i}}أكبر منمأنا-1{\displaystyle m_{i-1}}وأصغر منمأنا2{\displaystyle m_{i}^{2}}في الخوارزمية التالية [ 1 ] ، يتم تقسيم المدخلات إلى أجزاء متجاورة بحجم N/PS1،...،SP{\displaystyle S_{1},...,S_{P}}في الذاكرة الرئيسية. يعمل المعالج i بشكل أساسي على القطاعSأنا{\displaystyle S_{i}}تستخدم خوارزمية التقسيم متعدد الاتجاهات ( PEM_DIST_SORT[ 1 ] ) خوارزمية مجموع البادئة PEM [ 1 ] لحساب مجموع البادئة الأمثليا(شمالPب+سجلP){\displaystyle O\left({\frac {N}{PB}}+\log P\right)}تعقيد الإدخال/الإخراج. تحاكي هذه الخوارزمية خوارزمية مجموع البادئة PRAM المثلى.

// حساب تقسيم ثنائي الاتجاه على أجزاء البيانات بالتوازيSأنا{\displaystyle S_{i}}لكل معالج i بالتوازي، اقرأ متجه المحاور M في الذاكرة المؤقتة. تقسيمSأنا{\displaystyle S_{i}}في d دلاء ودع المتجهمأنا={ج1أنا،...،جدأنا}{\displaystyle M_{i}=\{j_{1}^{i},...,j_{d}^{i}\}}ليكن عدد العناصر في كل دلو. نهاية الحلقة قم بتطبيق مجموع البادئة PEM على مجموعة المتجهات{م1،...،مP}{\displaystyle \{M_{1},...,M_{P}\}}معًا. // استخدم متجه المجموع البادئ لحساب التقسيم النهائي لكل معالج i بالتوازي، اكتب العناصرSأنا{\displaystyle S_{i}}في مواقع الذاكرة مع إزاحة مناسبة بواسطةمأنا-1{\displaystyle M_{i-1}}ومأنا{\displaystyle M_{i}}. نهاية لـ باستخدام مجموعات البادئات المخزنة فيمP{\displaystyle M_{P}}يقوم المعالج الأخير P بحساب المتجه B لأحجام الحاويات وإعادته.

إذا كان متجهد=يا(مب){\displaystyle d=O\left({\frac {M}{B}}\right)}إذا كانت المحاور M ومجموعة المدخلات A موجودة في ذاكرة متجاورة، فيمكن حل مشكلة التقسيم متعدد الاتجاهات في نموذج PEM باستخداميا(شمالPب+دب>سجل(P)+دسجل(ب)){\displaystyle O\left({\frac {N}{PB}}+\left\lceil {\frac {d}{B}}\right\rceil >\log(P)+d\log(B)\right)}تعقيد الإدخال/الإخراج. يجب أن يكون محتوى الحاويات النهائية موجودًا في ذاكرة متجاورة.

اختيار

تتمحور مشكلة الاختيار حول إيجاد العنصر الأصغر رقم k في قائمة غير مرتبة A بحجم N. يستخدم الكود التالي [ 1 ]PRAMSORT خوارزمية فرز مثالية من نوع PRAM تعمل فييا(سجلشمال){\displaystyle O(\log N)}، و SELECT، وهي خوارزمية اختيار المعالج الفردي الأمثل من حيث ذاكرة التخزين المؤقت.

لوشمالP{\displaystyle N\leq P}ثمفرز عربات الأطفال(أ،P){\displaystyle {\texttt {PRAMSORT}}(A,P)}يعودأ[ك]{\displaystyle A[k]}نهاية الشرط // أوجد الوسيط لكلSأنا{\displaystyle S_{i}}لكل معالج i بالتوازي، قم بما يلي:مأنا=يختار(Sأنا،شمال2P){\displaystyle m_{i}={\texttt {SELECT}}(S_{i},{\frac {N}{2P}})}نهاية لـ // فرز الوسائط فرز عربات الأطفال({م1،...،م2}،P){\displaystyle {\texttt {PRAMSORT}}(\lbrace m_{1},\dots ,m_{2}\rbrace ,P)} // التقسيم حول وسيط الوسائط ت=التقسيم(أ،مP/2،P){\displaystyle t={\texttt {PEMPARTITION}}(A,m_{P/2},P)}لوكت{\displaystyle k\leq t}ثم العودةPEMSELECT(أ[1:ت]،P،ك){\displaystyle {\texttt {PEMSELECT}}(A[1:t],P,k)}وإلا فارجعPEMSELECT(أ[ت+1:شمال]،P،ك-ت){\displaystyle {\texttt {PEMSELECT}}(A[t+1:N],P,kt)}نهاية الشرط

بافتراض أن المدخلات مخزنة في ذاكرة متجاورة، PEMSELECTفإن تعقيد الإدخال/الإخراج هو:

يا(شمالPب+سجل(Pب)سجل(شمالP)){\displaystyle O\left({\frac {N}{PB}}+\log(PB)\cdot \log({\frac {N}{P}})\right)}

فرز التوزيع

تقوم خوارزمية فرز التوزيع بتقسيم قائمة الإدخال A ذات الحجم N إلى d مجموعات منفصلة ذات أحجام متقاربة. ثم يتم فرز كل مجموعة بشكل متكرر، وتُدمج النتائج في قائمة مرتبة بالكامل.

لوP=1{\displaystyle P=1}يتم تفويض المهمة إلى خوارزمية فرز أحادية المعالج ذات ذاكرة تخزين مؤقت مثالية.

وإلا يتم استخدام الخوارزمية التالية [ 1 ] :

// عينة4شمالد{\displaystyle {\tfrac {4N}{\sqrt {d}}}}لكل معالج i بالتوازي، قم بتنفيذ العناصر من A إذام<|Sأنا|{\displaystyle M<|S_{i}|}ثمد=م/ب{\displaystyle d=M/B} حمولةSأنا{\displaystyle S_{i}}في صفحات بحجم M ، وفرز الصفحات بشكل فردي، وإلاد=|Sأنا|{\displaystyle d=|S_{i}|} تحميل وفرزSأنا{\displaystyle S_{i}}كصفحة واحدة نهاية إذا اختر كلد/4{\displaystyle {\sqrt {d}}/4}العنصر رقم ' من كل صفحة ذاكرة مرتبة في متجه متجاورRأنا{\displaystyle R^{i}}نهاية العينات لـ قم بدمج المتجهات بالتوازيR1...RP{\displaystyle R^{1}\dots R^{P}}في متجه واحد متصلR{\displaystyle {\mathcal {R}}} يصنعد{\displaystyle {\sqrt {d}}}نسخ منR{\displaystyle {\mathcal {R}}}:R1...Rد{\displaystyle {\mathcal {R}}_{1}\dots {\mathcal {R}}_{\sqrt {d}}}نهاية التكرار // يجدد{\displaystyle {\sqrt {d}}}محاورم[ج]{\displaystyle {\mathcal {M}}[j]}لج=1{\displaystyle j=1}لد{\displaystyle {\sqrt {d}}}بالتوازي مع ذلك، قم بما يلي:م[ج]=PEMSELECT(Rأنا،Pد،ج4شمالد){\displaystyle {\mathcal {M}}[j]={\texttt {PEMSELECT}}({\mathcal {R}}_{i},{\tfrac {P}{\sqrt {d}}},{\tfrac {j\cdot 4N}{d}})}نهاية لـ قم بتعبئة المحاور في صف متجاورم{\displaystyle {\mathcal {M}}} // قسّم المجموعة أ حول المحاور إلى مجموعات فرعيةب{\displaystyle {\mathcal {B}}}ب=تقسيم متعدد PEMMULTIPARTITION(أ[1:شمال]،م،د،P){\displaystyle {\mathcal {B}}={\texttt {PEMMULTIPARTITION}}(A[1:N],{\mathcal {M}},{\sqrt {d}},P)} // فرز المجموعات بشكل متكرر لج=1{\displaystyle j=1}لد+1{\displaystyle {\sqrt {d}}+1}بالتوازي، قم باستدعاء متكررPEMDISTSORT{\displaystyle {\texttt {PEMDISTSORT}}}على دلو j بحجمب[ج]{\displaystyle {\mathcal {B}}[j]} استخداميا(ب[ج]شمال/P){\displaystyle O\left(\left\lceil {\tfrac {{\mathcal {B}}[j]}{N/P}}\right\rceil \right)}المعالجات المسؤولة عن العناصر في نهاية المجموعة j لـ

تعقيد الإدخال/الإخراج PEMDISTSORTهو:

يا(شمالPب(سجلدP+سجلم/بشمالPب)+و(شمال،P،د)سجلدP){\displaystyle O\left(\left\lceil {\frac {N}{PB}}\right\rceil \left(\log _{d}P+\log _{M/B}{\frac {N}{PB}}\right)+f(N,P,d)\cdot \log _{d}P\right)}

أين

و(شمال،P،د)=يا(سجلPبدسجلشمالP+دبسجلP+دسجلب){\displaystyle f(N,P,d)=O\left(\log {\frac {PB}{\sqrt {d}}}\log {\frac {N}{P}}+\left\lceil {\frac {\sqrt {d}}{B}}\log P+{\sqrt {d}}\log B\right\rceil \right)}

إذا تم اختيار عدد المعالجات الذيو(شمال،P،د)=يا(شمالPب){\displaystyle f(N,P,d)=O\left(\left\lceil {\tfrac {N}{PB}}\right\rceil \right)}وم<بيا(1){\displaystyle M<B^{O(1)}}وبالتالي، فإن تعقيد الإدخال/الإخراج هو:

يا(شمالPبسجلم/بشمالب){\displaystyle O\left({\frac {N}{PB}}\log _{M/B}{\frac {N}{B}}\right)}

خوارزميات PEM الأخرى

خوارزمية PEMتعقيد الإدخال/الإخراجقيود
فرز الدمج [ 1 ]يا(شمالPبسجلمبشمالب)=نوعP(شمال){\displaystyle O\left({\frac {N}{PB}}\log _{\frac {M}{B}}{\frac {N}{B}}\right)={\textrm {sort}}_{P}(N)}Pشمالب2،م=بيا(1){\displaystyle P\leq {\frac {N}{B^{2}}},M=B^{O(1)}}
ترتيب القائمة [ 2 ]يا(نوعP(شمال)){\displaystyle O\left({\textrm {sort}}_{P}(N)\right)}Pشمال/ب2سجلبسجليا(1)شمال،م=بيا(1){\displaystyle P\leq {\frac {N/B^{2}}{\log B\cdot \log ^{O(1)}N}},M=B^{O(1)}}
جولة أويلر [ 2 ]يا(نوعP(شمال)){\displaystyle O\left({\textrm {sort}}_{P}(N)\right)}Pشمالب2،م=بيا(1){\displaystyle P\leq {\frac {N}{B^{2}}},M=B^{O(1)}}
تقييم شجرة التعبير [ 2 ]يا(نوعP(شمال)){\displaystyle O\left({\textrm {sort}}_{P}(N)\right)}Pشمالب2سجلبسجليا(1)شمال،م=بيا(1){\displaystyle P\leq {\frac {N}{B^{2}\log B\cdot \log ^{O(1)}N}},M=B^{O(1)}}
إيجاد شجرة الامتداد الأدنى [ 2 ]يا(نوعP(|V|)+نوعP(|هـ|)سجل|V|صب){\displaystyle O\left({\textrm {sort}}_{P}(|V|)+{\textrm {sort}}_{P}(|E|)\log {\tfrac {|V|}{pB}}\right)}ص|V|+|هـ|ب2سجلبسجليا(1)شمال،م=بيا(1){\displaystyle p\leq {\frac {|V|+|E|}{B^{2}\log B\cdot \log ^{O(1)}N}},M=B^{O(1)}}

أيننوعP(شمال){\displaystyle {\textrm {sort}}_{P}(N)}هو الوقت الذي يستغرقه فرز N عنصرًا باستخدام P معالجًا في نموذج PEM.

انظر أيضاً

مراجع

  1. 1 2 3 4 5 6 7 8 9 10 11 12 آرج، لارس؛ جودريتش، مايكل ت.؛ نيلسون، مايكل؛ سيتشينافا، نوداري (2008). "خوارزميات متوازية أساسية لمعالجات متعددة الرقاقات ذات ذاكرة التخزين المؤقت الخاصة". وقائع الندوة السنوية العشرين حول التوازي في الخوارزميات والهياكل . نيويورك، نيويورك، الولايات المتحدة الأمريكية: مطبعة ACM. الصفحات 197-206 . doi : 10.1145/1378533.1378573 . ISBN  9781595939739. S2CID 11067041 . 
  2. 1 2 3 4 آرج، لارس؛ جودريتش، مايكل ت.؛ سيتشينافا، نوداري (2010). "خوارزميات الرسم البياني للذاكرة الخارجية المتوازية". ندوة IEEE الدولية لعام 2010 حول المعالجة المتوازية والموزعة (IPDPS) . IEEE. ص 1-11 . doi : 10.1109/ipdps.2010.5470440 . ISBN  9781424464425. S2CID 587572 .