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 xno 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
b1
:
:
11
12
:
a2m
x2
a21
a22
:
b2
:
:
:
:
:
:
:
amm
xm
am1
bm
am2
:
:
.
c
-z
c1
c2
.
-zo
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
…
a1n
a 1
a1m+1
:
:
:
:
:
1
b1
x1
a2n
:
arn
a2s
:
*ars
:
ams
c m
a2m+1
:
arm+1
:
amm+1
cm-1
:
:
:
:
1
.
:
:
:
:
:
.
:
:
1
:
:
.
:
:
:
:
:
.
1
:
:
:
:
.
:
:
:
:
.
b2
:
br
:
bm
-zo
x2
:
xr
:
xm
-z
xn
:
:
:
:
:
amn
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 = br /
a+rj = arj/
b+i = bi -
)ars ...................................................................................................................... (a
)ars ................................................................................. (b
)ars b+r ....................................................................... (c
ir
)(3
)a+ij = aij - ais a+rj ....................................................................... (d
)c+j = cj - cs a+rj .......................................................................... (e
)z+o = zo + cs 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 = br / ars ...................................................................................... (a
)z+o = zo + cs b+r ................................................................................ (b
)b+i = bi - ars b+r ; i r ..................................................................... (c
)a+rj = arj/ ars ........................................................................................ (d
)a+ij = aij - ais a+rj ; i r ................................................................... (e
)c+j = cj - cs 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 = br / ars
b+i = bi - ars b+r
z+o = zo + cs b+r
.2يرسل القيم إلى CPU3
.1يقوم بحساب
CPU2
a+rj = arj/ ars
a+ij = aij - ais a+rj
c+j = cj - cs 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=ain - ais a+rj
c+n = cn - cs a+rj
.3يرسل القيم إلى
CPUn+2
CPU2
.1يقوم بحساب
a+rj = arj/ ars
c+r = cr - cs a+rj
.2يرسل القيم إلى
CPUn+2
CPU3
.1يستلم قيمة a+rj
.2يقوم بحساب
a+i1 = ai1 - ais a+rj
c+1 = c1 - cs a+rj
.3يرسل القيم إلى
CPUn+2
CPU1
.1يقوم بحساب:
+
b r = br / ars
b+i = bi - ars b+r
z+o = zo + cs 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=bm-ars b+r
a+mj=amj-ams a+rj
.4يرسل القيم إلى
CPU m+2
.1
.2
.3
4
CPU3
.1يستلم قيمة b+r
.2يستلم قيمة a+rj
.3يقوم بحساب
b+1=b1-ars b+r
a+1j=a1j - a1s a+rj
.4يرسل القيم إلى
CPU m+2
CPU2
.1يقوم بحساب
+
a rj = arj/ ars
c+j = cj - cs a+rj
j=1,..,n
.2يرسل القيم إلى
CPU m+2
CPU1
.1يقوم بحساب:
b+r = br / ars
z+o = zo + cs 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مــــن
المعالجات
تعــد مكلفــن لمســيلن ـ ير
ولهذا يفض استخدامها فـ
المسا الكبير .
عنــدما تكــون nmيكــون
وقــــت التنفيــــذ قــ ـ مــــن
الطريقن الثانيــن ولكــن بعــدد
معالجات كثر.
الحم يكــون علــى المعــالج
ااخير كثيراي.
تحسينات الطريقة الفردية …
المصادر
()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