Academia.eduAcademia.edu

Parallel Simplex Method Improvements

2005, AL-Rafidain Journal of Computer Sciences and Mathematics

The aim of the project is to develop parallel approaches for both the simplex that are used in linear programming to solve linear module systems. Most of these models are time consuming when executed and processed in the sequential microprocessor computers. During the project, we try to decrease this time and increase the efficiency of the algorithm for the two methods simplex, through developing parallel methods appropriate to be executed on MIMD type computers. In this paper, three algorithms were suggested for paralleling (a developed algorithm and a comparison was made between the three algorithms and the original. This comparison is included in second section. In general, the practical results and the suggested programs for these new algorithms proved to be better in performance than their analogues that are executed in computers of sequential processor in view of the two elements of execution time and algorithm time.

2005 )2(‫)العدد‬2( ‫مجلة الرافدين لعلوم الحاسبات والرياضيات المجلد‬ Parallel Simplex Method Improvements Bashir M. Salih Muhammad W.M. Ali College of Education Directorate of Relations and Information University of Mosul, Iraq Received on: 13/02/2005 Accepted on: 09/05/2005 ABSTRACT The aim of the project is to develop parallel approaches for both the simplex that are used in linear programming to solve linear module systems. Most of these models are time consuming when executed and processed in the sequential microprocessor computers. During the project, we try to decrease this time and increase the efficiency of the algorithm for the two methods simplex, through developing parallel methods appropriate to be executed on MIMD type computers. In this paper, three algorithms were suggested for paralleling (a developed algorithm and a comparison was made between the three algorithms and the original. This comparison is included in second section. In general, the practical results and the suggested programs for these new algorithms proved to be better in performance than their analogues that are executed in computers of sequential processor in view of the two elements of execution time and algorithm time. Keywords: simplex method, parallel approaches. ‫تحسينات الطريقــة الفرديـــة المتوازيــــة‬ ‫محمد واجد محمد علي‬ ‫بشير محمد صالح‬ ‫مديرية العالقات واإلعالم‬ 2005/5/9 :‫تاريخ قبول البحث‬ ‫جامعة الموصل‬ ‫الملخص‬ ‫كلـية التربيــة‬ 2005/2/13 :‫تاريخ استالم البحث‬ ‫ التـ ـ‬Simplex Method ‫ه ــدل ال ه ــط ه ــو ئق ــوير ة ارل ــق متواري ــة للقري ــة ال ر ـ ـ ة‬ .‫ئستعمل ف البرمجة الخقية لهل منظومات من النماذج الخقية‬ ‫إن معظ ــذ ه ــما النم ــاذج ئتقل ــا وقتـ ـاذ عبيـ ـ اذر للتن ي ــم عن ــد المعالج ــة ا ــتخدام ا ـ ـ ات ذات‬ ‫معــالت ئتــا ع ح ولهــاوذ فـ هــما ال هــط ئ ليــل هــما الوقــو وريــا ل ع ــا ل الخوا رميــات للقري ــة ال ر ــة‬ ‫ا ـ ات م ــن ل ــو‬ ‫ م ــن ــالذ ئق ــوير ة ارل ــق متواري ــة ماللم ــة للتن ي ــم عل ـ‬Simplex Method .MIMD 67 ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫ف هما ال هط ئذ اقتراح ثالث وا رميات جديدل للتـوار مقـو ل لسـ ة إلـ القري ـة ال ر ـة‬ ‫()‪ )Simplex Method (SM‬عم ــا ئمــو الم ا ل ــة ا ــين ه ــما الخوا رمي ــات ال ـ الث الم تر ــة م ـ‬ ‫الخوا رمية األصلية‪.‬‬ ‫إذ ئمكنـا مــن ئسـري جميـ الق ارلــق الـ الث المقـو ل ا ــتخدام التـوار وعــان عامــل التسـري‬ ‫إل دى القرالق المقو ل عاآلئ ‪:‬‬ ‫أ أن‪:‬‬ ‫عامل التسري = ‪1.92 =0.46 /2.65‬‬ ‫وعل ـ العمــوم أ اــرت النتــالت العمليــة والبرمجيــات الها ــوبية الم تر ــة لاــما الخوا رميــات‬ ‫الجديدل ألاا افضل من م يالئاا الت ئن م عل‬ ‫سا ات ذات معالت ئتا ع لس ة إل عنصر رمـن‬ ‫التن يم و رعة الخوا رمية‪.‬‬ ‫الكلمات المفتاحية‪ :‬القري ة ال ر ةح القرالق المتوارية‪.‬‬ ‫‪ .1‬الطريقة الفردية ‪:]4[Simplex Method‬‬ ‫القري ـ ـ ـ ــة ال ر ـ ـ ـ ــة و ـ ـ ـ ــيلة ياي ـ ـ ـ ــية ذات ع ا ـ ـ ـ ــة عاليـ ـ ـ ــة ف ـ ـ ـ ـ إ جـ ـ ـ ــا الهلـ ـ ـ ــوذ الم ل ـ ـ ـ ـ‬ ‫(‪ )Optimum Solution‬لمشكالت البرمجة الخقية ‪.Linear Programming‬‬ ‫ل د ئقو ت القري ة ال ر ة ف‬ ‫نة ‪ 1947‬وقد قام ات د ذ ئلك القري ـة وئقويرهـا األمريكـ‬ ‫جو ج التز‪.‬‬ ‫ئرمـ مسـألة البرمجـة الخقيـة إلـ ئعظـيذ ‪ Maximize‬أو ئ ليـل ‪ Minimize‬الـة هـدل‬ ‫قية معينة وان لدالة الادل الخقية قيو اذ ‪ Constraint‬ئهد مشكلة البرمجة الخقية ولاـما ال يـو‬ ‫صيغة يايية معينـة ف ـد كـون ال يـد أكبـر أو سـاو (‪ )‬أو قـد كـون أصـغر أو سـاو (‪ )‬أو قـد‬ ‫كون ال يد مساوياذ إل (=)‪.‬‬ ‫وهناك لموذجان ليسان مكن عتا ة البرمجة الخقية اوا قتاما هما [‪:]8[ ]4‬‬ ‫‪68‬‬ ‫تحسينات الطريقة الفردية …‬ ‫‪ -1‬الصيغة العامة‬ ‫‪General Form‬‬ ‫الصيغة العامة لمسألة ف البرمجة الخقية ه [‪:]8‬‬ ‫………‬ ‫‪Maximize c1x1 + c2x2 +…+ cnxn = Z‬‬ ‫‪Subject to x1, x2,…, xn  0 ; i.e. x  0‬‬ ‫‪and‬‬ ‫‪a11x1 + a12x2 + …+ a1nxn  or = or  b1‬‬ ‫‪a21x1 + a22x2 + …+ a2n xno r = or  b2‬‬ ‫)‪(1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪am1x1 + am2x2 + …+ amnxn  or = or  bm‬‬ ‫إذ أن (‪ )n‬ع ـ ـ ـ ـ ـ ــد المتغي ـ ـ ـ ـ ـ ـرات و(‪ )m‬ع ـ ـ ـ ـ ـ ــد ال ي ـ ـ ـ ـ ـ ــو ح وأن )‪ (c1,…,cn‬و )‪(b1,…,bm‬‬ ‫والمصـ ـ ـ ـ وفة ]‪ i=1,..,m( a[i,j‬و‪ )j=1,..,n‬ئتهـ ـ ـ ــد بيماـ ـ ـ ــا وةبيعتاـ ـ ـ ــا وف ـ ـ ـ ـاذ للمشـ ـ ـ ــكلة المر ـ ـ ـ ــو‬ ‫لاا‪.‬‬ ‫‪-2‬الصيغة القياسية‬ ‫‪Standard Form‬‬ ‫إن الصيغة القيا ية هـ إيـافة متغيـرات يـر ـال ة علـ الصـيغة العامـة (‪ )1‬أو ـمفاا‬ ‫اعتما اذ عل عالمة المت اينة هيط ئص ح عما أئ [‪:]8‬‬ ‫إن أ‬ ‫‪Maximize 1cx1 + c2x2 +…+ cnxn = Z‬‬ ‫‪Subject to x1, x2,…, xn , xm+1,…, xm+n  0‬‬ ‫‪And‬‬ ‫‪a11x1 + a12x2 + …+ a1nxn + xm+1= b1‬‬ ‫‪a21x1 + a22x2 + …+ a2nxn + xm+2= b2‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪am1x1 + am2x2 + …+ amnxn + xm+n = bm‬‬ ‫ــل أ ا ـ أولـ هــو الهــل الــم يبــدأ مــن ل قــة األصــلح أ ان الهــل األولـ هــو‬ ‫الهل النائت ينما ئكون القيذ‪:‬‬ ‫ولاما فان‪:‬‬ ‫‪x1 = x2 = … = xn=0‬‬ ‫‪xm+1 = b1 , xm+2 = b2 , … ,‬‬ ‫‪xm+n =bm‬‬ ‫الا ـ ــدل ه ـ ــو ئهوي ـ ــل ه ـ ــما المتغيـ ـ ـرات ‪ x1, x2,…, xn‬الـ ـ ـ المتغيـ ـ ـرات األ ا ـ ــية‬ ‫‪Basic Variables‬ح ويقلــق عل ـ المتغي ـرات ‪ xm+1, xm+2,…,xm+n‬المتغي ـرات يــر األ ا ــية‬ ‫‪ .Non-Basic Variable‬ويمك ــن ئم ي ــل البيال ــات الس ــا ة ش ــكل ج ــدوذ لكـ ـ س ــال علين ــا فا ــذ‬ ‫المتغيرات األ ا ية و ير األ ا ية‪:‬‬ ‫‪69‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫جدوذ (‪)1‬‬ ‫ومعامالئاا‬ ‫‪xn‬‬ ‫‪a1n‬‬ ‫‪a2n‬‬ ‫‪:‬‬ ‫‪amn‬‬ ‫‪cn‬‬ ‫ةري ة ئم يل المتغيرات األ ا ية وبيذ ‪ bi‬ومعامالت ‪ x1,..,xn‬وبيمة الة الادل‬ ‫للقري ة ال ر ة [‪.]8‬‬ ‫‪xm+1‬‬ ‫‪Basic‬‬ ‫‪Value‬‬ ‫‪x1‬‬ ‫‪x2‬‬ ‫…‬ ‫…‬ ‫‪a‬‬ ‫‪x1‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫‪1m‬‬ ‫‪b1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪11‬‬ ‫‪12‬‬ ‫‪:‬‬ ‫‪a2m‬‬ ‫‪x2‬‬ ‫‪a21‬‬ ‫‪a22‬‬ ‫‪:‬‬ ‫‪b2‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪amm‬‬ ‫‪xm‬‬ ‫‪am1‬‬ ‫‪bm‬‬ ‫‪am2‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪.‬‬ ‫‪c‬‬ ‫‪-z‬‬ ‫‪c1‬‬ ‫‪c2‬‬ ‫‪.‬‬ ‫‪-zo‬‬ ‫‪m‬‬ ‫‪.2‬خطوات حل الطريقة الفردية [‪:]10‬‬ ‫‪ -1‬الخطوة األولى‪ :‬إيجاد المتغير الذي سيدخل الحل بوصفه متغيراً أساسياً‪:‬‬ ‫لسـم المتغيـرات ‪ xm+1, ..., xn‬ـالمتغيرات يـر األ ا ـيةح لهـاوذ إ جـا أقـل عنصـر فـ‬ ‫‪ c1, ..., cs,..., cn‬وليكن ‪ cs‬ح فإذا عان ‪cs<0‬؛ إذن ازيا ل ‪ xs‬ول ئـز ا بيمـة الـة الاـدل ‪Z‬ح أمـا‬ ‫إذا عــان هنــاك اك ــر مــن عنصــر ‪ cj<0‬فالنــا لختــا العنصــر األك ــر ــالبية‪cs‬؛ أللــف فـ هــما الهالــة‬ ‫ول ئز ا بيمة الة الادل أ ر ح وباما كون العنصر ‪ xs‬هو العنصر الدا ل متغي اذر أ ا ياذ‪.‬‬ ‫‪ -2‬الخطوة الثانية‪ :‬إيجاد العنصر الذي سيخرج من الحل بوصفه متغيراً غير أساسي‪:‬‬ ‫ف ال يد (‪)i‬ح إذا عان ‪ ais>0‬القيمة األكبر؛ فتكـون بيمـة ‪ xs‬هـ ‪bi/ais‬ح وإال ـيكون ‪ xi‬ـال اذ‪ .‬إذن‬ ‫يكون ‪ xs‬هو الم‬ ‫يزيد القيمة‬ ‫‪bi‬‬ ‫)‬ ‫‪a is‬‬ ‫( ‪max x s = min‬‬ ‫‪r‬ح فـإن ‪ xr = 0‬عنـدما ‪ xs‬عقـ‬ ‫القيمـة ‪br/ars‬ح أمـا‬ ‫)‪(2‬‬ ‫فـإذا وجـدت هـما القيمـة فـ الصـ‬ ‫قية المتغيرات األ ا ية فسول ئ‬ ‫العمو المهو ح والص‬ ‫‪ r‬هو الص‬ ‫موج ة‪ .‬العنصر ‪ ars‬سم‬ ‫‪i =1,...,m‬‬ ‫‪a is 0‬‬ ‫العنصـر المهـو ح والعمـو ‪ s‬هـو‬ ‫المهو ‪.‬‬ ‫‪ -3‬الخطوة الثالثة‪ :‬الحصول على الصيغة الرسمية الجديدة‪:‬‬ ‫أ ا‬ ‫المتغيـرات األ ا ــية الجديــدل هـ ‪x1,x2,...,xs,..xm‬ح المتغيــر ‪ xs‬ــول كـون متغيـ اذر يــر‬ ‫‪ .‬للهصـوذ علـ صـيغة جديـدل لجـر العمليـات المهو يـة للـتخلت مـن المتغيـر ‪ xs‬فـ جميـ‬ ‫ال يو إال الة الادل وال يد المهو ‪.‬‬ ‫ئعــا هــما الخق ـوات إل ـ أن ئكــون العناصــر ف ـ‬ ‫وصلنا إل الهل األم ل وال يوجد ل أفضل منف‪.‬‬ ‫‪70‬‬ ‫الــة الاــدل علاــا موج ــةح ااــما لكــون قــد‬ ‫تحسينات الطريقة الفردية …‬ ‫ويمكن ئم يل هما الخقوات عن ةريق الجدوذ الخاص القري ة ال ر ة [‪8‬ح فاذا عان لدينا‬ ‫النظام (‪ )1‬فيمكن ئهويلف إل الجدوذ اآلئ ‪:‬‬ ‫الجدوذ (‪ )2‬ةري ة ئم يل المتغيرات األ ا ية وبيذ ‪ bi‬ومعامالت ‪ x1,..,xn‬و الة الادل ومعامالئاا‬ ‫للقري ة ال ر ةح النس ة للتك ار ‪]8[ .k‬‬ ‫‪xm+1‬‬ ‫‪xm‬‬ ‫…‬ ‫‪xr‬‬ ‫…‬ ‫‪x2‬‬ ‫‪x1‬‬ ‫‪Value‬‬ ‫‪Basic‬‬ ‫…‬ ‫‪a1n‬‬ ‫‪a 1‬‬ ‫‪a1m+1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪1‬‬ ‫‪b1‬‬ ‫‪x1‬‬ ‫‪a2n‬‬ ‫‪:‬‬ ‫‪arn‬‬ ‫‪a2s‬‬ ‫‪:‬‬ ‫*‪ars‬‬ ‫‪:‬‬ ‫‪ams‬‬ ‫‪c m‬‬ ‫‪a2m+1‬‬ ‫‪:‬‬ ‫‪arm+1‬‬ ‫‪:‬‬ ‫‪amm+1‬‬ ‫‪cm-1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪1‬‬ ‫‪.‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪.‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪.‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪.‬‬ ‫‪1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪.‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪.‬‬ ‫‪b2‬‬ ‫‪:‬‬ ‫‪br‬‬ ‫‪:‬‬ ‫‪bm‬‬ ‫‪-zo‬‬ ‫‪x2‬‬ ‫‪:‬‬ ‫‪xr‬‬ ‫‪:‬‬ ‫‪xm‬‬ ‫‪-z‬‬ ‫‪xn‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪amn‬‬ ‫‪c n‬‬ ‫…‬ ‫‪xs‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪Ite.‬‬ ‫‪k‬‬ ‫هما ف التك ار ‪ k‬وعند إج ار الخقوات ال الث الممعو ل آل اذ لهصل عل التك ار )‪ (k+1‬وهو‪:‬‬ ‫الجدوذ (‪ )3‬ةري ة ئم يل المتغيرات األ ا ية وبيذ ‪ bi‬ومعـامالت ‪ x1,..,xn‬و الـة الاـدل ومعامالئاـا‬ ‫للقري ة ال ر ةح النس ة إل التك ار ‪]8[ .k+1‬‬ ‫…‬ ‫‪xs‬‬ ‫…‬ ‫‪1n‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪+‬‬ ‫‪2n‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪+‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪+‬‬ ‫‪xn‬‬ ‫‪+‬‬ ‫‪a‬‬ ‫‪+‬‬ ‫‪a‬‬ ‫‪:‬‬ ‫‪1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪mn‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪n‬‬ ‫‪:‬‬ ‫‪.‬‬ ‫‪:‬‬ ‫‪a‬‬ ‫‪rn‬‬ ‫‪+‬‬ ‫‪a‬‬ ‫‪+‬‬ ‫‪c‬‬ ‫‪xm‬‬ ‫…‬ ‫‪xr‬‬ ‫…‬ ‫‪x2‬‬ ‫‪x1‬‬ ‫‪Value‬‬ ‫‪Basic‬‬ ‫‪1m+1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪1‬‬ ‫‪b +1‬‬ ‫‪x1‬‬ ‫‪2m+1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪x2‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪xm+1‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫‪:‬‬ ‫‪rm+1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪+‬‬ ‫‪xr‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪mm+1‬‬ ‫‪1‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪+‬‬ ‫‪b‬‬ ‫‪m -1‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪+‬‬ ‫‪-z‬‬ ‫‪a‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪c‬‬ ‫‪b‬‬ ‫‪:‬‬ ‫‪+‬‬ ‫‪a‬‬ ‫‪+‬‬ ‫‪71‬‬ ‫‪:‬‬ ‫‪b‬‬ ‫‪r‬‬ ‫‪:‬‬ ‫‪m‬‬ ‫‪xm‬‬ ‫‪o‬‬ ‫‪-z‬‬ ‫‪Ite.‬‬ ‫‪K+1‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫إذ أن‬ ‫‪b+r = br /‬‬ ‫‪a+rj = arj/‬‬ ‫‪b+i = bi -‬‬ ‫)‪ars ...................................................................................................................... (a‬‬ ‫)‪ars ................................................................................. (b‬‬ ‫)‪ars b+r ....................................................................... (c‬‬ ‫‪ir‬‬ ‫)‪(3‬‬ ‫)‪a+ij = aij - ais a+rj ....................................................................... (d‬‬ ‫)‪c+j = cj - cs a+rj .......................................................................... (e‬‬ ‫)‪z+o = zo + cs b+r ........................................................................... (f‬‬ ‫مثال تطبيقي [‪:]8‬‬ ‫جد أقل بيمة لـ‪:‬‬ ‫‪=Z‬‬ ‫هيط أن‬ ‫‪ 1700‬‬ ‫‪ 1600‬‬ ‫‪ .3‬برمجة الطريقة الفردية‪:‬‬ ‫‪-2x1 – 4x2‬‬ ‫‪x1,x2  0‬‬ ‫‪3x1 + 4x2‬‬ ‫‪2x1 + 5x2‬‬ ‫من الممكن ئن يم القري ة ال ر ة عل الها ة وذلك ائ ا الخقوات المويهة ف‬ ‫المخقط االلسياا اآلئ [‪:]8‬‬ ‫‪72‬‬ ‫تحسينات الطريقة الفردية …‬ ‫قراءة حجم المسألة‬ ‫قراءة القيم وتحديد المتغيرات األساسية‬ ‫وغير األساسية‬ ‫إيجاد اقل ‪ cj=cs‬لكل ‪j=1..n‬‬ ‫نعم‬ ‫هل ‪ cs>0‬؟‬ ‫توقف الحل الحالي هو‬ ‫الحل األمثل‬ ‫كال‬ ‫هل ان كل ‪ ais<0‬؟‬ ‫نعم‬ ‫كال‬ ‫إيجاد ‪ bi/ais‬لكل ‪ais>0‬‬ ‫إيجاد أقل ‪ bi/ais‬ويكون ‪br/ars‬‬ ‫حساب الصيغة الجديدة مع تبديل المتغيرات‬ ‫األساسية‬ ‫الشكل (‪ :)1‬المخقط االلسياا للقري ة ال ر ة االعتيا ة‬ ‫‪73‬‬ ‫توقف‬ ‫الحل غير موجود‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫‪ .4‬التوازي في الطريقة الفردية‪:‬‬ ‫ــنناقف ف ـ ه ــما البن ــد ث ــالث ة ارل ــق متواري ــة جدي ــدل ئ ــذ التوص ــل إليا ــا م ــن ــالذ ا ــتنا‬ ‫لمويو التوار للقري ة ال ر ةح وبما إلنا لتكلذ عل الها ات المتوارية فال اد من التقرق إلياا‪:‬‬ ‫‪ 1-4‬الحاسبــات المتـوازيــة‪:‬‬ ‫عـ ـ ــو ال ضـ ـ ــل للت ـ ـ ــدم الس ـ ـ ـري ف ـ ـ ـ صـ ـ ــناعة الها ـ ـ ـ ات و ولاـ ـ ــا مجـ ـ ــاالت عـ ـ ــدل م ـ ـ ــل‬ ‫التجـا ل والعلـوم والتعلـيذ لنمـوذج الها ـ ة األولـ )‪ (Single Machine Model‬لها ـ ات ‪Von‬‬ ‫‪ Neuman‬ح وعم ــا ه ــو مع ــرول ف ــان ه ــما الها ـ ـ ات ئمتل ــك و ــدل معالج ــة مرعزي ــة وا ــدل )‪(CPU‬‬ ‫مرئ قــة او ــدل ــزن )‪( (Memory‬شــكل‪)1‬ح وان المعــالت ــوم اتن يــم ارلــامت مخــزون والــم‬ ‫هــد‬ ‫اوا قة مجموعة متسلسلة من عمليات ال ار ل والكتا ة عل الماكرل [‪.]15‬‬ ‫‪CPU‬‬ ‫‪Memory‬‬ ‫الشكل (‪ )1‬ا ة ‪Von Neuman‬ح ئ وم و دل المعالجة المرعزية )‪ (CPU‬الجار البرلامت الم‬ ‫ين م شكل ئسلسل لعمليات ال ار ل والكتا ة عل الماكرل المهجورل [‪.]15‬‬ ‫اينما ف الها ات المتوارية فاو ا جـا لمـوذج متـو تار يتكـون مـن عـد مـن ا ـ ات ‪Von‬‬ ‫‪( Neuman‬الشـ ــكل ‪ )2‬كـ ــون عام ـ ـاذ لك يـ ــر مـ ــن التقبي ـ ــات وان ئمتلـ ــك الها ـ ـ ة المتواريـ ــة مي ـ ـزئين‬ ‫ا ا يتين هما (ال ساةة والواقعية)ح وال ساةة ئعن امكالية فاذ الها ة والبرمجـة لاـاح والواقعيـة هـ‬ ‫يمان ئن يم النماذج البرمجية لاا ك ا ة مع ولة [‪.]6‬‬ ‫‪74‬‬ ‫تحسينات الطريقة الفردية …‬ ‫الش ـ ـ ــكل (‪ :)2‬لم ـ ـ ــوذج ا ـ ـ ـ ة متواري ـ ـ ــة م الي ـ ـ ــةح ئهت ـ ـ ــو ع ـ ـ ــل ل ق ـ ـ ــة ا ئ ـ ـ ــا عل ـ ـ ـ‬ ‫ا ـ ـ ـ ة م ـ ـ ــن‬ ‫لو ‪ Von Neuman‬ح ويمكن لكـل ل قـة االئصـاذ الن ـا األ ـرى عـن ةريـق إ ـاذ‬ ‫الر الل وا تق الاا عبر الش كة المربوةة‪]15[ .‬‬ ‫‪ 2-4‬التــوازي‬ ‫الها ــو المت ـوار هــو مجموعــة مــن المعالجــات الت ـ‬ ‫ئعاولية (‪ )Cooperatively‬لهـل مسـألة سـااية مـاح وهـما التعريـ‬ ‫امكالاــا العمــل صــو ل متواريــة او‬ ‫شـمل الها ـ ات المتواريـة التـ‬ ‫ئمتلك عشرات او مئات من المعالجات )‪.]6[ (Processors‬‬ ‫‪ 3-4‬الخوارزمية المتوازية‪:‬‬ ‫الخوا رمية‪ :‬ه مجموعة من التوجياات لتن يـم عمليـات سـااية مصـممة شـ كل يـد‬ ‫الـ‬ ‫ل المسألة المعقال [‪]1‬ح [‪.]2‬‬ ‫وعليف فمن الممكن ئعري‬ ‫جزليــة مســت لة ت ـ‬ ‫الخوا رمية المتوارية‪ :‬ألاا ئجزلة مسـألة وا ـدل إلـ عـدل مسـالل‬ ‫مكــن ــل عــل مســألة جزليــة ف ـ معــالت مســت ل ثــذ جم ـ الهلــوذ لترعيــا ــل‬ ‫المسألة األصلية [‪.]7‬‬ ‫‪ 4-4‬تصنيف الحاسبات المتوازية‪:‬‬ ‫عمل أ لو من ألوا الها ات ( ا ات ئسلسلية عالو أم متوارية) علـ ئن يـم مجموعـة‬ ‫من اإل عارات )‪ (Instructions‬عل مجموعة من البيالات (‪ )Data‬ومن ثـذ ئـتذ معالجتاـا وإ راجاـا‬ ‫عل شكل معلومات[‪.]6‬‬ ‫‪75‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫وهن ــاك ئص ــالي‬ ‫‪]9[ Flynn‬ح ف ـ ــد صـ ــن‬ ‫ع ــدل لمعما ي ــة الها ـ ـ اتح م ــن اش ــار ه ــما التص ــالي‬ ‫ألظمـ ــة هسـ ــا لـ ــو الـ ــتهكذ )‪Control‬‬ ‫‪of‬‬ ‫ئص ــني‬ ‫ال ا ــط‬ ‫‪ (Type‬والخوا رميـ ــات‬ ‫)‪ (Algorithms‬والمعالجــات المنققيــة )‪ (Logical Processors‬إلـ أ بعــة أصــنال ليســة [‪]3‬ح‬ ‫[‪]6‬ح [‪]13‬ح [‪ ]14‬ه ‪:‬‬ ‫‪-1‬معالجات ذات إ عار فر وبيالات جا ية م ر ل‬ ‫‪SISD: Single Instruction Stream, Single Data Stream.‬‬ ‫‪ -2‬معالجات ذات إ عارات متعد ل وبيالات جا ية م ر ل‪.‬‬ ‫‪MISD: Multiple Instruction Stream, Single Data Stream.‬‬ ‫‪ -3‬معالجات ذات إ عار فر وبيالات جا ية متعد ل‪.‬‬ ‫‪SIMD: Single Instruction Stream, Multiple Data Stream.‬‬ ‫‪ -4‬معالجات ذات إ عارات متعد ل وبيالات جا ية متعد ل‪.‬‬ ‫‪MIMD: Multiple Instruction Stream, Multiple Data Stream.‬‬ ‫وهـ ــدفنا مـ ــن ال هـ ــط هـ ــو ئقـ ــوير ة ارلـ ــق متواريـ ــة ماللمـ ــة للتن يـ ــم علـ ـ‬ ‫سـ ــا ات مـ ــن لـ ــو‬ ‫‪ MIMD‬ولاما ول ل تصر الهديط عناا‪:‬‬ ‫‪ 5-4‬حاسبات من نوع ‪]11[ ،]6[ ،]5[ MIMD‬‬ ‫ع ـ ـ ــد ه ـ ـ ــما الن ـ ـ ــو م ـ ـ ــن الها ـ ـ ـ ـ ات أك ـ ـ ــر ش ـ ـ ــيوعاذ وع ا ـ ـ ــة وق ـ ـ ــول فـ ـ ـ ـ ئن ي ـ ـ ــم التقبي ـ ـ ــات‬ ‫العامة ف مويو الها ات المتوارية اذ ئكون فياا مجموعة اال عارات ومجموعة البيالات مختل ة‪.‬‬ ‫هتو هما النو من الها ات عل (‪ )N‬من المعالجـات وعلـ (‪ )N‬مـن اال عـارات وعلـ‬ ‫(‪ )N‬من البيالات الشكل (‪ .)3‬ويمتلك عل معالت ذاكرل اصة ف فضالذ عن و دل الهسا‬ ‫والمنقـق‬ ‫وو ــدل الس ــيقرل الخاص ــة ــفح ول ــف ال ــد ل علـ ـ العم ــل ص ــو ل ليس ــو متزامن ــة ومس ــت لة علـ ـ ايالائ ــف‬ ‫الجا ية الخاصـةح وفـ ا وقـو مـن الممكـن ان ئ ـوم معالجـات مختل ـة اتن يـم ا عـارات مختل ـة وعلـ‬ ‫ايالات مختل ة ]‪.[12], [3‬‬ ‫‪76‬‬ ‫تحسينات الطريقة الفردية …‬ ‫بيانات‪1‬‬ ‫ذاكــرة مشتــركــة‬ ‫بيانات‪2‬‬ ‫بيانات‪N‬‬ ‫المعالج‬ ‫(‪) 1‬‬ ‫المعالج(‪)2‬‬ ‫ا‬ ‫المعالج‬ ‫(‪)N‬‬ ‫تعليمات‪1‬‬ ‫السيطرة‬ ‫(‪)1‬‬ ‫تعليمات‪2‬‬ ‫السيطرة‬ ‫(‪)2‬‬ ‫تعليمات‪N‬‬ ‫السيطرة‬ ‫(‪)N‬‬ ‫الشكل(‪ :)3‬مخقط ئوري اإل عارات والبيالات ف ا ات من لو ‪]14[ MIMD‬‬ ‫لأئ اآلن عل شرح القرالق ال الث الت ئذ التوصل الياا‪:‬‬ ‫‪ 6-4‬الطريقة المتوازية الجديدة األولى‪:‬‬ ‫كما ال ظنا قوات ل القري ة ال ر ة؛ فإن هناك قوات مست لة فيمـا ايناـا أ ألـف مـن‬ ‫الممك ــن أن لنجزه ــا ف ـ الوق ــو ل س ــف؛ أللا ــا ال ئعتم ــد عل ـ‬ ‫المستخدمة ف‬ ‫)‪(4‬‬ ‫عض ــاا ال ـ ع‬ ‫ح ف ــإذا أ ــملا المع ــا الت‬ ‫ل القري ة (‪ )3‬من الممكن عتااتاا الشكل اآلئ ‪:‬‬ ‫)‪b+r = br / ars ...................................................................................... (a‬‬ ‫)‪z+o = zo + cs b+r ................................................................................ (b‬‬ ‫)‪b+i = bi - ars b+r ; i  r ..................................................................... (c‬‬ ‫)‪a+rj = arj/ ars ........................................................................................ (d‬‬ ‫)‪a+ij = aij - ais a+rj ; i  r ................................................................... (e‬‬ ‫)‪c+j = cj - cs a+rj .................................................................................. (f‬‬ ‫من المال ـ ان المعـا لتين (‪ )b‬و(‪ )c‬ئعتمـدان علـ المعا لـة (‪ )a‬أ الـف جـا سـا‬ ‫يـد ل فـ‬ ‫ســا‬ ‫)‪ (b+r‬الـم‬ ‫المعـا لتين (‪ )b‬و(‪)c‬؛ لاــما فـإن المعـا الت (‪ )c-a‬ــتكون علـ معــالت وا ـدح أمــا‬ ‫المعا لتــان (‪ )e‬و(‪)f‬؛ فالامــا ئعتمــدان عل ـ بيمــة )‪ (a rj‬المهســو ف ـ المعا لــة (‪ )d‬فيجــا وي ـ‬ ‫‪+‬‬ ‫‪77‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫المعا الت (‪ )f-d‬ف معالت آ رح ألن عالذ من المجمـوعتين (المعـا الت (‪ ))c-a‬و(المعـا الت (‪-d‬‬ ‫‪ ))f‬ال ئعتمد الوا دل عل األ رىح وبملك لكسا التوار ف هما الن قة‪.‬‬ ‫فإذا م لنا القري ة الجديدل عل الجدوذ المسـتخدم فـ‬ ‫ـل المسـألة لتبـين لنـا التـوار شـكل‬ ‫أويح عما ف الجدوذ (‪:)4‬‬ ‫الجدوذ‬ ‫‪xn‬‬ ‫‪a+1n‬‬ ‫‪CPU2‬‬ ‫‪a+2n‬‬ ‫‪CPU2‬‬ ‫‪:‬‬ ‫‪+‬‬ ‫‪a rn‬‬ ‫‪CPU2‬‬ ‫‪a+mn‬‬ ‫‪CPU2‬‬ ‫‪C+n‬‬ ‫‪CPU2‬‬ ‫(‪ :)4‬العمليات المست لة الت ئجرى عل الجدوذ الخاص القري ة ال ر ة‪.‬‬ ‫… ‪Basic Value x1 x2 … xr … xm xm+1 … xs‬‬ ‫‪x1‬‬ ‫‪b+1‬‬ ‫‪1 : : : : : a+1m+1 : : :‬‬ ‫‪CPU2‬‬ ‫‪CPU1‬‬ ‫‪x2‬‬ ‫‪b+2‬‬ ‫‪1 : : : : a+2m+1 : : :‬‬ ‫‪CPU1‬‬ ‫‪CPU2‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪: : : : : :‬‬ ‫‪:‬‬ ‫‪: : :‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪xr‬‬ ‫‪: : : 1 : : a rm+1 : 1 :‬‬ ‫‪br‬‬ ‫‪CPU1‬‬ ‫‪CPU2‬‬ ‫‪:‬‬ ‫‪:‬‬ ‫‪: : : : : :‬‬ ‫‪:‬‬ ‫‪: : :‬‬ ‫‪xm‬‬ ‫‪: : : : : 1 a+mm+1 : : :‬‬ ‫‪b+m‬‬ ‫‪CPU1‬‬ ‫‪CPU2‬‬ ‫‪-z‬‬ ‫‪. . . . . . c+m-1 : . :‬‬ ‫‪-z+o‬‬ ‫‪CPU1‬‬ ‫‪CPU2‬‬ ‫ويمكن ئم يل القري ة المتوارية الشكل اآلئ ‪:‬‬ ‫‪CPU1‬‬ ‫‪ .1‬يقوم بحساب‪:‬‬ ‫‪+‬‬ ‫‪b r = br / ars‬‬ ‫‪b+i = bi - ars b+r‬‬ ‫‪z+o = zo + cs b+r‬‬ ‫‪ .2‬يرسل القيم إلى ‪CPU3‬‬ ‫‪ .1‬يقوم بحساب‬ ‫‪CPU2‬‬ ‫‪a+rj = arj/ ars‬‬ ‫‪a+ij = aij - ais a+rj‬‬ ‫‪c+j = cj - cs a+rj‬‬ ‫‪ .2‬يرسل القيم إلى ‪CPU3‬‬ ‫‪CPU3‬‬ ‫‪-1‬يقوم باستالم القيم‬ ‫‪-2‬التأكد من قيم ‪ c+j‬فإن كان فيها قيم سالبة يعيد تنفيذ العملية وإال الحل‬ ‫الحالي هو الحل األمثل‬ ‫الشكل (‪ : )4‬ئوري األوامر عل المعالجات ف القري ة األول للتوار ف القري ة ال ر ة‬ ‫‪ 1-6-4‬توزيع األعمال على المعالجات للطريقة المتوازية األولى‪:‬‬ ‫مكن ئوييح عمل المعالجات الشكل اآلئ ‪:‬‬ ‫‪78‬‬ ‫تحسينات الطريقة الفردية …‬ ‫‪-1‬الـ ‪:CPU1‬‬ ‫وم هسا‬ ‫اآلئ ‪:‬‬ ‫بيذ ‪ b+I‬الجديدل وبيذ الة الادل الجديدل أ العمو ‪ Value‬ف الجدوذ الخاص القري ة‬ ‫ال ر ةح وير ل القيذ إل ‪. CPU3‬‬ ‫‪-2‬الـ ‪:CPU2‬‬ ‫وم هسا‬ ‫اآلئ ‪:‬‬ ‫بيذ ‪ a+rj‬و‪ a ij‬و‪ c j‬الجديدل وير ل القيذ إل ‪. CPU3‬‬ ‫‪+‬‬ ‫‪-3‬الـ ‪:CPU3‬‬ ‫‪+‬‬ ‫وم هسا‬ ‫اآلئ ‪:‬‬ ‫وم ا تالم القيذح التأكد من بيذ ‪ c j‬فإن عالو فياا بيذ ال ة عيد ئن يم العملية وإال فإن‬ ‫‪+‬‬ ‫الهل الهال هو الهل األم ل‪.‬‬ ‫‪ 2-6-4‬حساب عامل التسريع للطريقة األولى‬ ‫وعما ذعرلا ا اذ إن ا ات من لو ‪ MIMD‬ير متوافرل ف اال لاح فلملك ئذ ئن يـم عـل‬ ‫إج ـ ار عل ـ ــدا و ســا الوقــو عــملك ويكــون الوقــو األكبــر هــو الوقــو المعتمــد ف ـ ســا ئن يــم‬ ‫اإلج ـ ار ين‪ .‬وق ــد ل ــم البرل ــامت ا ــتخدام لغ ــة ‪ Turbo Pascal 7.0‬و ا ـ ة ‪ PIII‬ذات مع ــالت‬ ‫‪ 733MHz‬وبا تخدام الة )‪ Delay (120000‬فكالو المدل المستغرقة ه ‪1.52 Sec:‬‬ ‫فعنــد ســا‬ ‫عامــل التس ـري ‪ Speed up‬اــين القري ــة العا ــة والقري ــة المتواريــة األول ـ‬ ‫لهصل عل (‪:)6()5‬‬ ‫وقــت التنفيذ لـ‪ M1‬باستخدام معالج واحد )‪(Ts‬‬ ‫التسريع ‪ = Sp‬وقت التنفيذ لـ‪ M‬باستخدام ‪ N‬من المعالجات )‪(Tp‬‬ ‫التسريع = ‪1.74 = 2.65‬‬ ‫‪1.52‬‬ ‫صــلنا عليــف هــو (‪ )1.74‬أ أن م ــدا التس ـري‬ ‫إذن عمــا لال ـ ان عامــل التس ـري الــم‬ ‫ف ئن يم البرلامت قد ار وبملك لكون قد عسبنا وقتاذ جيـداذ للتن يـم علـ الـر ذ مـن أن الم ـاذ المسـتخدم‬ ‫ف ئن يم البرلامت عتمـد علـ متغيـرات قليلـة لوعـاذ مـاح أمـا إذا عالـو هنـاك متغيـرات عبيـرل فـإن عامـل‬ ‫التسري يكون شكل أكبر‪.‬‬ ‫‪ 7-4‬الطريقة المتوازية الجديدة الثانية‪:‬‬ ‫‪79‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫من الممكن ئقوير ةري ـة جديـدل للتـوار فـ القري ـة ال ر ـةح فلـو ال ظنـا القري ـة السـا ة‬ ‫لرأينا ألف اإلمكان ريا ل عد المعالجات المستخدمةح ت‬ ‫كون لكل عمـو فـ جـدوذ الهـل معالجـف‬ ‫الخاص فح وين م جمي العمليات الموجو ل ف العمو ‪.‬‬ ‫ف‬ ‫هما الهالة ول لهتاج إل عد مـن المعالجـات سـاو (‪( )n+2‬اذ ان ‪ n‬م ـل عـد‬ ‫األعمــدل ف ـ الجــدوذ الخــاص القري ــة ال ر ــة) عل ـ العكــل مــن القري ــة األول ـ الت ـ لهتــاج فياــا‬ ‫ف ــط إلـ ثــالث معالجــات مامــا عــان عبــر جــذ المســألة التـ عنــدلاح ومــن هنــا يتضــح لنــا ال ــرق اــين‬ ‫القري ــة األول ـ والقري ــة ال اليــةح إذ ألــف يــتذ ا ــتخدام القري ــة األول ـ عنــدما كــون عــد المعالجــات‬ ‫مهــدو اذ والمســألة عنــدلا صــغيرل لســبياذح أمــا فـ‬ ‫ك يرل فإلنا لستخدم القري ة ال الية المقو ل‪.‬‬ ‫الــة عــون عــد المعالجــات عبيـ اذر والمســألة فياــا قيــو‬ ‫ومن الممكن ئم يل القري ة المقو ل عن ةريق المخقط اآلئ ‪:‬‬ ‫‪CPU n+1‬‬ ‫‪ .1‬يستلم قيمة ‪a+rj‬‬ ‫‪ .2‬يقوم بحساب‬ ‫‪a+in=ain - ais a+rj‬‬ ‫‪c+n = cn - cs a+rj‬‬ ‫‪ .3‬يرسل القيم إلى‬ ‫‪CPUn+2‬‬ ‫‪CPU2‬‬ ‫‪ .1‬يقوم بحساب‬ ‫‪a+rj = arj/ ars‬‬ ‫‪c+r = cr - cs a+rj‬‬ ‫‪ .2‬يرسل القيم إلى‬ ‫‪CPUn+2‬‬ ‫‪CPU3‬‬ ‫‪ .1‬يستلم قيمة ‪a+rj‬‬ ‫‪ .2‬يقوم بحساب‬ ‫‪a+i1 = ai1 - ais a+rj‬‬ ‫‪c+1 = c1 - cs a+rj‬‬ ‫‪ .3‬يرسل القيم إلى‬ ‫‪CPUn+2‬‬ ‫‪CPU1‬‬ ‫‪ .1‬يقوم بحساب‪:‬‬ ‫‪+‬‬ ‫‪b r = br / ars‬‬ ‫‪b+i = bi - ars b+r‬‬ ‫‪z+o = zo + cs b+r‬‬ ‫‪ .2‬يرسل القيم إلى‬ ‫‪CPU n+2‬‬ ‫‪CPU n+2‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬ ‫يقوم باستالم القيم من ‪ CPU1‬و‪.CPU2‬‬ ‫يرسل قيمة ‪ a+rj‬إلى المعالجات (من ‪ CPU3‬إلى ‪.)CPUn+1‬‬ ‫يقارن هل ‪ c+j>0‬؟ فإن كانت (نعم)؛ الحل الحالي هو الحل األمثل‪ ،‬وإال تستمر الخطوة التالية‪.‬‬ ‫يقارن هل ‪ a+is < 0‬؟ فإن كانت (نعم) فالحل غير موجود‪ ،‬وإال يكرر تنفيذ العمليات من جديد‪.‬‬ ‫الشكل(‪ :)5‬م ل ئوري األوامر عل المعالجات ف القري ة ال الية للتوار ف القري ة ال ر ة‪.‬‬ ‫‪80‬‬ ‫تحسينات الطريقة الفردية …‬ ‫‪ 1-7-4‬توزيع األوامر على المعالجات للطريقة المتوازية الثانية‪:‬‬ ‫مكن ئوييح عمل المعالجات الشكل اآلئ ‪:‬‬ ‫الـ ‪:CPU1‬‬ ‫الـ ‪:CPU2‬‬ ‫الـ ‪:CPU3‬‬ ‫اآلئ ‪:‬‬ ‫وم هسا‬ ‫بيذ ‪ b+I‬الجديدل وبيذ الة الادل الجديدل أ العمو ‪ Value‬ف الجدوذ الخاص‬ ‫القري ة ال ر ةح وير ل القيذ إل ‪.CPUn+2‬‬ ‫وم هسا‬ ‫بيذ‬ ‫‪rj‬‬ ‫اآلئ ‪:‬‬ ‫‪ a‬و‪ c r‬الجديدل وير ل القيذ إل ‪.CPUn+2‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫اآلئ ‪:‬‬ ‫وم هسا‬ ‫ــوم ا ــتالم بيمــة‪ a rj‬ح وبعــد ذلــك ــوم هســا‬ ‫‪+‬‬ ‫بيمــة ‪ a+i1‬و بيمــة‬ ‫‪1‬‬ ‫‪c‬أ‬ ‫‪+‬‬ ‫هســا‬ ‫العمو األوذ‪.‬‬ ‫الـ ‪:CPUn+1‬‬ ‫وم هسا‬ ‫اآلئ ‪:‬‬ ‫وم ا تالم بيمة‪a rj‬ح وبعد ذلك وم هسا‬ ‫بيمة ‪ a+in‬و بيمة‬ ‫‪+‬‬ ‫الـ ‪:CPUn+2‬‬ ‫وم هسا‬ ‫اآلئ ‪:‬‬ ‫‪n‬‬ ‫‪c‬أ‬ ‫‪+‬‬ ‫هسا العمو ‪.n‬‬ ‫وم ا تالم بيذ ‪ b+I‬وبيمة‪ a+rj‬ح وبعد ذلك وم إ الاا إل المعالجات‬ ‫األ رى وبعد ذلك ا ن هل ‪ c+j>0‬؟ فإن عالو (لعذ) الهل الهال هو الهل‬ ‫األم لح وإال ئستمر الخقول التالية الت‬ ‫وم ااا الم ا لة هل ‪ a+is < 0‬؟ فإن‬ ‫كالو (لعذ) فالهل ير موجو ح وإال كر ئن يم العمليات من جديد‪.‬‬ ‫‪ 2-7-4‬حساب عامل التسريع للطريقة الثانية‬ ‫الوقو المستغرق لتن يـم العمليـات المهو يـة ‪ -‬النسـ ة إلـ الم ـاذ‪ -‬هـو ‪ 0.22‬ثاليـةح مضـافاذ‬ ‫إليف الوقو الم ستغرقف المعالت السا س )‪ (CPU6‬وي د اـ(‪ )0.24‬ثالية فيكون الوقـو المسـتغرق‬ ‫لكل المعالجات هو‪:‬‬ ‫وعليف فإن عامل التسري‬ ‫‪(0.22 + 0.24)*3 = 1.38sec‬‬ ‫يكون عبي اذرح ومن الممكن سا ف عن ةريق‪:‬‬ ‫وقــو التن يم لـ‪ M1‬ا تخدام معالت وا د )‪(Ts‬‬ ‫التسريع ‪= Sp‬‬ ‫وقو التن يم لـ‪ M‬ا تخدام ‪ P‬من المعالجات )‪(Tp‬‬ ‫التسري = ‪1.92 = 0.46 / 2.65‬‬ ‫‪81‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫إذن فان القري ة ال الية ئكون أ ر من القري ة األول ؛ ألن عامل التسري فياـا أكبـرح أمـا‬ ‫من لا ية عد المعالجات فإن عد المعالجات ف القري ة ال الية هو أكبـر مـن القري ـة األولـ وهـ ما‬ ‫عن ريا ل ف الكل ةح إذن عندما ئكون لدينا مسألة فياا قيو ع يرل فمن المستهسن ا ـتخدام القري ـة‬ ‫ال الية أما إذا عان لدينا مسألة فياا قيو قليلة؛ فإن القري ة األول ئكون ه األفضل‪.‬‬ ‫‪ 8-4‬الطريقة المتوازية الجديدة الثالثة‪:‬‬ ‫ف‬ ‫الة وجـو مسـألة ئكـون فياـا عـد ال يـو أكبـر مـن عـد المتغيـراتح فالقري ـة ال اليـة ال‬ ‫ئكـون منا ـ ة للعمــل؛ ألن ــاهرل التـوار فياــا ئكــون قليلــةح فللــتخلت مـن هــما المشــكلة ل تــرح ةري ــة‬ ‫أ رى للتوار ح وذلك عن ةريق الص ول من الجدوذ الخاص هـل القري ـة ال ر ـة‪ .‬إذ مكـن ئ سـيذ‬ ‫المعالجات عل ال يو ح فم الذ المعالت األوذ ين ـم العمليـات التـ ئـتذ فـ ال يـد األوذح والمعـالت ال ـال‬ ‫ين ــم العملي ــات التـ ـ ئ ــتذ فـ ـ ال ي ــد ال ــال ‪ ..‬وهك ــما‪ .‬فـ ـ القري ــة الس ــا ة عن ــا لهت ــاج إلـ ـ ع ــد م ــن‬ ‫المعالجات ساو (‪ .)n+2‬أما ف هما القري ة فإلنا ول لهتاج إل )‪ (m+2‬من المعالجات‪.‬‬ ‫ويمكن ئم يل القري ة الجديدل عن ةريق الشكل اآلئ ‪:‬‬ ‫‪CPUm+1‬‬ ‫‪ .1‬يستلم قيمة ‪b+r‬‬ ‫‪ .2‬يستلم قيمة ‪a+rj‬‬ ‫‪ .3‬يقوم بحساب‬ ‫‪b+m=bm-ars b+r‬‬ ‫‪a+mj=amj-ams a+rj‬‬ ‫‪ .4‬يرسل القيم إلى‬ ‫‪CPU m+2‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪4‬‬ ‫‪CPU3‬‬ ‫‪ .1‬يستلم قيمة ‪b+r‬‬ ‫‪ .2‬يستلم قيمة ‪a+rj‬‬ ‫‪ .3‬يقوم بحساب‬ ‫‪b+1=b1-ars b+r‬‬ ‫‪a+1j=a1j - a1s a+rj‬‬ ‫‪ .4‬يرسل القيم إلى‬ ‫‪CPU m+2‬‬ ‫‪CPU2‬‬ ‫‪ .1‬يقوم بحساب‬ ‫‪+‬‬ ‫‪a rj = arj/ ars‬‬ ‫‪c+j = cj - cs a+rj‬‬ ‫‪j=1,..,n‬‬ ‫‪ .2‬يرسل القيم إلى‬ ‫‪CPU m+2‬‬ ‫‪CPU1‬‬ ‫‪ .1‬يقوم بحساب‪:‬‬ ‫‪b+r = br / ars‬‬ ‫‪z+o = zo + cs b+r‬‬ ‫‪ .2‬يرسل القيم إلى‬ ‫‪CPU m+2‬‬ ‫‪CPU m+2‬‬ ‫يقوم باستالم القيم من ‪ CPU1‬و‪. CPU2‬‬ ‫يرسل قيمة ‪ a+rj‬و ‪ b+r‬إلى المعالجات األخرى‪.‬‬ ‫يقارن هل ‪ c+j>0‬؟ فإن كانت (نعم) الحل الحالي هو الحل األمثل‪ ،‬وإال تستمر الخطوة التالية‪.‬‬ ‫يقارن هل ‪ a+is < 0‬؟ فإن كانت (نعم) فالحل غير موجود‪ ،‬وإال يكرر تنفيذ العمليات من جديد‪.‬‬ ‫الشكل (‪ :)6‬ئوري األوامر عل المعالجات ف القري ة ال ال ة للتوار ف القري ة ال ر ة‪.‬‬ ‫‪ 1-8-4‬توزيع األوامر على المعالجات للطريقة المتوازية الثالثة‬ ‫‪82‬‬ ‫تحسينات الطريقة الفردية …‬ ‫ويمكن ئوييح عمل المعالجات الشكل اآلئ ‪:‬‬ ‫الـ ‪:CPU1‬‬ ‫الـ ‪:CPU2‬‬ ‫الـ ‪:CPU3‬‬ ‫اآلئ ‪:‬‬ ‫وم هسا‬ ‫بيذ ‪ b+r‬الجديدل وبيذ الة الادل الجديدل أ العمو ‪ Value‬ف الجدوذ الخاص‬ ‫القري ة ال ر ةح وير ل القيذ إل ‪.CPUm+2‬‬ ‫وم هسا‬ ‫بيذ‬ ‫‪rj‬‬ ‫اآلئ ‪:‬‬ ‫‪ a‬و‪( c j‬لكل ‪ ) j‬الجديدل وير ل القيذ إل ‪. CPUm+2‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫اآلئ ‪:‬‬ ‫وم هسا‬ ‫ا تالم بيذ ‪ b r‬و‬ ‫‪+‬‬ ‫‪rj‬‬ ‫‪ a‬ح وبعد ذلك وم هسا‬ ‫‪+‬‬ ‫بيذ‬ ‫‪1‬‬ ‫‪b‬و‬ ‫‪+‬‬ ‫‪1j‬‬ ‫‪ a‬أ‬ ‫‪+‬‬ ‫هسا الص‬ ‫األوذ‪.‬‬ ‫الـ ‪:CPUm+1‬‬ ‫اآلئ ‪:‬‬ ‫وم هسا‬ ‫ا ــتالم بــيذ ‪ b r‬و‬ ‫‪+‬‬ ‫الـ ‪:CPUm+2‬‬ ‫الص‬ ‫‪rj‬‬ ‫‪ a‬ح وبعــد ذلــك ــوم هســا‬ ‫‪+‬‬ ‫بــيذ‬ ‫‪m‬‬ ‫‪ b‬و‬ ‫‪+‬‬ ‫‪mj‬‬ ‫‪+‬‬ ‫‪a‬‬ ‫أ‬ ‫هســا‬ ‫‪.m‬‬ ‫وم هسا‬ ‫اآلئ ‪:‬‬ ‫وم ا تالم بيمة ‪ b+r‬من الــ‪ CPU1‬وبيمـة‪ a+rj‬مـن الــ‪CPU2‬ح وبعـد ذلـك ـوم‬ ‫ا الاا إل المعالجات األ رى وبعـد ذلـك ـا ن هـل ‪ c+j>0‬؟ فـإن عالـو (لعـذ)‬ ‫الهل الهال هو الهل األم لح وإال ئستمر الخقول التاليةح الت‬ ‫وم ااا الم ا لة‬ ‫هل ‪ a+is<0‬؟ فإن عالو (لعذ) فالهل ير موجو ح وإال كر ئن يم العمليات من‬ ‫جديد‪.‬‬ ‫‪ 2-8-4‬حساب عامل التسريع للطريقة الثالثة‬ ‫الوقــو المســتغرق لتن يــم العمليــات المهو يــة ‪ -‬النسـ ة إلـ الم ــاذ‪ -‬هــو‪ 0.37‬ثاليــةح مضــافاذ‬ ‫إليــف الوقــو الــم ســتغرقف المعــالت ال ار ـ )‪ (CPU4‬وي ــد اــ(‪ )0.23‬ثاليــة فيكــون الوقــو المســتغرق‬ ‫لكل المعالجات هو‪:‬‬ ‫‪(0.37 + 0.23)*3 = 1.8 sec‬‬ ‫وعليف فإن عامل التسري يكون عبي اذرح ومن الممكن سا ف عن ةريق‪:‬‬ ‫وقــو التن يم لـ‪ M1‬ا تخدام معالت وا د )‪(Ts‬‬ ‫التسريع ‪= Sp‬‬ ‫وقو التن يم لـ‪ M‬ا تخدام ‪ P‬من المعالجات )‪(Tp‬‬ ‫التسري = ‪1.47 = 1.8 / 2.65‬‬ ‫‪83‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ ‫إذن ئكــون القري ــة ال ال ــة أ ــر مــن القري ــة األولـ وأ قــأ مــن القري ــة ال اليــة؛ وذلــك ألن‬ ‫‪ m<n‬فـ ــإن (‪ )n=4‬اينمـ ــا (‪ – )m=2‬النس ـ ـ ة إل ـ ـ الم ـ ــاذ (‪ -)1‬ولكـ ــن لأ ـ ــم انظـ ــر االعت ـ ــا عـ ــد‬ ‫المعالجــاتح إذ ا ــتخدمنا فـ القري ــة ال اليــة (‪ )6‬معالجــات‪ .‬أمــا فـ القري ــة ال ال ــة؛ ف ــد عالــو (‪)4‬‬ ‫معالجات ف طح اينما عان عد المعالجات ف القري ة األول (‪ )3‬معالجات الماذ‪.‬‬ ‫‪ .5‬مقارنة بين الطرائق المتوازية الثالث الجديدة‪:‬‬ ‫من الذ النتالت الت‬ ‫ارت لال‬ ‫اآلئ ‪:‬‬ ‫إن هناك فروقاذ اين القرالق مكن ئلخيصـاا الجـدوذ‬ ‫الجدوذ (‪ :)5‬ال روق اين القرالق المتوارية ال الث الجديدل للقري ة ال ر ة العا ة‬ ‫‪1.‬‬ ‫‪2.‬‬ ‫‪3.‬‬ ‫‪4.‬‬ ‫الطريقــة األولـى‬ ‫نحتاج إلى ثالث معالجات‬ ‫غيـــر مكلفـــن ان المســـا‬ ‫كافـــن تحتـــاج إلـــى ثـــالث‬ ‫معالجات‪.‬‬ ‫عندما تكون المســيلن كبيــر‬ ‫تيخــذ وقتــا ي كبيــرا ي بالنســبن‬ ‫للطريقتين االخريين‪.‬‬ ‫الحمـــــ يكــــــون علــــــى‬ ‫المعالجـــات ب ـــك متســـاو‬ ‫تقريباي‪.‬‬ ‫الطريقـة الثــانيـة‬ ‫نحتــــاج إلــــى ‪ n+2‬مــــن‬ ‫المعالجات‬ ‫تعــد مكلفــن لمســيلن ـ ير‬ ‫ولهذا يفض استخدامها فـ‬ ‫المسا الكبير ‪.‬‬ ‫عنــدما تكــون ‪ n>m‬يكــون‬ ‫وقــــت التنفيــــذ قــ ـ مــــن‬ ‫الطريقن الثالثــن ولكــن بعــدد‬ ‫معالجات كثر‪.‬‬ ‫الحم علــى المعــالج ااو‬ ‫وااخير يكون كثيراي‪.‬‬ ‫‪84‬‬ ‫الطريقــة الثالثــة‬ ‫نحتــــاج إلــــى ‪ m+2‬مــــن‬ ‫المعالجات‬ ‫تعــد مكلفــن لمســيلن ـ ير‬ ‫ولهذا يفض استخدامها فـ‬ ‫المسا الكبير ‪.‬‬ ‫عنــدما تكــون ‪ nm‬يكــون‬ ‫وقــــت التنفيــــذ قــ ـ مــــن‬ ‫الطريقن الثانيــن ولكــن بعــدد‬ ‫معالجات كثر‪.‬‬ ‫الحم يكــون علــى المعــالج‬ ‫ااخير كثيراي‪.‬‬ ‫تحسينات الطريقة الفردية …‬ ‫المصادر‬ ‫(‪)1‬‬ ‫االلو ـ ـ ح ‪.‬أ م ــد ص ــالح وع ــا ذ رين ــل البي ــائ (‪ :)1989‬مقدمـــة فـــي التحليـــل العـــدديح‬ ‫(‪)2‬‬ ‫ي ح ‪ .‬عل مهمد صا ق و ‪ .‬ااتسام عمـاذ الـدين (‪ :)1986‬مبـاد التحليـل العـدديح‬ ‫(‪)3‬‬ ‫أ مــد مرشــد (‪" :)2000‬تقصــي خوارزميــات عدديــة لحــل المعــاد ت‬ ‫مق عة التعليذ العال ف الموصل‪.‬‬ ‫مديرية ا الكتا للق اعة والنشرحجامعة الموصل‪.‬‬ ‫عبــد الهبيــا عبــد‬ ‫التفاضـــلية ا عتياديـــة الصـــلبة المالئمـــة للحاســـبات المتوازيـــة"ح أةرو ــة عت ــو ااح علي ــة‬ ‫العلومح جامعة الموصل ‪.‬‬ ‫(‪)4‬‬ ‫عبــد ذ ــا جـ از (‪ :)1986‬بحــوث العمليــاتح و ار ل التعلـ يذ العــال وال هــط العلمـ ح جامعــة‬ ‫(‪)5‬‬ ‫هيـ ـ قا ــذ إا ـراليذ ال اي ــل (‪2002‬م)‪" :‬حـــل مســـتلة التخصـــيص باســـتخدام خوارزميـــة‬ ‫غدا ح الق عة ال الية‪.‬‬ ‫متوازية"ح‬ ‫الة ماجستير ح كلية علوم الها ات والريايياتح جامعة الموصل‪.‬‬ ‫‪Bashir M. S., Khalaf and Khlil K.Abbo (2001): “Parallel Revised‬‬ ‫‪Simplex Method”, Raf. Jour. Sci., Vol. 13, No. 1, pp51-60.‬‬ ‫]‪[6‬‬ ‫‪Bunday B. D. and Garside (1987): “Linear Programming in‬‬ ‫‪Pascal”, Edwared Arnold, London, U.K.‬‬ ‫]‪[7‬‬ ‫‪Flynn M. J. (1972): “Some Computer Organization and their‬‬ ‫‪Effectiveness”. IEEE Transaction on /computers, Vol. C-21, pp.‬‬ ‫‪948-960.‬‬ ‫]‪[8‬‬ ‫‪Gavriel Yarmish & Richard Van Slyke (2001): “An‬‬ ‫‪Implementation of the Standard Simplex Method”, Technical‬‬ ‫‪Report, TE-CIS-2001-05.‬‬ ‫]‪[9‬‬ ‫‪http://ouray.cudenver.edu/~sfhopkin/, “CSC 5809 Parallel and‬‬ ‫‪Distributed Systems”, Stephen Hopkins.‬‬ ‫]‪[10‬‬ ‫‪http://www.cs.bath.ac.uk/~amb/UQC007H3/ARCHITEC/‬‬ ‫‪ARCH400. HTM‬‬ ‫]‪[11‬‬ ‫‪http://www.krellinst.org/UCES/archive/classes/ASC/section2_6_1.‬‬ ‫‪html, MACS 440/563: “Parallel Computing for Scientists and‬‬ ‫‪Engineers”, Manavendra Misra.‬‬ ‫]‪[12‬‬ ‫‪http://WWW.personal.rdg.ac.Uk/~sswills/history.html.‬‬ ‫]‪[13‬‬ ‫‪85‬‬ ‫بشير محمد صالح و محمد واجد محمد علي‬ [14] http://www.ualberta.ca/CNS/hyperdispatch/HyperDispatch1/ SP2Accounts.html [15] http://www-unix.mcs.anl.gov/dbpp/text/node8.html, “Designing and Building Parallel Programs”, Ian Foster. [16] http://www. math. washington. edu / ~king / coursedir / m308a01, Linear programming and Simplex Method, Chapter 11. 86