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
Eq 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
أو باإلمكان كتابتها بالشكل اآلتي:
Eq2 a 22 x 2 + + a 2n x n = b2
اذ ان :
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
Eq3 = Eq3 −
a11
Eq1
a 41
E q 4 = Eq4 −
a 11
)...(4
.
.
.
Eq1
a n1
Eqn = 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من باقي المعادالت ،أي انه:
Eq 2
a 32
Eq3 = Eq3 −
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
Eq 2 = Eq2 −
a11
Eq1
a 31
Eq3 = Eq3 −
a11
Eq1
a 41
Eq 4 = Eq4 −
a11
.
.
68
طريقة كاوس للحذف المتوازية
.
Eq1
a n1
Eqn = 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
Eq 2 = Eq2 −
a11
الـ CPU2يقوم بحساب المعادلة الثالثة الجديدة بعد حذف x1منها حسب المعادلة اآلتية:
Eq1
a 31
Eq3 = Eq3 −
a11
.
.
.
الـ CPUn-1يقوم بحساب المعادلة nالجديدة بعد حذف x1منها حسب المعادلة اآلتية:
69
محمد واجد محمد علي
Eq1
a n1
Eqn = 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. 948960.
][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