Academia.eduAcademia.edu

Parallel Gaussian Elimination Method

2008, AL-Rafidain Journal of Computer Sciences and Mathematics

The aim of the project is to develop parallel approaches for Gaussian Elimination Methods 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 Gaussian Elimination Method, through developing parallel methods appropriate to be executed on MIMD type computers. In this paper, three algorithms were suggested for paralleling a developed algorithm of Gaussian Elimination Method and a comparison was made between the three algorithms and the original. As we have been able to accelerate the three parallel methods and the speedup was one of the following: Speedup =

2008 )2(‫) العدد‬5( ‫مجلة الرافدين لعلوم الحاسبات والرياضيات المجلد‬ Parallel Gaussian Elimination Method Muhammad W. Muhammad Ali College of Education for Girls University of Mosul, Iraq Received on: 17/10/2007 Accepted on: 04/03/2008 ABSTRACT The aim of the project is to develop parallel approaches for Gaussian Elimination Methods 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 Gaussian Elimination Method, through developing parallel methods appropriate to be executed on MIMD type computers. In this paper, three algorithms were suggested for paralleling a developed algorithm of Gaussian Elimination Method and a comparison was made between the three algorithms and the original. As we have been able to accelerate the three parallel methods and the speedup was one of the following: Speedup = Sp = t s 2.43 = = 1.6531 t p 1.47 , no. of processor is (50) 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: linear programming, Gaussian Elimination Method. ‫طريقة كاوس للحذف المتوازية‬ ‫محمد واجد محمد علي‬ ‫ جامعة الموصل‬،‫كلية التربية للبنات‬ 2008/03/04 :‫تاريخ قبول البحث‬ ‫الملخص‬ 2007/10/17 :‫تاريخ استالم البحث‬ Gaussian Elimination ‫هدف البحث هو تطوير طرائق متوازية لطريقة كاوس للحذف‬ .‫( والتي تستعمل في البرمجة الخطية لحل منظومات من النماذج الخطية‬GE) ‫ان معظم هذه النماذج تتطلب وقتاً كبي اًر للتنفيذ عند المعالجة باستخدام حاسبات ذات‬ ‫ ونحاول في هذا البحث تقليل هذا الوقت وزيادة كفاءة الخوارزميات لطريقة كاوس‬،‫معالج تتابعي‬ .MIMD ‫للحذف من خالل تطوير ثالث طرائق متوازية مالئمة للتنفيذ على حاسبات نوع‬ 59 ‫محمد واجد محمد علي‬ ‫في هذا البحث تم اقتراح ثالث خوارزميات جديدة للتوازي مطورة نسبة الى طريقة كاوس‬ ‫للحذف )‪ Gaussian Elimination (GE‬كما تمت المقارنة بين هذه الخوارزميات المقترحة مع‬ ‫الخوارزمية االصلية‪ .‬إذ تمكنا من تسريع الطرائق الثالث باستخدام التوازي وكان عامل التسريع الحد‬ ‫الطرائق كاالتي‪:‬‬ ‫‪t‬‬ ‫‪2.43‬‬ ‫‪= 1.6531‬‬ ‫= ‪Sp = s‬‬ ‫‪t p 1.47‬‬ ‫إذ أن عدد المعالجات المستخدمة في هذه الطريقة هو (‪ )50‬معالجاً‪.‬‬ ‫وعلى العموم أظهرت النتائج العملية والبرمجيات الحاسوبية المقترحة لهذه الخوارزميات الجديدة بانها‬ ‫افضل من مثيالتها التي تنفذ على حسابات ذات معالج تتابعي نسبة الى عنصري زمن التنفيذ‬ ‫وسرعة الخوارزمية‪.‬‬ ‫الكلمات المفتاحية‪ :‬البرمجة الخطية‪ ،‬طريقة الحذف لكاوس‪.‬‬ ‫‪ .1‬مقدمة‪:‬‬ ‫ان نظام المعادالت الجبرية الخطية هو عبارة عن عدد من المعادالت الجبرية الخطية في‬ ‫عدد من المجاهيل ‪ ،‬ويكون حل النظام هو ايجاد قيم هذه المجاهيل‪ ،‬ومن الممكن التعرف على‬ ‫الشكل العام لمنظومة المعادالت الجبرية الخطية التي تتكون من ‪ n‬من المعادالت الخطية و‪ n‬من‬ ‫المجاهيل بالصيغة‪:‬‬ ‫)‪... (1‬‬ ‫‪+ a1n x n = b1‬‬ ‫‪+ a 2n x n = b 2‬‬ ‫‪a12 x 2 + ‬‬ ‫‪a11x1 +‬‬ ‫‪a 22 x1 + ‬‬ ‫‪a 21x1 +‬‬ ‫‪‬‬ ‫‪+ a nn x n = b n‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪a n1x1 + a n 2 x 2 + ‬‬ ‫اذ ان المعامالت ‪ (Coefficients) aij , i,j = 1..n‬وكذلك الحدود المطلقة‬ ‫)‪ bi , i = 1..n (Free terms‬تكون معطاة اما ‪ xi, i = 1..n‬فهي المجاهيل مطلوب الحصول‬ ‫على قيمها [‪.]2‬‬ ‫وباإلمكان كتابة هذه المنظومة بصيغة موجزة على النحو اآلتي [‪:]14[ ،]6‬‬ ‫‪AX = B‬‬ ‫اذ ان ‪:‬‬ ‫‪60‬‬ ‫طريقة كاوس للحذف المتوازية‬ ‫‪ a1n ‬‬ ‫‪ x1 ‬‬ ‫‪ b1 ‬‬ ‫‪‬‬ ‫‪b ‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪x‬‬ ‫‪ a 2n ‬‬ ‫‪, X =  2, B =  2‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ a nn ‬‬ ‫‪x n ‬‬ ‫‪b n ‬‬ ‫‪ a11 a12‬‬ ‫‪a‬‬ ‫‪a 22‬‬ ‫‪A =  21‬‬ ‫‪ ‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪a n1 a n 2‬‬ ‫هذا النوع من المعادالت مهم جداَ وبرز بشكل مكرر في المواد العلمية والطبية والتطبيقات‬ ‫االقتصادية‪ ،‬العديد من طرائق التحليالت العددية تستخدم نظام المعادالت الخطية لتقريب اكثر‬ ‫المسائل الرياضية غير الخطية‪ ،‬فعلى سبيل المثال تنبؤ حالة الطقس فرع من العلم الذي يجب ان‬ ‫يحل انظمة معادالت كبيرة جداً لضبط احوال الطقس المستقبلية‪ .‬وطريقة كاوس للحذف هي الطريقة‬ ‫التي تستطيع ان تؤدي هذه المهمة بطريقة مضبوطة وسليمة [‪.]14‬‬ ‫ومن المعلوم ان معظم هذه االنظمة تأخذ وقتاً طويالً للتنفيذ عند المعالجة باستخدام‬ ‫حاسبات ذات معالج تتابعي‪ ،‬فلهذا السبب كان هدف البحث هو ايجاد طرائق جديدة متوازية لتقليل‬ ‫هذا الوقت وزيادة كفاءة الطريقة‪.‬‬ ‫‪ .2‬طريقة كاوس للحذف‪:‬‬ ‫وهي من الطرائق المباشرة الشائعة وابسطها لحل منظومة المعدالت الخطية‪ ،‬نبدأ مع نظام‬ ‫المعادالت (‪ )1‬في البداية ننشئ المصفوفة الموسعة ‪:Argument Matrix‬‬ ‫‪ x1 ‬‬ ‫‪x ‬‬ ‫‪ 2‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫‪x n ‬‬ ‫)‪... (2‬‬ ‫‪b1 ‬‬ ‫‪‬‬ ‫‪b2 ‬‬ ‫‪ ‬‬ ‫‪‬‬ ‫‪b n ‬‬ ‫‪ a 1n‬‬ ‫‪ a 2n‬‬ ‫‪ ‬‬ ‫‪ a nn‬‬ ‫‪a 12‬‬ ‫‪a 22‬‬ ‫‪‬‬ ‫‪a n2‬‬ ‫‪ a 11‬‬ ‫‪‬‬ ‫‪a 21‬‬ ‫‪ ‬‬ ‫‪‬‬ ‫‪a n1‬‬ ‫سنقوم بتحويل هذه المصفوفة الى مصفوفة مثلثية عليا [‪:]14‬‬ ‫‪ x1 ‬‬ ‫‪x ‬‬ ‫‪ 2‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫‪x n ‬‬ ‫)‪...(3‬‬ ‫)‪( n −1‬‬ ‫‪a 12‬‬ ‫‪ a 1(nn −1) b1( n −1) ‬‬ ‫‪‬‬ ‫)‪n −1‬‬ ‫‪a (22‬‬ ‫‪ a (2nn−1) b (2n −1) ‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪ ‬‬ ‫)‪n −1‬‬ ‫‪0‬‬ ‫‪b (nn −1) ‬‬ ‫‪ a (nn‬‬ ‫)‪a ( n −1‬‬ ‫‪ 11‬‬ ‫‪ 0‬‬ ‫‪‬‬ ‫‪ ‬‬ ‫‪ 0‬‬ ‫ومنها نحصل على ما يأتي‪:‬‬ ‫)‪b ( n −1‬‬ ‫‪xn = n‬‬ ‫)‪a (nn −1‬‬ ‫ومن ثم باستخدام طريقة التعويض التراجعي لنحصل على قيم ‪ xi , i = 1..n-1‬وذلك عن‬ ‫طريق المعادلة اآلتية [‪:]14‬‬ ‫‪61‬‬ ‫محمد واجد محمد علي‬ ‫‪n‬‬ ‫‪i = 1..n - 1‬‬ ‫; ) ‪ a ij x j‬‬ ‫‪(b i −‬‬ ‫‪j = i +1‬‬ ‫‪1‬‬ ‫‪a ii‬‬ ‫= ‪xi‬‬ ‫‪ 2.1‬خطوات حل طريقة كاوس للحذف [‪:]8[،]6‬‬ ‫تنفذ خطوات حل طريقة كاوس للحذف عن طريق خطوتين اساسيتين‪:‬‬ ‫‪ 2.1.1‬الحذف االمامي‪:‬‬ ‫أوال‪ :‬ازالة ‪ x1‬من المعا دلة الثانية باستخدام المعادلة االولى‪ ،‬وذلك بضرب المعادلة االولى‬ ‫‪‬‬ ‫‪‬‬ ‫بـ ‪  a 21 ‬ومن ثم طرحها من المعادلة الثانية لنحصل على المعادلة الثانية الجديدة والتي تكون‬ ‫‪ a11 ‬‬ ‫خالية من ‪:x1‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫‪ba‬‬ ‫‪Eq 2   a 21 − 21 a11 x1 +  a 22 − 21 a12 x 2 +  +  a 2n − 21 a1n x n = b 2 − 1 21‬‬ ‫‪a11‬‬ ‫‪a11‬‬ ‫‪a11‬‬ ‫‪a11‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫أو باإلمكان كتابتها بالشكل اآلتي‪:‬‬ ‫‪Eq2  a 22 x 2 +  + a 2n x n = b2‬‬ ‫اذ ان ‪:‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫‪b a‬‬ ‫‪a 22 = a 22 − 21 a 12 ,  , a 2n = a 2n − 21 a 1n , b 2 = b 2 − 1 21‬‬ ‫‪a 11‬‬ ‫‪a 11‬‬ ‫‪a 11‬‬ ‫وبالطريقة نفسها يتم حذف ‪ x1‬من المعادلة الثالثة والرابعة و‪ ...‬الى المعادلة ‪ n‬وذلك من‬ ‫حساب االتي‪:‬‬ ‫‪ Eq1 ‬‬ ‫‪  a 31‬‬ ‫‪Eq3 = Eq3 − ‬‬ ‫‪ a11 ‬‬ ‫‪ Eq1 ‬‬ ‫‪  a 41‬‬ ‫‪E q 4 = Eq4 − ‬‬ ‫‪ a 11 ‬‬ ‫)‪...(4‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪ Eq1 ‬‬ ‫‪  a n1‬‬ ‫‪Eqn = Eqn − ‬‬ ‫‪ a11 ‬‬ ‫فنحصل على النظام اآلتي‪:‬‬ ‫‪62‬‬ ‫‪= b1‬‬ ‫‪= b 2‬‬ ‫‪= b 3‬‬ ‫‪+ a 1n x n‬‬ ‫‪+ a 2n x n‬‬ ‫‪+ a 3n x n‬‬ ‫‪‬‬ ‫‪= b n‬‬ ‫‪‬‬ ‫‪+ a nn x n‬‬ ‫‪a 11 x 1 + a 12 x 2 + ‬‬ ‫‪a 22 x 2 + ‬‬ ‫‪a 32 x 2 + ‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪a n 2 x 2 + ‬‬ ‫طريقة كاوس للحذف المتوازية‬ ‫ثانيا‪ :‬ازالة ‪ x2‬من المعادلتين الثالثة والرابعة ‪ ...‬والى المعادلة ‪ n‬وبالطريقة نفسها التي‬ ‫تمت ازالة ‪ x1‬من باقي المعادالت‪ ،‬أي انه‪:‬‬ ‫‪ Eq 2 ‬‬ ‫‪  a 32‬‬ ‫‪Eq3 = Eq3 − ‬‬ ‫‪ a 22 ‬‬ ‫وهذا اإلجراء يتكرر على المعادالت الباقية لنحصل على ما يأتي‪:‬‬ ‫‪= b1‬‬ ‫‪= b2‬‬ ‫‪= b3‬‬ ‫‪‬‬ ‫‪= bn‬‬ ‫‪a 13 x 3 + ‬‬ ‫‪a 23 x 3 + ‬‬ ‫‪ x3 + ‬‬ ‫‪a 33‬‬ ‫‪‬‬ ‫‪a 2 n 3 x 3 + ‬‬ ‫‪+ a 1n x n‬‬ ‫‪+ a 2n x n‬‬ ‫‪+ a 3 n x n‬‬ ‫‪‬‬ ‫‪ xn‬‬ ‫‪+ a nn‬‬ ‫‪a 11x1 + a 12 x 2 +‬‬ ‫‪a 22 x1 +‬‬ ‫ونحذف ‪ x3‬من المعادلتين الرابعة والخامسة‪ ...‬إلى المعادلة ‪ ، n‬ونحذف ‪ x4‬من المعادلة الخامسة‬ ‫‪ ...‬الى المعادلة ‪ ،n‬وهكذا الى ان نحصل على النظام اآلتي‪:‬‬ ‫‪= b1‬‬ ‫‪= b 2‬‬ ‫‪= b 3‬‬ ‫‪+ a 1n x n‬‬ ‫‪+ a 2n x n‬‬ ‫‪+ a 3 n x n‬‬ ‫‪‬‬ ‫‪= bn‬‬ ‫‪‬‬ ‫)‪n −1‬‬ ‫‪+ a (nn‬‬ ‫‪xn‬‬ ‫‪a 11 x1 + a 12 x 2 + a 13 x 3 + ‬‬ ‫‪a 22 x1 + a 23 x 3 + ‬‬ ‫‪ x3 + ‬‬ ‫‪a 33‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪ 2.1.2‬التعويض التراجعي‪:‬‬ ‫نبدأ من المعادلة ‪ n‬سنحصل على اول العناصر وهو ‪xn‬‬ ‫‪:‬‬ ‫)‪b ( n −1‬‬ ‫‪xn = n‬‬ ‫)‪n −1‬‬ ‫‪a (nn‬‬ ‫ونحصل على بقية العناصر من المعادلة اآلتية‪:‬‬ ‫‪n‬‬ ‫‪ a ij(i−1) x j‬‬ ‫‪, i = n − 1, n − 2,...,1‬‬ ‫‪b i(i−1) −‬‬ ‫‪j=i+1‬‬ ‫)‪a ii(i−1‬‬ ‫‪ 2.2‬خوارزمية طريقة كاوس للحذف [‪:]12‬‬ ‫الخطوة ‪)1‬‬ ‫الحذف االمامي‪:‬‬ ‫‪Do k = 1; N - 1‬‬ ‫‪Do i = k + 1; N‬‬ ‫‪63‬‬ ‫= ‪xi‬‬ ‫محمد واجد محمد علي‬ ‫الخطوة ‪)2‬‬ ‫‪bi = bi – (aik/akk) bk‬‬ ‫‪Do j = k + 1;N‬‬ ‫‪aij = aij - (aik/akk) akj‬‬ ‫‪Repeat j‬‬ ‫‪Repeat i‬‬ ‫‪Repeat k‬‬ ‫التعويض التراجعي‬ ‫‪xN = bN /aNN‬‬ ‫‪Do i = N - 1; 1‬‬ ‫‪yi = 0‬‬ ‫‪Do j = i + 1;N‬‬ ‫‪yi = yi + aijxj‬‬ ‫‪Repeat j‬‬ ‫‪xi = (bi - yi)/aii‬‬ ‫‪Repeat i‬‬ ‫‪ 2.3‬مثال تطبيقي‪:‬‬ ‫باستخدام طريقة كاوس للحذف جد حالً‬ ‫‪x4 + 9 x5 = 273‬‬ ‫‪x4 + 5 x5 = 112‬‬ ‫‪x4 + 8 x5 = 266‬‬ ‫‪x4 + 10 x5 = 227‬‬ ‫‪x4 + 2 x5 = 213‬‬ ‫وبعد اجراء خطوات الحل يكون الحل كاالتي‪:‬‬ ‫لمنظومة المعادالت اآلتية‪:‬‬ ‫‪x2 + 10 x3 + 12‬‬ ‫‪x2 + 4 x3 + 3‬‬ ‫‪x2 + 12 x3 + 8‬‬ ‫‪x2 + 5 x3 + 12‬‬ ‫‪x2 + 11 x3 + 9‬‬ ‫‪6‬‬ ‫‪3‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪4‬‬ ‫‪x1 +‬‬ ‫‪x1 +‬‬ ‫‪x1 +‬‬ ‫‪x1 +‬‬ ‫‪x1 +‬‬ ‫‪11‬‬ ‫‪7‬‬ ‫‪10‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪x1 = 3 , x 2 = 8 , x 3 = 9 , x 4 = 7 , x 5 = 2‬‬ ‫‪ .3‬التوازي في طريقة كاوس للحذف‪:‬‬ ‫طرئ ــق متوازيـ ـ ة جدي ــدة ت ــم التوص ــل إليه ــا م ــن خ ــالل د ارس ــتنا‬ ‫س ــنناقي ف ــي ه ــذا البن ــد ث ــالث ا‬ ‫لموض ــوع الت ـوازي لطريق ــة ك ــاوس للح ــذف‪ ،‬علم ـاً ان هن ــا بحوثـ اً أجري ــت إليج ــاد ح ــل نظ ــام المع ــادالت‬ ‫الخطي ــة بطريق ــة الح ــذف لك ــاوس‪ ،‬مث ــل بح ــث ‪ ]13[ Khalil K. Abbo‬ال ــذي اقت ــرح خـ ـوارزميتين‬ ‫متـ ـ ـ ـ ـ ـ ـ ـ ـ ـوازيتين‪ ،‬اعتمـ ـ ـ ـ ـ ـ ـ ـ ـ ــد فـ ـ ـ ـ ـ ـ ـ ـ ـ ــي ا ولـ ـ ـ ـ ـ ـ ـ ـ ـ ــى علـ ـ ـ ـ ـ ـ ـ ـ ـ ــى تـ ـ ـ ـ ـ ـ ـ ـ ـ ـوازي العمليـ ـ ـ ـ ـ ـ ـ ـ ـ ــات فـ ـ ـ ـ ـ ـ ـ ـ ـ ــي الصـ ـ ـ ـ ـ ـ ـ ـ ـ ــفوف‬ ‫)‪ ،Parallel Gaussian Elimination Based on Rows (PGER‬واعتمـد علـى الثانيـة علـى‬ ‫توازي ا عمدة )‪.Parallel Gaussian Elimination Based on Columns (PGEC‬‬ ‫وبما إننا نتكلم على الحاسبات المتوازية فال بد من التطرق إليها‪:‬‬ ‫‪ 3.1‬الحاسبات المتـوازية‪:‬‬ ‫‪64‬‬ ‫طريقة كاوس للحذف المتوازية‬ ‫يعود الفضل للتقدم السريع في صناعة الحاسبات ودخولها مجاالت عدة مثل‬ ‫التجارة والعلوم والتعليم لنموذج الحاسبة ا ولى )‪ (Single Machine Model‬لحاسبات ‪Von‬‬ ‫‪ ،Neuman‬وكما هو معروف فان هذه الحاسبات تمتلك وحدة معالجة مركزية واحدة )‪(CPU‬‬ ‫مرتبطة بوحدة خزن )‪( (Memory‬الشكل)‪ ،)(1‬وان المعالج يقوم بتنفيذ برنامج مخزون والذي يحدد‬ ‫بواسطة مجموعة متسلسلة من علميات القراءة والكتابة على الذاكرة [‪.]10‬‬ ‫وحدة المعالجة‬ ‫ذاكرة‬ ‫المركزية‬ ‫الشكل (‪ )1‬حاسبة ‪ ،Von Neuman‬تقوم وحدة المعالجة المركزية )‪ (CPU‬بانجاز البرنامج الذي‬ ‫ينفذ بشكل تسلسلي لعمليات القراءة والكتابة على الذاكرة المحجوزة [‪.]10‬‬ ‫بينما في الحاسبات المتوازية فهو ايجاد نموذج متو ٍاز يتكون من عدد من حاسبات ‪Von‬‬ ‫‪( Neuman‬الشكل)‪ ))2‬يكون عاماً لكثير من التطبيقات وان تمتلك الحاسبة المتوازية ميزتين‬ ‫اساسيتين هما (البساطة والواقعية)‪ ،‬والبساطة تعني امكانية فهم الحاسبة والبرمجة لها‪ ،‬والواقعية هي‬ ‫ضمان تنفيذ النماذج البرمجية لها بكفاءة معقولة [‪.]9‬‬ ‫الشكل (‪ : )2‬نموذج حاسبة متوازية مثالية‪ ،‬تحتوي كل نقطة ارتباط على حاسبة من نوع ‪Von‬‬ ‫‪ ،Neuman‬ويمكن لكل نقطة االتصال بالنقاط االخرى عن طريق ارسال الرسائل واستقبالها عبر‬ ‫الشبكة المربوطة‪]10[ .‬‬ ‫‪65‬‬ ‫محمد واجد محمد علي‬ ‫‪ 3.2‬تعاريف‪:‬‬ ‫‪ 3.2.1‬الحاسوب المتوازي‪:‬‬ ‫هو مجموعة من المعالجات التي بامكانها العمل بصورة متوازية لحل مسألة حسابية ما‪ ،‬وهذا‬ ‫التعريف يشمل الحاسبات المتوازية التي تمتلك عشرات او مئات من المعالجات )‪(Processors‬‬ ‫[‪.]9‬‬ ‫أو هو حاسوب يستخدم عدة معالجات تعمل بشكل متزامن (أي تعمل في الوقت نفسه)‬ ‫لحل مسألة او داء وظيفة معينة[‪.]5‬‬ ‫‪ 3.2.2‬الخوارزمية المتوازية‪:‬‬ ‫الخوارزمية‪ :‬هي مجموعة من التوجيهات لتنفيذ عمليات حسابية مصممة بشكل يؤدي الى‬ ‫حل المسألة المعطاة [‪.]3[ ،]1‬‬ ‫وعليه فمن الممكن تعريف الخوارزمية المتوازية‪ :‬بأنها تجزئة مسألة واحدة الى عدة مسائل‬ ‫جزئية مستقلة حتى يمكن حل كل مسألة جزئية في معالج مستقل ثم جمع الحلول لتركيب حل‬ ‫المسألة االصلية [‪.]9‬‬ ‫‪ 3.2.3‬قياس الوقت وحسابه‪:‬‬ ‫تقاس القدرة الحسابية للحاسوب بعدد العمليات التي ينفذها بالثانية على االعداد الحقيقية‬ ‫)‪ ، Mega FLOPS (Floating Point Operation Per Second‬وتتطلب التطبيقات الحسابية‬ ‫قدرة حسابية من درجة الف مليون عملية في الثانية‪ ،‬لقد وصلت الحاسبات الفائقة في عام ‪2003‬‬ ‫الى ‪ 35TEFLOPS‬وهو ما يقارب ‪ 36.5‬تريليون عملية في كل ثانية‪ ،‬ومن اجل تحسين االداء‬ ‫يجب تقصير زمن دورة المعالج للعملية الواحدة وزيادة العمليات التي تنفذ على التوازي‪ .‬ولكن تسريع‬ ‫المعالجات ال يكفي اذا لم يصاحب القدرة على نقل المعلومات من الذاكرة الى وحدة المعالجة‬ ‫بالسرعة الكافية وتقاس هذه القدرة بعدد البايتات ‪ Bytes‬التي يمكن نقلها من الذاكرة الى وحدة‬ ‫المعالجة في الثانية [‪.]5‬‬ ‫مالحظة مهمة‪:‬‬ ‫ان حاسبات من نوع ‪ MIMD‬غير متوافرة في بالدنا‪ ،‬فلذلك تـم تنفيـذ كـل إجـراء علـى حـده‬ ‫وحساب الوقت‪ ،‬ويكون الوقت ا كبر هو الوقت المعتمـد فـي حسـاب تنفيـذ اإلجـراءات المتوازيـة‪ ،‬وهـذا‬ ‫‪66‬‬ ‫طريقة كاوس للحذف المتوازية‬ ‫ممكـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــن اذ ان ا لمعـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــالج المسـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــتخدم فـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــي الحاسـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــبات المتوازيـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــة‬ ‫ه ـ ـ ـ ــو المعـ ـ ـ ـ ــالج نفس ـ ـ ـ ــه المسـ ـ ـ ـ ــتخدم ف ـ ـ ـ ــي الحاسـ ـ ـ ـ ــبات الشخص ـ ـ ـ ــية‪ ،‬كمـ ـ ـ ـ ــا توص ـ ـ ـ ــل اليـ ـ ـ ـ ــه الباحـ ـ ـ ـ ــث‬ ‫‪ Y.F. Fung, et al‬فـي د ارسـته اذ اثبـت انـه بامكـان الطـالب اسـتخدام حاسـباتهم الشخصـية لتنفيـذ‬ ‫الب ـ ـرامج والخورازميـ ــات المتوازيـ ــة ومعالجتهـ ــا وذلـ ــك بسـ ــبب ارتفـ ــاع كلفـ ــة الحاسـ ــبات ذات المعالجـ ــات‬ ‫المتعددة [‪.]15‬‬ ‫‪ 3.2.4‬التسريع )‪]5[ :(Sp‬‬ ‫هو حاصل قسمة الزمن التسلسلي )‪ (ts‬على الزمن المتوازي )‪.(tp‬‬ ‫اي ان ‪:‬‬ ‫‪t‬‬ ‫‪Sp = s‬‬ ‫‪tp‬‬ ‫‪ 3.3‬تصنيف الحاسبات المتوازية‪:‬‬ ‫يعمل أي نوع من أنواع الحاسبات (حاسبات تسلسلية كانت أم متوازية) على تنفيذ مجموعة‬ ‫من االيعازات )‪ (Instructions‬على مجموعة من البيانات (‪ )Data‬ومن ثم تتم معالجتها وإخراجها‬ ‫على شكل معلومات[‪.]9‬‬ ‫وهنا‬ ‫تصانيف عدة لمعمارية الحاسبات‪ ،‬من اشهر هذه التصانيف تصنيف الباحث‬ ‫‪ ،]10[ Flynn‬فقد صنف انظمة بحسب نوع التحكم )‪ (Type of Control‬والخوارزميات‬ ‫)‪ (Algorithms‬والمعالجات المنطقية )‪ (Logical Processors‬الى اربعة اصناف رئيسة [‪،]4‬‬ ‫[‪ ]9‬هي‪:‬‬ ‫‪ -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‬ولهــذا‬ ‫سوف نقتصر الحديث عنها‪:‬‬ ‫‪ 3.4‬حاسبات من نوع ‪]9[ :MIMD‬‬ ‫‪67‬‬ ‫محمد واجد محمد علي‬ ‫يعــد هــذا النــوع مــن الحاســبات االكثــر شــيوعاً وكفــاءة وقــوة فــي تنفيــذ التطبيقــات العامــة فــي‬ ‫موضوع الحاسبات المتوازية اذ تكون فيها مجموعة االيعازات ومجموعة البيانات مختلفة‪.‬‬ ‫يحتوي هذا النوع من الحاسبات على (‪ )N‬مـن المعالجـات وعلـى (‪ )N‬مـن االيعـازات وعلـى (‪ )N‬مـن‬ ‫البيانات (الشكل (‪ .))3‬ويمتلك كل معالج ذاكرة خاصة به فضالً عن وحدة الحسـاب والمنطـق ووحـدة‬ ‫الســيطرة الخاص ــة بــه‪ ،‬ول ــه القــدرة عل ــى العمــل بص ــورة ليســت متزامن ــة ومســتقلة عل ــى بياناتــه الجاري ــة‬ ‫الخاصــة‪ ،‬وفــي اي وقــت مــن الممكــن ان تقــوم معالجــات مختلفــة بتنفيــذ ايعــازات مختلفــة وعلــى بيانــات‬ ‫مختلفة ]‪.[4‬‬ ‫الشكل (‪ :)3‬مخطط توزيع االيعازات والبيانات في حاسبات من نوع ‪.]15[ MIMD‬‬ ‫ونأتي االن إلى شرح الطرائق التي تم التوصل اليها‪:‬‬ ‫‪ 3.5‬الطريقة المتوازية الجديدة األولى‪:‬‬ ‫‪ 3.5.1‬التوازي في الحذف االمامي‪:‬‬ ‫كما الحظنا خطوات حل طريقة كاوس للحذف؛ فإن هنا‬ ‫خطوات مستقلة بعضها عن‬ ‫البعض اآلخر أي أنه من الممكن ان ننجزها في الوقت نفسه؛ نها ال تعتمد على بعضها البعض‪،‬‬ ‫وهذه الخطوات المستقلة هي خطوات الحذف االمامي‪ ،‬فإذا اخذنا المعادالت (‪ )4‬المستخدمة لحذف‬ ‫‪ x1‬من جميع المعادالت اال المعادلة االولى‪:‬‬ ‫‪ Eq1 ‬‬ ‫‪  a 21‬‬ ‫‪Eq 2 = Eq2 − ‬‬ ‫‪ a11 ‬‬ ‫‪ Eq1 ‬‬ ‫‪  a 31‬‬ ‫‪Eq3 = Eq3 − ‬‬ ‫‪ a11 ‬‬ ‫‪ Eq1 ‬‬ ‫‪  a 41‬‬ ‫‪Eq 4 = Eq4 − ‬‬ ‫‪ a11 ‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪68‬‬ ‫طريقة كاوس للحذف المتوازية‬ ‫‪.‬‬ ‫‪ Eq1 ‬‬ ‫‪  a n1‬‬ ‫‪Eqn = Eqn − ‬‬ ‫‪ a11 ‬‬ ‫فمن الممكن تنفيذ كل معادلة على معالج مستقل‪ ،‬ومن ثم يكون الزمن المحسوب لتنفيذ‬ ‫هذه الخطوات هو زمن تنفيذ معادلة واحدة‪.‬‬ ‫والكالم نفسه يتكرر بالنسبة إلى حذف ‪ x2‬من المعادلتين الثالثة والرابعة الى المعادلة ‪،n‬‬ ‫وهكذا بالنسبة إلى حذف ‪ xi‬من المعادلة ‪ ، j‬اذ ان ‪ i=1..n-1‬و ‪. j = i+1..n‬‬ ‫من الواضح اننا نحتاج في هذه الطريقة الى ‪ n‬من المعالجات‪ ،‬الن العمليات تتكرر ‪(n-‬‬ ‫)‪ 1‬من المرات ويبقى معالج واحد للجمع بين المعالجات (الشكل (‪.))4‬‬ ‫ويمكن تمثيل الطريقة المتوازية بالشكل اآلتي‪:‬‬ ‫الشكل (‪ :)4‬توزيع ا وامر على المعالجات عند مرحلة الحذف االمامي لطريقة كاوس للحذف‪.‬‬ ‫‪ 3.5.2‬توزيع األوامر على المعالجات عند مرحلة الحذف االمامي‪:‬‬ ‫الـ‪ CPU1‬يقوم بحساب المعادلة الثانية الجديدة بعد حذف ‪ x1‬منها حسب المعادلة اآلتية‪:‬‬ ‫‪ Eq1 ‬‬ ‫‪  a 21‬‬ ‫‪Eq 2 = Eq2 − ‬‬ ‫‪ a11 ‬‬ ‫الـ‪ CPU2‬يقوم بحساب المعادلة الثالثة الجديدة بعد حذف ‪ x1‬منها حسب المعادلة اآلتية‪:‬‬ ‫‪ Eq1 ‬‬ ‫‪  a 31‬‬ ‫‪Eq3 = Eq3 − ‬‬ ‫‪ a11 ‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫الـ‪ CPUn-1‬يقوم بحساب المعادلة ‪ n‬الجديدة بعد حذف ‪ x1‬منها حسب المعادلة اآلتية‪:‬‬ ‫‪69‬‬ ‫محمد واجد محمد علي‬ ‫‪ Eq1 ‬‬ ‫‪  a n1‬‬ ‫‪Eqn = Eqn − ‬‬ ‫‪ a11 ‬‬ ‫الـ‪ CPUn‬يقوم باستالم القيم من المعالجات ومن ثم يرسل المعادالت الجديدة لحذف ‪ xi‬من‬ ‫المعادالت ‪ j‬اذ ان ‪ i=1..n-1‬و ‪. j=i+1..n‬‬ ‫‪ 3.5.3‬التوازي في التعويض التراجع‪:‬‬ ‫بعد االنتهاء من الحذف االمامي سيأتي االن دور التعويض التراجعي؛ والذي فيه خطوات‬ ‫مستقلة؛ وهذه الخطوات المستقلة هي ايجاد‬ ‫‪n‬‬ ‫‪ a ij(i−1) x j‬‬ ‫‪j=i +1‬‬ ‫الحصول على ‪ xi‬من المعادلة‪, i = n − 1, n − 2,...,1 :‬‬ ‫= ‪ y i‬لكل ‪ i=n-1,n-2 ..,1‬وبعدها يتم‬ ‫‪b i(i −1) − y i‬‬ ‫)‪a ii(i −1‬‬ ‫= ‪xi‬‬ ‫فسيكون لدينا ‪ n‬من المعالجات‪ ،‬اذ ان المعالج االول سيكون للجمع بين المعالجات‬ ‫واستالم القيم وارسالها‪ ،‬وبقية المعالجات ستعمل بشكل متو ٍاز وتبدأ بمعالج واحد وتنتهي‬ ‫بـ‪ n-1‬من المعالجات (الشكل (‪ ،))5‬وكما موضح في الشكل ادناه‪:‬‬ ‫الشكل(‪ :)5‬توزيع ا وامر على المعالجات عند مرحلة التعويض المتراجع لطريقة كاوس للحذف‪.‬‬ ‫‪ 3.5.4‬توزيع األوامر على المعالجات عند مرحلة الحذف االمامي‪:‬‬ ‫الـ‪ CPU1‬يقوم بحساب ‪ a12x2‬عندما ‪.i=1‬‬ ‫الـ‪ CPU2‬يقوم بحساب ‪ a13x3‬عندما ‪.i=1‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫الـ‪ CPUn-1‬يقوم بحساب ‪ a1nxn‬عندما ‪.i=1‬‬ ‫‪70‬‬ ‫طريقة كاوس للحذف المتوازية‬ ‫‪b i(i −1) − y i‬‬ ‫الـ‪ CPUn‬يقوم بحساب ‪, i = n − 1, n − 2,...,1‬‬ ‫)‪a ii(i −1‬‬ ‫= ‪ x i‬بعد ايجاد ‪a ij(i−1) x j‬‬ ‫‪n‬‬ ‫‪‬‬ ‫‪j=i +1‬‬ ‫= ‪. yi‬‬ ‫‪ 3.6‬الطريقة المتوازية الجديدة الثانية‪:‬‬ ‫من المالحظ ان خطوات حل طريقة كاوس للحذف يمكن كتابتها بالشكل االتي‪:‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪( b) ‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪(c) ‬‬ ‫‪‬‬ ‫‪‬‬ ‫)‪… (5‬‬ ‫) ‪(a‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫;‬ ‫‪i‬‬ ‫‪1‬‬ ‫‪..‬‬ ‫‪k‬‬ ‫‪,‬‬ ‫‪j‬‬ ‫‪1‬‬ ‫‪..‬‬ ‫‪n‬‬ ‫=‬ ‫=‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫) ‪= a ij( k‬‬ ‫) ‪= b i( k‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪(k ) (k ) ‬‬ ‫;‬ ‫‪i‬‬ ‫‪k‬‬ ‫‪1‬‬ ‫‪..‬‬ ‫‪n‬‬ ‫‪,‬‬ ‫‪j‬‬ ‫‪1‬‬ ‫‪..‬‬ ‫‪k‬‬ ‫=‬ ‫‪+‬‬ ‫=‬ ‫‪‬‬ ‫‪‬‬ ‫‪( k ) a ik b k‬‬ ‫‪= bi −‬‬ ‫‪‬‬ ‫‪‬‬ ‫)‪k‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪a (kk‬‬ ‫‪‬‬ ‫‪=0‬‬ ‫‪‬‬ ‫‪a ( k ) b ( k ) ‬‬ ‫‪‬‬ ‫‪= a ij( k ) − ik k  ; i = k + 1.. n , j = k + 1.. n ‬‬ ‫) ‪(k‬‬ ‫‪a kk ‬‬ ‫‪‬‬ ‫)‪a ( k +1‬‬ ‫‪ ij‬‬ ‫)‪ ( k +1‬‬ ‫‪b i‬‬ ‫‪‬‬ ‫)‪a ( k +1‬‬ ‫‪ ij‬‬ ‫‪‬‬ ‫‪k = 1.. n − 1 ‬‬ ‫)‪( k +1‬‬ ‫‪b i‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫)‪a ( k +1‬‬ ‫‪ ij‬‬ ‫‪‬‬ ‫كما نالحظ ان هذه المعادالت مستقلة فيما بينها أي أنه من الممكن ان ننجزها في الوقت‬ ‫نفسه؛ نها ال تعتمد على بعضها البعض‪ ،‬وهذه الخطوات المستقلة هي خطوات الحذف االمامي‪.‬‬ ‫ففي هذه الطريقة نحتاج الى ‪ 6‬من المعالجات‪ ،‬الن المعادالت عددها ‪ 5‬ويبقى معالج واحد للجمع‬ ‫بين المعالجات (الشكل (‪.))6‬‬ ‫ويمكن تمثيل الطريقة المتوازية بالشكل اآلتي‪:‬‬ ‫‪CPU 5‬‬ ‫‪ -1‬لكل‬ ‫‪CPU 3‬‬ ‫‪CPU 4‬‬ ‫‪ -1‬لكل‬ ‫‪i = k + 1.. n , j = k + 1.. n‬‬ ‫‪ -1‬لكل‬ ‫‪i = k + 1.. n , j = 1.. k‬‬ ‫يقوم بحساب‪:‬‬ ‫يقوم بحساب‪:‬‬ ‫) ‪a ( k ) b( k‬‬ ‫‪a ij( k +1) = a ij( k ) − ik ( k )k‬‬ ‫‪a kk‬‬ ‫) ‪(k ) (k‬‬ ‫‪a ik‬‬ ‫‪bk‬‬ ‫)‪k‬‬ ‫‪a (kk‬‬ ‫‪i = k + 1.. n , j = 1.. k‬‬ ‫يقوم بحساب‪:‬‬ ‫‪bi( k +1) = bi( k ) −‬‬ ‫‪-2‬‬ ‫‪CPU 2‬‬ ‫‪ -1‬لكل‬ ‫‪a ij( k +1) = 0‬‬ ‫‪i = 1..k , j = 1.. n‬‬ ‫يقوم بحساب‪:‬‬ ‫) ‪b i(k +1) = b i(k‬‬ ‫‪CPU 1‬‬ ‫‪ -1‬لكل‬ ‫‪i = 1..k , j = 1.. n‬‬ ‫يقوم بحساب‪:‬‬ ‫) ‪a ij( k +1) = a ij( k‬‬ ‫‪CPU 6‬‬ ‫‪ -1‬يقوم باستالم القيم من المعالجات اعاله‬ ‫بعد استالم القيم‪ ،‬يعيد تكرار العملية بزيادة واحد الى قيمة ‪.k‬‬ ‫الشكل (‪ :)6‬توزيع ا وامر على المعالجات في الطريقة الثانية للتوازي لطريقة كاوس للحذف‪.‬‬ ‫‪71‬‬ ‫محمد واجد محمد علي‬ ‫‪ 3.6.1‬توزيع األوامر على المعالجات للطريقة المتوازية الثانية‪:‬‬ ‫الـ‪ CPU1‬يقوم بحساب المعادلة ) ‪ a ij( k +1) = a ij(k‬اذ ان‬ ‫‪i = 1..k , j = 1.. n‬‬ ‫الـ‪ CPU2‬يقوم بحساب المعادلة )‪ b i(k +1) = b i(k‬اذ ان‬ ‫‪i = 1..k , j = 1.. n‬‬ ‫الـ‪ CPU3‬يقوم بحساب المعادلة ‪ a ij(k +1) = 0‬اذ ان‬ ‫‪i = k + 1.. n , j = 1.. k‬‬ ‫الـ‪ CPU4‬يقوم بحساب المعادلة‬ ‫) ‪a ( k ) b( k‬‬ ‫‪bi( k +1) = bi( k ) − ik ( k )k‬‬ ‫‪a kk‬‬ ‫اذ ان‬ ‫‪i = k + 1.. n , j = 1.. k‬‬ ‫الـ‪ CPU5‬يقوم بحساب المعادلة‬ ‫) ‪a ( k ) b( k‬‬ ‫‪a ij( k +1) = a ij( k ) − ik ( k )k‬‬ ‫‪a kk‬‬ ‫اذ ان‬ ‫‪i = k + 1.. n , j = k + 1.. n‬‬ ‫الـ‪ CPU6‬يقوم باستالم القيم من المعالجات ويعيد تكرار العمليات بعد زيادة واحد الى قيمة ‪.k‬‬ ‫‪ 3.7‬الطريقة المتوازية الجديدة الثالثة‪:‬‬ ‫من المالحظ ان خطوات حل طريقة كاوس للحذف المعادالت )‪(5a), (5b) & (5c‬‬ ‫والخاصة بالحذف ا مامي يمكن توزيعها على معالجات النها معادالت مستقلة ال يعتمد أي منها‬ ‫على اآلخر (الشكل (‪.))7‬‬ ‫في هذه الطريقة سنحتاج الى ‪ 3n‬من المعالجات‪ ،‬وكما موضح في الشكل ادناه‪:‬‬ ‫الشكل (‪ :)7‬توزيع ا وامر على المعالجات في الطريقة الثالثة للتوازي لطريقة كاوس للحذف‪.‬‬ ‫وباالمكان استخدام الطريقة المتوازية في حالة التعويض المتراجع نفسها المذكورة في الطريقة‬ ‫االولى لزيادة التسريع‪.‬‬ ‫‪ 3.7.1‬توزيع االوامر على المعالجات للطريقة المتوازية الثالثة‪:‬‬ ‫الـ‪ CPU1‬يقوم بحساب ) ‪ b i(k +1) = b i(k ) ، a i(1k +1) = a i(1k‬اذ ان‬ ‫الـ‪ CPU2‬يقوم بحساب ‪، a (2kj+1) = 0‬‬ ‫) ‪a (2kk) b(kk‬‬ ‫)‪k‬‬ ‫‪a (kk‬‬ ‫‪b (2k +1) = b(2k ) −‬‬ ‫‪72‬‬ ‫‪i = 1..k‬‬ ‫اذ ان‬ ‫‪j = 1..k‬‬ ‫طريقة كاوس للحذف المتوازية‬ ‫الـ‪ CPU3‬يقوم بحساب المعادلة‬ ‫) ‪a ( k ) b( k‬‬ ‫‪a (2kj +1) = a (2kj) − 2k( k )k‬‬ ‫‪a kk‬‬ ‫اذ ان‬ ‫‪j = k + 1.. n‬‬ ‫الـ‪ CPU4‬يقوم بحساب ) ‪ b i(k +1) = b i(k ) ، a i(2k +1) = a i(2k‬اذ ان‬ ‫الـ‪ CPU5‬يقوم بحساب ‪، a 3(kj +1) = 0‬‬ ‫الـ‪ CPU6‬يقوم بحساب المعادلة‬ ‫اذ ان‬ ‫) ‪a ( k ) b( k‬‬ ‫‪b3( k +1) = b3( k ) − 3k( k )k‬‬ ‫‪a kk‬‬ ‫) ‪a (k ) b(k‬‬ ‫‪a 3(kj +1) = a 3( kj ) − 3k k‬‬ ‫)‪k‬‬ ‫‪a (kk‬‬ ‫‪i = 1..k‬‬ ‫اذ ان‬ ‫‪j = 1..k‬‬ ‫‪j = k + 1.. n‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫الـ‪ CPU3n-3‬يقوم بحساب‬ ‫الـ‪ CPU3n-2‬يقوم بحساب‬ ‫) ‪، a in(k +1) = a in(k‬‬ ‫اذ ان ‪i = 1..k‬‬ ‫) ‪(k ) (k‬‬ ‫)‪( k +1‬‬ ‫‪=0‬‬ ‫‪ b(nk +1) = b(nk ) − a nk bk ، a nj‬اذ ان ‪j = 1..k‬‬ ‫) ‪(k‬‬ ‫‪a kk‬‬ ‫الـ‪ CPU3n-2‬يقوم بحساب المعادلة‬ ‫) ‪= b i(k‬‬ ‫)‪b i(k +1‬‬ ‫) ‪a ( k ) b( k‬‬ ‫‪a (njk +1) = a (njk ) − nk( k )k‬‬ ‫‪a kk‬‬ ‫اذ ان‬ ‫‪j = k + 1.. n‬‬ ‫الـ‪ CPU3n‬يقوم باستالم القيم من المعالجات ويعيد تكرار العمليات بعد زيادة واحد الى قيمة ‪.k‬‬ ‫‪ .4‬مناقشة النتائج‪:‬‬ ‫‪ 4.1‬برمجة الطرق المتوازية‪:‬‬ ‫كما ذكرنا سابقاً ان حاسبات من نوع ‪ MIMD‬غير متوفرة في بالدنا‪ ،‬فلذلك تم تنفيذ إجراء‬ ‫على حدى وحساب الوقت‪ ،‬ويكون الوقت ا كبر هو الوقت المعتمد في حساب تنفيذ اإلجراءات‬ ‫المتوازية‪ ،‬وهذا ممكن اذ ان المعالج المستخدم في الحاسبات المتوازية هو المعالج نفسه المستخدم في‬ ‫الحاسبات الشخصية‪ ،‬كما توصل اليها الباحث ‪ Y.F. Fung et al‬في دراسته[‪ ،]15‬اذ اثبت انه‬ ‫بإمكان الطالب استخدام حاسباتهم الشخصية لتنفيذ ومعالجة البرامج والخوارزميات المتوازية بسبب‬ ‫ارتفاع كلفة الحاسبات ذات المعالجات المتعددة [‪.]15‬‬ ‫وقد تمت برمجة الطرق المتوازية الثالث وتنفيذها باستخدام لغة ‪ C++‬على حاسبة ‪PIV‬‬ ‫بمعالج ‪ 2GHz‬وباستخدام دالة )‪Delay (120000‬‬ ‫(‪)1‬‬ ‫لعدة أنظمة وكانت النتائج المستحصلة كاالتي‪:‬‬ ‫الجدول (‪ :)1‬يمثل الوقت المحسوب في تنفيذ الطريقة العادية والطرائق المتوازية‪.‬‬ ‫(‪ )1‬تم استخدام هذه الدالة بسبب سرعة تنفيذ البرنامج اذ يكون الوقت المحسوب باجزاء الثواني او‬ ‫اقل‪ ،‬فتم استخدامها لتأخير عمل المعالج ليظهر الوقت المحسوب بالثواني‪.‬‬ ‫‪73‬‬ ‫محمد واجد محمد علي‬ ‫الــوقــت المحسوب (‪)s‬‬ ‫سعة‬ ‫المصفوفة‬ ‫الطريقة العادية‬ ‫الطريقة االولى‬ ‫الطريقة الثانية‬ ‫الطريقة الثالثة‬ ‫‪50×50‬‬ ‫‪2.43‬‬ ‫‪1.47‬‬ ‫‪2.094‬‬ ‫‪1.125‬‬ ‫‪100×100‬‬ ‫‪4.94‬‬ ‫‪2.83‬‬ ‫‪4.065‬‬ ‫‪1.934‬‬ ‫‪200×200‬‬ ‫‪19.86‬‬ ‫‪10.54‬‬ ‫‪14.59‬‬ ‫‪4.67‬‬ ‫فعند حساب عامل التسريع ‪ Speed up‬بين الطريقة العادية والطرائق المتوازية الثالث نحصل‬ ‫على ما يأتي‪:‬‬ ‫التسريع ‪= Sp‬‬ ‫وقــت التنفيذ لـ‪ M1‬باستخدام معالج واحد )‪(Ts‬‬ ‫وقت التنفيذ لـ‪ M‬باستخدام ‪ n‬من المعالجات )‪(Tp‬‬ ‫اذ ان )‪ (M‬هي تطوير عن خوارزمية متسلسلة (‪ )M1‬باستخدام (‪ )P‬من المعالجات‪.‬‬ ‫الجدول (‪ :)2‬يمثل عامل التسريع للطرائق المتوازية‪.‬‬ ‫عـامــــل التســريــع‬ ‫سعة‬ ‫المصفوفة‬ ‫الطريقة األولى‬ ‫الطريقة الثانية‬ ‫الطريقة الثالثة‬ ‫‪50×50‬‬ ‫‪1.6531‬‬ ‫‪1.1605‬‬ ‫‪2.1594‬‬ ‫‪100×100‬‬ ‫‪1.7456‬‬ ‫‪1.2153‬‬ ‫‪2.5543‬‬ ‫‪200×200‬‬ ‫‪1.8843‬‬ ‫‪1.3612‬‬ ‫‪4.2526‬‬ ‫إذن كما نالحظ ان عامل تسريع الطريقة الثانية اقل من الطريقتين االولى والثالثة وان عامل‬ ‫التسريع في الطريقة الثالثة هو افضل من الطريقة االولى‪ ،‬فضالً عن ان عامل التسريع في‬ ‫الطريقتين االولى والثالثة يزداد بنسبة ملحوظة عن الطريقة الثانية اذا زادت سعة المصفوفة‪.‬‬ ‫‪ .5‬مقارنة بين الطرائق المتوازية الثالث‪:‬‬ ‫من خالل النتائج التي ظهرت لنا يمكن أن نالحظ فروقاً بين الطرائق يمكن تلخيصها بالجدول‬ ‫اآلتي‪:‬‬ ‫الجدول (‪ :)3‬الفروق بين الطرائق الثالث المتوازية المقترحة لطريقة كاوس للحذف‬ ‫الطـريقــة األولـى‬ ‫الطـريقــة الثـانيـة‬ ‫‪74‬‬ ‫الطـريقـة الثـالثـة‬ ‫طريقة كاوس للحذف المتوازية‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬ ‫نحتاج إلى ‪ n‬من المعالجات اذ ان‬ ‫نحتاج إلى ‪ 6‬من المعالجات مهما‬ ‫نحتاج إلى ‪ 3n‬من المعالجات اذ ان‬ ‫‪ n‬هو عدد المعادالت‬ ‫كان عدد المعادالت‬ ‫‪ n‬هو عدد المعادالت‬ ‫عندما تكون المسألة كبيرة يكون‬ ‫عندما تكون المسألة كبيرة تأخذ وقتاً‬ ‫عندما تكون المسألة كبيرة يكون وقت‬ ‫وقت التنفيذ أقل من الطريقة الثانية‬ ‫ولكن بعدد معالجات أكثر‪.‬‬ ‫كبي اًر بالنسبة الى لطريقة االولى‬ ‫والثالثة‪.‬‬ ‫تعد مكلفة للمسألة الكبيرة ولهذا‬ ‫غير مكلفة بالنسبة الى لمسائل‬ ‫يفضل استخدامها في المسائل‬ ‫الكبيرة ن المسائل كافة تحتاج إلى‬ ‫يفضل‬ ‫الصغيرة‪.‬‬ ‫‪ 6‬معالجات‪.‬‬ ‫الصغيرة‪.‬‬ ‫الحمل يكون على المعالجات‬ ‫الحمل على المعالجات الثالث ا ولى‬ ‫الحمل يكون على المعالجات بشكل‬ ‫ٍ‬ ‫متساو تقريباً‪.‬‬ ‫بشكل‬ ‫ٍ‬ ‫متساو والرابعة والخامسة متساويتان‬ ‫ايض ًا‪.‬‬ ‫المصادر‬ ‫‪75‬‬ ‫التنفيذ أقل من الطريقة االولى ولكن‬ ‫بعدد معالجات أكثر‪.‬‬ ‫تعد مكلفة جداً للمسألة الكبيرة ولهذا‬ ‫استخدامها‬ ‫متس ٍاو تقريباً‪.‬‬ ‫في‬ ‫المسائل‬ ‫محمد واجد محمد علي‬ ‫]‪[1‬‬ ‫االلوسي‪ ،‬د‪.‬أحمد صالح وعادل زينل البياتي (‪" :)1989‬مقدمة في التحليل العددي"‪،‬‬ ‫مطبعة التعليم العالي في الموصل‪.‬‬ ‫]‪[2‬‬ ‫اميل شكر هللا‪" ،)2003( ،‬التحليل العددي التطبيقي‪ ،‬النظرية التطبيقات والطرق‬ ‫التقريبية"‪ ،‬جامعة المنوفية‪ ،‬مصر ‪ ،‬الطبعة الثانية‪.‬‬ ‫]‪[3‬‬ ‫سيفي‪ ،‬د‪ .‬علي محمد صادق و د‪ .‬ابتسام كمال الدين (‪" :)1986‬مباديء التحليل‬ ‫العددي"‪ ،‬مديرية دار الكتب للطباعة والنشر‪،‬جامعة الموصل‪.‬‬ ‫]‪[4‬‬ ‫عبد الحبيب عبدهللا أحمد مرشد (‪" :)2000‬تقصي خوارزميات عددية لحل المعادالت‬ ‫التفاضلية االعتيادية الصلبة المالئمة للحاسبات المتوازية"‪ ،‬أطروحة دكتوراه‪ ،‬كلية‬ ‫العلوم‪ ،‬جامعة الموصل ‪ ،‬و ازرة التعليم العالي والبحث العلمي‪.‬‬ ‫]‪[5‬‬ ‫عماد فتاش‪" )2004( ،‬الحاسبات المتوازية والخوارزميات المتوازية (دراسة)"‪ ،‬كلية‬ ‫العلوم‪ ،‬جامعة الملك سعود‪ ،‬المملكة العربية السعودية‪.‬‬ ‫]‪[6‬‬ ‫عمر محمد التومي‪ ،‬احمد الشوشة‪" )2005( ،‬التحليل العددي"‪ ،‬كتاب الكتروني‪ ،‬منتديات‬ ‫التقنية‪. www.tkne.net ،‬‬ ‫]‪[7‬‬ ‫يحيى قاسم إبراهيم القاضلي (‪2002‬م)‪" :‬حل مسألة التخصيص باستخدام خوارزمية‬ ‫متوازية"‪ ،‬مشروع ماجستير ‪ ،‬كلية علوم الحاسبات والرياضيات‪ ،‬جامعة الموصل‪،‬‬ ‫و ازرة التعليم العالي والبحث العلمي‪.‬‬ ‫‪Autar Kaw, (2007) "Introduction‬‬ ‫‪http://numericalmethods.eng.usf.edu.‬‬ ‫]‪[8‬‬ ‫‪Algebra",‬‬ ‫‪Matrix‬‬ ‫‪of‬‬ ‫‪Bashir M. S., Khalaf and Khlil K.Abbo (2001): "Parallel Revised‬‬ ‫‪Simplex Method”, Raf. Jour. Sci., Vol. 13, No. 1, pp. 51-60.‬‬ ‫]‪[9‬‬ ‫‪Flynn M. J. (1972): "Some Computer Organization and their‬‬ ‫‪Effectiveness". IEEE Transaction on /computers, Vol. C-21, pp. 948‬‬‫‪960.‬‬ ‫]‪[10‬‬ ‫‪Ian Foster, (2002) "Designing and building Parallel Program",‬‬ ‫‪www.unix.ms.anl.gov/dbpp/text/node8.html.‬‬ ‫]‪[11‬‬ ‫‪76‬‬ ‫طريقة كاوس للحذف المتوازية‬ [12] McDonough J. M., (2004) "Lectures in Basic Computational Numerical Analysis", University of Kentucky. [13] Khalil, K. Aboo, (2006) "Parallel Newtonian Optimization without Hessian Approximation", Raf. J. of Comp. & Math's., Vol.3, No. 2, pp. 69-82 [14] Michael, Wasilewski (2004), "Parallel Gaussian Elimination", University of Waterloo. [15] Y. F. Fung, et al; "Teaching Parallel Computing Concepts with A Desktop Computer" International Journal of Electrical Engineering Education Journal, Vol 41 Issue 2, April (2004), pp. 113-125. 77