parallelism

134
ﻣﻮﻗﻊ ﻣﻦ اﻟﻤﻠﻒ ﺗﺤﻤﻴﻞ ﺗﻢ اﻟﺘﻘﻨﻴﺔ اﻟﺒﻮﺻﻠﺔwww.boosla.com

Upload: ahmed-abdelrahman

Post on 03-Oct-2014

268 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Parallelism

تم تحميل الملف من موقع البوصلة التقنية

www.boosla.com

Page 2: Parallelism
Page 3: Parallelism

1

pbíìna

ò߆Խa.................................................................................................................................................٣

٦.............................................................................................................................التوازي: الفصل األول ٦..........................................................................................................................مفهوم التوازي 1.1 ٨.......................................................................................................الحاجة إلى استخدام التوازي 1.2

٩......................................................................................................................فوائد تعدد المعالجات 1.3 ١٠........................................................................................................المعالجة المتوازيةدراسة 1.4 ١١......................................................................................................تطبيقات المعالجة المتوازية 1.5 ١٢.........................................................................................................تعريف الحاسب المتوازي 1.6 ١٢..................................................................................................................)Speedup (التسريع 1.7 ١٧........................................................................................أشكال معالجة المعطيات على التوازي 1.8

١٧.............................................................................................(Programs) مستوى البرامج 1.8.1 ١٨..........................................................................................(Procedure)مستوى اإلجرائية 1.8.2 ١٩......................................................................................(Instructions) مستوى التعليمات 1.8.3 ٢٠..........................................................................................(Instruction) مستوى التعليمة 1.8.4

٢٢............................................................................................................موجز لتاريخ الحاسبات 1.9 ٢٨..............................................................................................تصنيف احلاسبات املتوازية: الفصل الثاني

٢٨....................................................................[Flynn’s Classification Scheme] تصنيف فالين 2.1 ٢٩.........................................................SISDالحاسبات وحيدة تدفق التعليمات ووحيدة تدفق المعطيات2.1.1 ٣٠.......................................................SIMDالحاسبات وحيدة تدفق التعليمات ومتعددة تدفق المعطيات 2.1.2 ٣٤.......................................................MISDالحاسبات متعددة تدفق التعليمات ووحيدة تدفق المعطيات 2.1.3 ٣٥....................................................MIMDالحاسبات متعددة تدفق التعليمات ومتعددة تدفق المعطيات 2.1.4

2.1.4-a الذاآرة المشترآة MIMD Shared Memory.................................................................٣٧ 2.1.4-b تمرير الرسائل MIMD Message Passing...................................................................٤١

٤٤.........................................................................(Interconnection Networks) شبكات الربط2.2 ٤٥...................................................................................................................الشبكات السكونية2.2.1

٤٦.....................................................................................................الشبكة الخطية والحلقية2.2.1.1 ٤٦................................................................................الشبكة المصفوفية و المصفوفية الحلقية2.2.1.2 ٤٧.......................................................................................................... الشبكات الشجرية2.2.1.3 ٤٨........................................................................................................... الشبكات المكعبية2.2.1.4

٤٩............................................................................................................... الشبكات الديناميكية2.2.2 ٤٩.................................................................................................................. شبكة الناقل2.2.2.1 ٥٠............................................................................................................مصفوفة المبدالت2.2.2.2 ٥١.................................................................................................. الشبكات متعددة الطبقات2.2.2.3 ٥٣...............................................................................مبادئ تصميم اخلوارزميات املتوازية:الفصل الثالث

٥٤.........................................................................................................................مفاهيم أساسية 3.1 ٦٣.................................................................................................................اإلجرائيات والمقابلة 3.2

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 4: Parallelism

2

٦٦.........................................................................................................................تقنيات التقسيم 3.3 ٦٧.....................................................................(Recursive Decomposition) التقسيم العودي 3.3.1 ٧٠...............................................................................(Data Decomposition) تقسيم البيانات 3.3.2 ٧٧............................................................(Exploratory Decomposition)التقسيم االستكشافي @ 3.3.3 ٨٢..................................................................(Speculative Decomposition)التقسيم التخميني 3.3.4 ٨٥.......................................................................)Hybrid Decompositions(التقسيم المختلط 3.3.5

٨٧.....................................................................................................أمثلة للخوارزميات المتوازية 3.4 ٨٧......................................................................).Bubble Sort( خوارزمية الفرز الفقاعي وتوابعها 3.4.1

٨٨......................................................)Odd-Even Transposition(الفردي - اإلبدال الزوجي3.4.1.1 ٩٢.......................................................................... إليجاد أصغر شجرة هيكليةPrim خوارزمية بريم 3.4.2

٩٢................................................................................................... تعاريف ومفاهيم أساسية3.4.2.1 ٩٥...........................................................................)خوارزمية بريم: (يكلية األصغر الشجرة اله3.4.2.2

١٠١............................................................................................................الربجمة املتوازية:الفصل الرابع ١٠٢...................................................................................................................:OCCAMلغة 4.1 ١٠٩...................................................................................................... :FORTRAN- 90لغة 4.2 ١١٠........................................................Message Passing Interface MPI واجهة تمرير الرسائل 4.3

١١٠......................................................................................................MPI الهيكل العام لبرامج 4.3.1 ١١٣..........................................................................................(Communicators) المراسالت 4.3.2 ١١٤.................................................................................... الحصول على معلومات عن بيئة التشغيل4.3.3 ١١٦.......................................................................................................MPI تراسل البيانات في 4.3.4 ١٢٠...............................................................................................MPIبرامج تطبيقية باستخدام 4.3.5

١٢١................................................................................................برنامج إلرسال واستقبال المعطيات ١٢٢...................................................................................)Ring(برنامج إرسال المعطيات ضمن حلقة

١٢٤...........................................................................................................برنامج جمع سلسلة أعداد ١٢٧......................................................................................................الفردي-فرز الزوجيبرنامج ال

a@áçcÉuaŠ½...........................................................................................................................................١٣٢

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 5: Parallelism

3

ò߆Խa نبينا حممـد، وعلـى آلـه ،احلمد هللا رب العاملني، والصالة والسالم على سيد املرسلني

:أما بعد... وصحبه أمجعني

الوجود والعلماء يبذلون جهـدهم سـعيا جلعـل فمنذ أن بزغ علم احلاسبات اآللية إىل احلاسبات حتل املسائل بشكل أفضل و أسرع، وقد أمثرت التقنية حتسنا يف الدوائر الكهربائية، وأصبح باإلمكان وضع العديد منها على شرحية واحدة، كذلك ازدادت سرعة نبضة الساعة

!. عات عالية تقاس باجليجا هريتز أدى إىل وصول سرعة املعاجلات إىل حدود سر مماللجهاز ومع ذلك فهناك قيود طبيعية تتحكم باملدى الذي ميكن فيه حتـسني األداء ملعـاجل واحـد،

، كثافة الترانزستورات على الـشرحية أو التشويش الكهرومغناطيسي تقلالن من فاحلرارة مثال بدا أن تتجاوز سـرعة ميكن أ وحىت لو توصل الصناع حلل هذه املشاكل فإن سرعة املعاجل ال

ة قيود اقتصادية، ففي وقت ما ستتزايد كلفـة وعالوة على هذه القيود الطبيعية فثم . الضوءهـذه الكلفـة بتحمـل عدم الرغبة إنتاج املعاجل السريع جدا بشكل كبري مما قد يؤدي إىل

الغري جمدية كل هذه األسباب اليت ذكرناها ستؤدي يف النهاية إىل ترك مجيع الطرق . الزائدةو تركيز االهتمام على طريقة واحدة وهي توزيع محل أداء العمليات احلـسابية بـني عـدة

".التوازي " معاجلات أو ما يعرف بـ

يدة يوما بعد يوم فاحلاسبات الشخصية احلديثـة بـدأت اوللداللة على أمهية التوازي املتز الوقت احلايل ألي شـخص أن يفميكن مؤخرا باالستفادة من التوازي بشكل عملي، فمثال

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 6: Parallelism

4

طورت لوحات رئيسية قد فشركة أنتل ؛ معاجلني يعمالن بالتوازي ا ذ ا شخصي اميتلك حاسب .احلديثةميكن أن يوضع عليها معاجلان من املعاجلات

نك ال تكاد جتد أإنه على أمهية موضوع التوازي وشدة احلاجة إليه يف الوقت الراهن إال األمر الذي دفعنا لالعتماد على مراجع ؛حدث عن املوضوع أو تعطي حملة عنه مراجع عربية تت

.املصطلحات املتعلقة باملوضوع سبب لنا صعوبات بالغة من ناحية تعريب مما ،أجنبية

، احتـوى وثبت باملراجع املستخدمة يف العمل فصول وأربعةيتكون العمل من مقدمة ألساسية اخلاصة بالتوازي و متت دراسة األشـكال على عدد من املفاهيم ا فيه الفصل األول

املختلفة ملعاجلة املعطيات على التوازي باإلضافة إىل إجياز لتاريخ احلاسـبات بـشكل عـام .رخييةوظهور التوازي خالل هذه الفترات التا

للحاسـبات املتوازيـة ]Flynn[ بشكل واسع تصنيف فاليـن الفصل الثاين وقد تضمن . الربط وأنواعها املستخدمة يف احلاسبات املتوازية ومبدأ عملهاإىل شبكات باإلضافةس لدراسة اخلوارزميات املتوازية و التقنيـات املـستخدمة يف ر فقد ك الفصل الثالث أما

رحت العديد من األمثلة املباشرة والشهرية يف احلالة التسلـسلية و كتابة اخلوارزميات وقد ش .علها خوارزميات متوازيةكيفية استخدام تلك التقنيات جل

الربجمة د مسألة الربجمة املتوازية و مميزاهتا وقد ناقش على وجه التحدي الفصل الرابع وعاجل قد مت بتوسـع و ،FORTRAN-90 وكذلك الربجمة املتوازية بلغة ، املتوازية OCCAMبلغة

بـة برنـامج وكيفية كتا MPI باستخدام مكتبة ++Cدراسة الربجمة املتوازية من خالل لغة و مكتبة ++Cمتوازي هبذه اللغة ومت القيام بكتابة عدة برامج تطبيقية متوازية باستخدام لغة

MPIلعدد من املسائل املعروفة يف احلالة التسلسلية .

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 7: Parallelism

5

Í‚â<Å憹]< <هو التعريـف ) احلاسبات املتوازية واخلوارزميات املتوازية (إن اهلدف من هذا املشروع

ف على باإلضافة إىل التعر ، العمل إواحلاسبات املتوازية من حيث النشأة ومبد مبفهوم التوازي ب املتوازي مقارنة مـع سطبيعة اخلوارزميات املستخدمة حلل املسائل املتعلقة باستخدام احلا

.توازية لعدد من املسائل املعروفة وكتابة برامج م،التسلسلي

. مسعانا أن نكون قد وفقنا يف-تعاىل-ونأمل من اهللا :الطالب

حممد بن عبداهللا اجلاراهللا نواف بن مقبل احلريب بسام بن عبدالرمحن اخلريف عمر بن صاحل البهدل

هـ١٤٢٤-ذو القعدة-٢١com.yahoo@computers_Parallel

آافة الحقوق محفوظة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 8: Parallelism

6

التوازي :الفصل األول

أما اليوم . األحباث كانت احلاسبات املتوازية ال توجد إال يف معامل ،لعدة سنوات خلت قد جمال املعاجلة املتوازية إن . وعلى نطاق واسع يف اجملاالت التجارية توفرة م ذه احلاسبات فه

التوازي جتدر اإلشارة إىل أن و. الذي أصبح يدرس يف املراحل اجلامعية األوىل د احل إىل نضج مثال )adder( بداية من تصميم أبسط مكونات العتاد كاجلامع يغطي طيفا واسعا من األشياء

احلقيقة فإن جوانب املعاجلـة املتوازيـة ويف. وحىت حتليل النماذج النظرية للحساب املتوازي أو ، ةأو الربجم ، مثل دراسة عمارة احلاسبات ، ميكن أن يتم دجمها يف أي مقرر لعلوم احلاسب

مبـادئ املعاجلـة مفاهيم و عرض ألهم هذا الفصل ويف. أو اخلوارزميات وغريها الشبكات .املتوازية

مفهوم التوازي 1.1

عنـون معاجلـة املقولـة فإهنم ال ي ، عندما يتحدث خرباء احلاسب عن املعاجلة املتوازية نشطة احلسابية اليت حتدث من األ ا عدد يناقشونو لكنهم " اخلطان املتوازيان اللذان ال يلتقيان "

. يف وقت واحد

. في نفس الوقتحدثت التي نشطةاأل منهو مجموعة: parallelism التوازي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 9: Parallelism

7

بل رمبا أننا منارس التوازي ، احلساب علم ليس حكرا على إن مفهوم التوازي بشكل عام أنشطةعترب ت حماضرة الحظات أثناء االستماع إىل امل فعلى سبيل املثال كتابة ،يف حياتنا اليومية

.ةمتوازي

فالعديد مـن املفـاهيم املوجـودة يف . احلساب املتوازي يبدو وكأنه تصور معقول وففكـرة . مثل إدارة األعمال ،مياثلها من املفاهيم يف احلياة االجتماعية احلساب املتوازي هلا ما

ن املعاجلات تعمل لتحقيق هدف واحد هي مشاهبة لعدد م أن العديد من الناس يعملون سويا يكون وفكرة احلاجة إىل تقسيم العمل لكي تعمل مجيع املعاجلات وال . واحد سويا حنو هدف

هناك أحد متوقف عن العمل هي فكرة شبيهة للحاجة إىل جعل فريق يعمل دون أن ينتظـر . أحد احلصول على معلومات من شخص آخر

ـ كيف أن احلساب املتوازي هنرى ومن هذا التمثيل -قرو نتيجـة طبيعيـة ملفهـوم فمث حنصل على املـوارد ، مع املسألة اليت نريد حلها فنبدأ أوال . )divide-and-conquer(دست

ستكون هذه املوارد عبارة عن وسبةويف حالة احل (املتاحة اليت ميكن أن نستخدمها حلل املسألة ى بـشكل زاء أصغر ميكن أن تؤد بعد ذلك حناول تقسيم املسألة إىل أج ، )عدد من املعاجلات

.متزامن بواسطة عدة أشخاص يف الفريق

على سبيل ، غري دقيقة " يف نفس الوقت "ومع ذلك جيب أن نكون على حذر ألن العبارة قوم بعمل حسابات للعديد ت ا قد يبدو وكأهن ،VAXمثل احلاسب ، احلاسبات السريعة املثال

وهنا يصبح . املعاجل ينقل املعلومات بسرعة كبرية من املستخدمني يف نفس الوقت وذلك ألن التـوازي "بأن التعليمات تنفذ بشكل آين وهو ما يطلـق عليـه " اخنداع"أو " وهم"لدينا .ومبا أن املعاجل يقوم بتنفيذ التعليمات ملهمة واحدة فإنه ليس تواز حقيقي". الومهي

ا فهوم التوازي الذي عرضناه آن ومف(Concurrency) وجيب التفريق بني مفهوم التزامن

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 10: Parallelism

8

.هو القدرة على التشغيل في نفس الوقت: Concurrencyالتزامن

ولكن هناك فـرق . ملعىن واحد مترادفان التوازي لفظان و وكأن التزامن إن هذا يظهر نحن نستخدم التوازي لإلشارة إىل احلاالت اليت حتدث فيها العمليات يف نفس ف. خفي بينهما

أما التزامن . يف نفس الوقت ) CPUs(مثل أربع مهام يتم تنفيذها على أربع معاجلات ، تالوق، " ومهـي تـوازي " فيها واألخرى اليت حقايشري إىل كال احلالتني األوىل اليت تعترب متوازية ف

.أربع مهام يقسم بينها الوقت وتنفذ على معاجل واحد: وكمثال للتزامن

التوازياحلاجة إىل استخدام 1.2

ملاذا نستخدم التوازي؟: واهلام إنه من املفيد اإلجابة على السؤال امللح

هو مـن أجـل ) الربجميات أو العتاد (السبب الرئيسي الستعمال التوازي يف تصميم إن وكل أنـواع احلاسـبات الـضخمة اليـوم . احلصول على األداء األعلى أو السرعة العالية

)Supercomputers ( فأسرع حاسـب يف ، توازي على نطاق واسع لزيادة األداء تستخدم الم أكثر مـن مخـسة خدستالذي ي " حماكي األرض " هو احلاسب الياباين 2003العامل يف عام

ولقد زادت سرعة احلاسبات إىل احلد الذي وصلت فيه الدارات . آالف معاجل تعمل بالتوازي ك فمن أجل حتـسني األداء فـال بـد أن لذل. احلاسوبية حدودا فيزيائية مثل سرعة الضوء

.نستخدم التوازي

فمصمم احلاسب ميكنـه أن . إن السرعة ليست هي السبب الوحيد يف استعمال التوازي ـ ). الوثوقية(يضاعف من املكونات ليزيد من إمكانية االعتماد على اجلهاز ل اعلى سـبيل املثواسب واليت تقارن نتائج كـل نظام توجيه مركبات الفضاء يتكون من ثالثة أجهزة من احل

وميكن للمركبة أن تسري جبهاز واحد فقط بينما اجلهازين اآلخرين يكونـان . منهم مع اآلخر .يف وضع احتياطي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 11: Parallelism

9

ميكنـه أن فالبنـك مـثال . وميكن كذلك استخدام التوازي جلعل السيطرة ال مركزية ال من استخدام حاسـب يستخدم شبكة من احلاسبات الصغرية يف املقر الرئيسي والفروع بد

املعاجلة التقسيمية للحاسبات تتميز بوجود التحكم الداخلي عـن طريـق ههذ، واحد كبري .مديري البنك

، فالطبيعة متوازية فبينما تتحدث مع أصدقائك ، حلل املسائل ا مهم ايعترب التوازي منوذج يتحرك كل ذلـك نساوالل، تتحرك نوالعينا، والرئتني تتنفس اهلواء ، ن القلب يضخ الدم إف

الحظ أفعال حشد من النـاس مثال .ا بطبيعته ةوالكثري من األشياء متوازي . حيدث بالتوازي وأفراد من اخلارج يقومون بـضغط الـزر يف ، )أنشطة( ينتظرون املصعد للصعود إىل أعلى

يف نفس الوقت الذي يقوم أفراد من داخل املصعد ) حدث( ه فيالطابق الذي هم متواجدون جيب التعامـل ) مثال برنامج حاسويب باستخدام(عل األداء أمثل جنولكي ، الضغط على الزر ب

. املتوازيةثهذه األنشطة واألحدامع

فوائد تعدد املعاجلات 1.3

:ة منهادلتعدد املعاجلات فوائد ع

.نيذ املهام املستقلة مبعاجلات متزامنة وبذلك تزداد نسبة العمل وعدد املستخدمينفت • نظام ملوارد مثل يف الكلفة املادية الشتراكه دي تكامل املعاجلات يف نظام وح اإلقالل من •

.الذاكرة واألقراص ووحدات الربط مع الشبكاتضل تناسق وأسرع وصل ف املعاجلات املتعددة وينفذ أ نييقدم سرعة عالية يف التوصيل ب •

.بني املهام املرتبطة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 12: Parallelism

10

ة تنفذ يف وقت واحد من أجل السرعة هببري إىل عدة مهام متشا العمل الوحيد الك جيزئ• .يف التطبيق

دراسة املعاجلة املتوازية 1.4

يف السنوات األخرية أحدثت املعاجلة املتوازية ثورة علمية كـبرية يف جمـال احلاسـبات . موزعـة وبدأت تدخل العامل كل يوم عن طريق معاجلة البيانات يف شكل قواعد بيانـات

واملربجمون العلميون حباجة ألن يفهموا مبادئ املعاجلة املتوازية ليقومـوا بربجمـة حاسـبات .املستقبل

هذه األيام تعتمد بشكل كـبري علـى ) Supercomputers(ومجيع احلاسبات العمالقة وهى تستخدم يف مستوى الربجميـات وكـذلك التـصميم اهلندسـي للعتـاد . التوازي

)Hardware .( بني دول العامل ولكي تتنافس يف جمـال االقتـصاد فالبلـدان قباواشتد الس احلاسبات العمالقـة ف بتوظي اتتطلب اكتشافات علمية ومهندسني وعلماء حاسب ليقومو

.بشكل سليم

مرات عديدة يف هذا السياق وحان الوقت للتمييز " املعاجلة املتوازية "لقد استخدمنا عبارة و ألن جمال علـوم ، )انظر الفصل الرابع ("الربجمة املتوازية " بني هذه العبارة وغريها وخاصة

وال يوجد هناك تعريف موحد للمعاجلة املتوازية ولذلك . احلاسب تعتريه مشكلة املصطلحات .سوف نوضح كيف سنستخدم هذا اللفظ

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 13: Parallelism

11

ــة د :(Parallel Processing)املعاجلــة املتوازي ي آن واح رامج ف دة ب ي لع ة الحاسب اآلل ویا(معالج ) س .وباستعمال عدة وحدات معالجة حسابية ومنطقية

من ا و أفكار من علم احلاسب واليت تتضمن مفاهيم ا جزئي وتعترب املعاجلة املتوازية حقال علوم احلاسب النظرية و هندسة احلاسب و لغات الربجمة و اخلوارزميات وجماالت التطبيـق

.مثل الذكاء االصطناعي والرسوم

ات املعاجلة املتوازيةتطبيق 1.5

حتتاج التطبيقات يف العديد من اجملاالت إىل قدرة حسابية عالية و تتزايد هذه احلاجة مع االعتماد بشكل أكرب على احلاسبات يف جماالت الصناعة و الزراعة والتحكم والدراسـات

االت متعددة نـذكر ونلمس أمهية احلساب السريع و بالتايل املعاجلة املتوازية يف جم . املختلفة :منها

.تنبؤات األرصاد اجلوية ، علم احمليطات ، الفيزياء الفلكية: النمذجة والمحاآاة

ميكانيك املوائع ، اهلندسة النووية ، اهلندسة الكيميائيـة الربوتيـة ، الـذكاء :الهندسة . وغري ذلك الصور ،االصطناعي ، معاجلة

ن البترول و املعـادن ، الكـشف اجليولـوجي ، الكشف ع :البحث عن مصادر الطاقة . و العسكري ـيبالبحث الط

تقاس القدرة احلسابية للحاسوب بعدد العمليات اليت ميكن أن ينفذها بالثانية على األعداد

ـ احلقيق و تتطلـب . (Mega FLOPS (Floating Point Operation Per Second))ةي ةلقد وصـلت قـدر .ألف مليون عملية يف الثانية التطبيقات السابقة قدرة حسابية من درجة

تريليـون عمليـة 36.5 وهو ما يقـارب TFLOPS 35 إىل 2003 عاماحلاسبات املتفوقة يف عاجل للعمليـة الواحـدة ومن أجل حتسني األداء جيب تقصري زمن دورة امل . حسابية كل ثانية

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 14: Parallelism

12

إذا مل اجلـات ال يكفـي ولكن تـسريع املع . وزيادة عدد العمليات اليت تنفذ على التوازي يتصاحب بالقدرة على نقل املعلومات من الذاكرة إىل وحدة املعاجلة بالسرعة الكافية و تقاس

.ة املعاجلة يف الثانية د اليت ميكن نقلها من الذاكرة إىل وحBytesهذه القدرة بعدد البايتات تعريف احلاسب املتوازي 1.6

لذي يستخدم التوازي فإننا نشمل مجيع أجهزة احلاسب إذا قلنا بأن احلاسب املتوازي هو ا مجيـع احلاسـبات تـستخدم التـوازي علـى مـستوى بـسيط يف طـرق و! املوجودة. ولكننا نقول بأن بعض اآلالت متوازية والبعض اآلخر غري متوازيـة ). datapaths(البيانات

ة ذو عالقة باالستخدام ولكن ليس دقيقا وسنضع اختبارا ، اوحنتاج إىل اختبار لكي نفرق بينه نت الصفة اهلندسية ا ك إذا مافيفإذا استطاع املستخدم أن يكتب برناجما ميكنه أن يقرر . العام

.أن التوازي مرئيبقول ال واملتوازية موجودة

:)(Parallel computer احلاسب املتوازيزامن ی حاسب وه شكل مت ل ب ات تعم دة معالج ت(ستخدم ع ي نفس الوق ل ف ل ) أي تعم لح

.مسألة أو ألداء وظيفة معينة

أن تزيد كمية العمل املنفذ يف مدة حمددة كتب للحاسب املتوازي كن للربجميات اليت ت ومي .من الوقت وذلك بتقسيم املهام احلسابية بني عدة معاجلات تعمل بشكل آين

)Speedup (التسريع 1.7

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 15: Parallelism

13

والبشر بارعون يف إجياد املسائل . ملفردةإن التكنولوجيا تحسن باستمرار أداء املعاجلات اوباستخدام عدة معاجلات على التوازي هنالك أمل يف . اليت يبدو من أجلها املعاجل املفرد بطيئا

:حلها بشكل سريع، وبشكل مثايل فإنه ميكن احلديث عن التسريع وفقا للتعريف اآليت

).tp(الزمن املتوازي على )ts(هو حاصل قسمة الزمن التسلسلي : )sp(التسريع

tp/ ts= sp : ومن ذلك نكتب

.التسريع: sp :حيث أن

ts : الزمن التسلسلي. tp :الزمن املتوازي.

:ميكن توضيح مفهوم التسريع من خالل املثال التايل املبسط

n إىل وحدة زمن واحدة لبناء جدار، فما هو الزمن الالزم لـ فلو أن عامل البناء حيتاج لنفرض أن احلالة مثالية وهي أن عمال البناء ال يعيق بعضهم البعض ، . عامل يف هذه املهمة

n/1ففي هذه احلالة جيب على البنائني أن ينهوا بناء اجلدار خالل ولقد الحظنا . وحدة زمن : بأن

. والزمن التسلسلي هنا لعامل البناء الواحد . عامل بناءnوالزمن املتوازي هو الزمن لـ

sp =1/(1/n)=n : وبالتايل فإن نسبة التسريع يف هذه احلالة

الزمن التسلسلي= التسريع ازيالزمن املتو

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 16: Parallelism

14

. مرة من العامل الواحد n من عمال البناء أسرعnوبناء على افتراضنا السابق، فإن . مرهn ضعف تكون إمكانية التسريع إىل nويف احلالة العامة فإنه مع

قطعـة واحـدة إنتـاج حبيث أن ) جتميع أجزاء منتج مثال ( لنفترض وجود خط جتميع .كل مهمة يؤديها عامل واحد ، يستلزم أداء أربعة مهام

عملخط تجميع مكون من أربع محطات :(1-1)الشكل

األوىل سينفذ الزمنففي وحدة ، زمنوحدة T أن املهام األربع حتتاج إىل أيضا لنفترضو الثانية سينفذ العامـل األول الزمنويف وحدة ، ل األول املهمة األوىل من القطعة األوىل العام

...وهكذااملهمة األوىل من القطعة الثانية وسينفذ العامل الثاين املهمة الثانية من القطعة األوىل وبعد ذلك ، اإلنتاج القطعة األوىل وستخرج من خط إنتاج سيكتمل زمنبعد أربع وحدات فما ، عشر قطع إنتاجدعنا نفترض أننا نريد . زمن قطعة واحدة يف كل وحدة إنتاجيكتمل س

بالنسبة لعامل واحد يؤدي كل املهام األربع؟اإلنتاجهو التسريع احلاصل يف خط

:هو ) TW1(إن الزمن لعامل واحد

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 17: Parallelism

15

TW1=10*4*T

=40T

.وحدة الزمن : T :حيث .قطع لبناء العشر40T كل قطعة وبالتايل سيحتاج إىل لبناء 4T ـسيحتاج العامل ل

وباقي القطع ستحتاج ...4T القطعة األوىل إىل إنتاجفنحتاج إلكمال ، أما يف نظام التجميع .1Tإىل

: بالعالقةحيسب) TL(إذن إن زمن خط التجميع

T*)110T (*4 −+ = TL

:ومبا أن

الزمن لعامل واحد = التسریع لخط التجميع

الزمن لخط التجميع

:فإن التسريع خلط التجميع هو =

TT

1340 = 3.07

TW1

TL

أسرع بثالث مرات من العامـل إلنتاج عشر قطع فالعمال األربعة يف خط التجميع تقريبا و

. الواحد

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 18: Parallelism

16

: إذن : قطعةk إنتاج أننا نريد أيضا لنفترض

TW1 = k*4*TT= : وبالتايل فإن T*1)-(kT*4 +L

مـن kعندما تقترب أو للتسريع عندما ننتج العديد من القطع ييب السلوك أو السري التقر إن :كاآليت)(Sp فإن التسريع خلط التجميع ميكن متابعته من خالل املناقشة الرياضية اآلتية∞

= tkttk

*)1(*4*4*−+ = Sp k

k+3*4

: نستنتج أن kقسمة البسط والمقام على وب

= Sp 13

4

+k

يف خـط لذا فإنه ، 4فإن التسريع خلط التجميع يساوي إىل إىل الالهناية K وعندما تسعى .يب هو أربعةبفإن التسريع التقري، جتميع ذو أربعة حمطات

حمطة يف خـط التجميـع تقريبـا n يف كل حمطة فإن زمنبافتراض تساوي ال : وبشكل عام ).n(يكون هلا تسريع يساوي س

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 19: Parallelism

17

أشكال معاجلة املعطيات على التوازي 1.8

املعاجلة املتوازية هي شكل من أشكال معاجلة املعطيات تسمح بتنفيذ عدد من األحـداث :هذه األحداث املتوازية ميكـن أن تكــون على مستويات خمتلفة . املتزامنة بنفس الوقت

(Programs) مستوى البرامج 1.8.1

يتم تنفيذ عدد من الربامج املستقلة عن بعضها بنفس الوقت و تستخدم مبادئ تعددية وتعددية (Temporal Partcipation ) و املشاركة الزمنية (Multiprograms)الربجميات

. من أجل حتقيق ذلك (Multiteatment)املعاجلة

تعددية البرمجيات:)2-1(الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 20: Parallelism

18

ستوى على احلاسبات الكبرية و تكون املعاجلة على التوازي شـفافة بالنـسبة يستثمر هذا امل ميكن باالعتماد على مبـدأ . مهمة إدارهتا و تطويرها نظام التشغيل للمستخدم حيث يتوىل

. تعددية الربجميات ، تنفيذ عدة برامج ملستخدم واحد أو عدة برامج ملـستخدمني خمـتلفني ربجميات على تقسيم زمن الوحدة املركزية إىل جماالت زمنيـة وتعتمد إحدى طرق تعددية ال

متساوية حبيث تشغل الوحدة املركزية برامج خمتلفة بشكل دوري خالل اجملـاالت الزمنيـة (A) ، ففي التنفيذ التسلسلي تنفيذ العملية األوىل )2-1( كما هو موضح يف الشكل ،املختلفة

م قـس فت وازيأما التنفيذ على الت . (C)نفيذ العملية الثالثة ت ا وأخري (B)ومن مث العملية الثانية العمليات الثالث إىل أجزاء زمنية متساوية و تنفذ على التوازي حبيث تنفذ العمليات علـى

.A1,B1,C1,A2,B2,C2,A3,B3,C3:الترتيب التايل

(Procedure)مستوى اإلجرائية 1.8.2

إن تقـسيم . إىل عدة مهمات على التوازي دمج الواح يتطلب هذا املستوى تقسيم الربنا الربامج على هذا الشكل ليس بالعمل السهل فمهمات الربنامج الواحد مرتبطة فيما بينـها و

ما يعتمد تنفيذ مهمة ما على نتائج املهمات األخرى لذا البد من البحث عن عالقـات غالبا . على التوازياملرتبطة جزئياالتبعية ومن مث برجمة املهمات غري املرتبطة أو

بإدارة ومعاجلة هذا املستوى من التوازي إذا مت اسـتخدام أدوات آليـة نظام التشغيل يقوم للتوازي أو مترمجات ذكية ولكن هذه األدوات ما زالت يف جمال البحث ومل تثبت فعاليتـها

يات و حتويلها إىل اخلوارزم ما يقوم املستخدم بتحليل الربامج على مستوى بعد، وبالتايل فغالبا .برامج متوازية

:يبني املثال التايل هذا املستوى من التوازي

و (a)ضرب عناصر الشعاع بثابت : يقوم أحد الربامج بتنفيذ عمليتني على األشعة ، األوىل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 21: Parallelism

19

التالية كما يف الـشكل اإلجرائياتبقوم يو بالتايل . إىل عناصر الشعاع (b)الثانية مجع ثابت (1-3):

.Vقراءة عناصر الشعاع • .X و ختزين النتائج يف الشعاع a بالعدد V ضرب عناصر الشعاع •

.Y و ختزين النتائج يف الشعاع V إىل عناصر الشعاع bمجع • .Y والشعاع Xالشعاع : طباعة النتائج •

)جرائيات مستوى اإل( تحويل برنامج تسلسلي إلى متوازي ) : 3-1(الشكل

(Instructions) مستوى التعليمات 1.8.3يوجد العديد من التقنيات اليت تعتمد مبدأ تنفيذ عدة تعليمات مستقلة فيما بينها علـى

عطيات خمتلفة م بتنفيذ تعليمة وحيدة تعاجل ومالتوازي و أشهرها تقنية معاجلة اجلداول اليت تق .على عدة معاجلات بنفس الوقت

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 22: Parallelism

20

:ذا النوع من التوازي على مستوى يعاجل ه .ة املساعدة على حتويل الربامج ي لتوفر األدوات اآلل نظرانظام التشغيل •ر على احلاسبات الشعاعية لغات برجمية خاصة للربجمة الـشعاعية فاللغات الربجمية حيث تتو •

. FORTRAN Victories: مثل ب العملي بشكل خــاص حيث تعاجل يستخدم هذا النوع من التوازي يف برامج احلسا

حتويل برنامج تسلسلي إىل متوازي على مستوى )4-1(و يبني الشكل . األشعة و املصفوفات .التعليمات

)مستوى التعليمات(تحويل برنامج تسلسلي إلى متوازي ) : 4-1(الشكل

(Instruction) مستوى التعليمة 1.8.4 مبدأ تقسيم التعليمة الواحدة إىل تعليمات جزئية (Pipeline)تعتمد تقنيات العمل الضخي

. خمتلفةتمتتالية حبيث ميكن تنفيذ هذه التعليمات اجلزئية بنفس الوقت على معطيا

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 23: Parallelism

21

، وهـو شـفاف بالنـسبة عتاد هذا النوع من التوازي على مستوى ال االستفادة من يتم

جلات والبطاقات املتخصصة ذات و تستخدم أغلــب املعا . للمستخدم يف احلاسبات احلالية يبني املثال التايل هذا املستوى من .األداء العايل يف يومنا هذا مبدأ العمل الضخي يف تصميمها

:التوازي :ميكن تقسيم عملية ضرب عددين ممثلني بالفاصلة العائمة إىل العمليات اجلزئية التالية

.مقارنة القوى -١ .وضع الرقمني بنفس القوة -٢ .ملية مجع العددينالقيام بع -٣ .كتابة النتيجة بشكل مضبوط -٤

وباعتبار هذا التقسيم ميكن إجراء عدة عمليات ضرب على سلسلة من األعـداد بـنفس (5-1)ويوضح الشكل . الوقت، وذلك بإجراء املراحل املختلفة على ثنائيات أعداد خمتلفة

.طريقة إجراء العملية على التوازي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 24: Parallelism

22

(Pipeline)ي العمل الضخ): 5-1(الشكل

وأخريا جتدر اإلشارة إىل أن احلاسبات املتوازية املتقدمة تستثمر املستويات األربعـه مـن

.العمل على التوازي

موجز لتاريخ احلاسبات 1.9

التاريخ الكامل للحاسبات واحلوسبة جيب أن يتطرق لعدد كبري من اآلالت املتنوعة إن كذلك اآللة التحليليـة الـيت ، ستخدمه الصينيون القدماء الذي كان ي (Anacuy)عدادمثل امل

analog and( جيب أن يتطرق للعمارة الرقمية والتماثليـة أيضا، "لووم"و " باباج"اخترعها

digital (للحاسبات.

كل جيل يتميز بتطور ملحـوظ عـن . قسم إىل أجيال ي غالبا إن تطور احلاسبات الرقمية ولغـات ، كذلك التنظيم الداخلي لنظم احلاسب ، مة لبناء احلاسبات سابقه يف التقنية املستخد

إال أهنا ، تؤخذ بعني االعتبار يف أجيال احلاسبات وبالرغم من أن اخلوارزميات عادة ال . الربجمة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 25: Parallelism

23

ريخ التايل االت. ويشمل ذلك اخلوارزميات املستخدمة يف العلوم احلاسوبية ، تتطور وبثبات أيضا .ياء كمعامل لتقسيم األجيالسيعتمد على هذه األش

)1945-1623 (العصر الميكانيكي

فكرة استخدام اآلالت حلل املسائل الرياضية ميكن إرجاعها إىل أوائل القرن الـسابع إن الذين صمموا ونفذوا اآلالت احلاسبة اليت ميكن هلا أن تؤدي عمليات اجلمع . عشر امليالدي

".Leibnitz"و " Pascal"و " Schickhard"اء هم والطرح والضرب والقسمة هؤالء العلمأو " آلـة الفـرق "املـسماة بــ " جاباب" إن أول آلة حسابية متعددة األغراض هي آلة

"Difference Engine" ، آلة أخـرى طموحـة . ولكنها مل تكتمل1823واليت بدأ هبا يف عام . أيضا ولكنها مل تكتمل1842ج بتصميمها يف العام اباوهي اآللة التحليلية واليت بدأ ب

لجيل األول للحاسبات اآلليةا فترة اجليل األول من أول ظهور للحاسب يف منتصف األربعينات إىل أن أنتج احلاسـب

IBM 650 )1956.( ، كانت احلاسبات يف اجليل األول تستخدم الصمامات املفرغة كعناصر حتويل أساسـية •

. للذاكرةوتستخدمها أيضا .قدرة املعاجلة لتلك احلاسبات املبكرة تقدر بـعشرة آالف تعليمة كل ثانية • . حرف أجبدي أو رقمي٢٠٠٠مكان تلك احلاسبات ختزين إ أما عن التخزين فكان ب• كانت األوىل يف توظيف علـم احلـساب IAS" فون نيومان "ظهر يف هذا اجليل آلة •

ومل تكتمل جبميع وظائفها إال ، 1946مها يف عام بتصمي" فون نيومان "واليت بدأ ، املتوازي .1952يف عام

.IBM 701 هي اآللةوظهر يف هذا اجليل أول آلة جتارية تستخدم احلساب املتوازي •

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 26: Parallelism

24

وفيـه طرحـت اقتراحـات آلالت ،كان احلاسب اآليل يف هذا اجليل تسلسلي العمارة • ).النمذجة( مرحلة التنميط ولكنها مل تكن تتجاوز، ةمتوازية وبدرجات متفاوت

ومع بدء اخلمسينات بدأ اسـتخدام لغـة ، كانت الربامج يف أول اجليل تكتب بلغة اآللة • وبعد ذلك مت عمل اجملمـع ، التجميع وكانت الترمجة من لغة التجميع إىل لغة اآللة تتم يدويا

Assemblerغة اآللة والذي يقوم بعملية حتويل الربامج من لغة التجميع إىل ل. : من احلاسبات املشهورة يف اجليل األول •

- ENIAC لة اهليدروجينية اليت ألقيت علـى بخدم حينها للحسابات اخلاصة بالقن واست .هريوشيما وناجازاكي

- EDVAC - UNIVAC والذي استخدم للتنبؤ بنتيجة االنتخابات الرئاسـية للواليـات املتحـدة

.1952عام لاألمريكية

الجيل الثانييف هذا اجليل حدثت تطورات هامة ، 1963 وحىت عام 1957 متتد فترة هذا اجليل من عام

، ومن السمات املميـزة على كل املستويات من بناء الدارات األساسية إىل لغات الربجمة جدا : له .فرغة من الصمامات املم يف هذا اجليل الترانزستورات بدالخد است• . قدرة املعاجلة حلاسبات اجليل الثاين تقدر بـمائيت ألف تعليمة كل ثانية• . حرف أجبدي أو رقمي32000 ميكن حلاسبات هذا اجليل ختزين • FORTRANمثـل ، مت يف هذا اجليل إنتاج العديد من لغات الربجمة العاليـة املـستوى • .)1958( COBOLو ، )1958( ALGOLو ، )1956(

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 27: Parallelism

25

وكان فيها وحدة للنقطة IBM 704 من اآلالت التجارية اهلامة يف اجليل الثاين هي اآللة • وهي اآللة األكثر جناحا يف . منها وبنجاح أسرع من اآلالت السابقة جاعال. العائمة احلسابية

.استخدام احلساب املتوازي يف وقتهاوفيهـا اسـتخدمت معاجلـات ، IBM 7094 ومن اآلالت اهلامة يف هذا اجليل اآللـة •

بـشكل واإلخـراج اإلدخالليتم التواصل بني الذاكرة الرئيسية وأدوات ) I/O(خرج /دخل .أفضل

ملعاجلـة األعـداد يف شهد هذا اجليل ظهور أول حاسبني عمالقني صمما خصيـصا • ). Stretch اويطلق على األخري أيض ( IBM 7030 و LARCاحلاسبان مها . التطبيقات العلمية وذلـك لـتمكني ، أول حاسب يستخدم التوازي يف الذاكرةIBM 7030و كان احلاسب

.التوافق مع املعاجلات األسرع/يالذاكرة املغناطيسية البطيئة للتماش

الجيل الثالث

حتديد أهم و ، وميكن تلخيص وحىت منتصف السبعينات 1964 متتد فترة هذا اجليل من عام :اجليل يف اآليت املعامل هلذا

الدوائر املتكاملة هي أشباه موصالت وعدد (Icsخدم يف هذا اجليل الدوائر املتكاملة است • )من الترانزستورات مجعت يف قطعة واحدة

).1972( عام Illiac IVوهو احلاسب ، ظهر يف هذا اجليل أول حاسب متوازي• .مس ماليني تعليمة كل ثانيةخبر تقد لث قدرة املعاجلة حلاسبات اجليل الثا• . ميكن حلاسبات هذا اجليل ختزين مليوين حرف أجبدي أو رقمي• . من املغناطيسخدم للذاكرة أشباه املوصالت بدال است• ظهرت يف هذا اجليـل تقنيـة فعالـة لتـصميم املعاجلـات املعقـدة وهـي تقنيـة • )microprogramming(

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 28: Parallelism

26

.لتشغيل ظهرت نظم ا• احلاسبات باالستفادة من التوازي وذلك باستخدامهم لوحدات وظائفية مصمموبدأ •

.متعددةوكـان ) 1964( من احلاسبات اهلامة يف أوائل هذا اجليل CDC 6600كان احلاسب •

فكان له عشر وحدات وظيفية ميكنها العمـل يف ، أول حاسب يستخدم التوازي الوظيفي .نفس الوقت

وهو ) Vector processor( ويف هذا اجليل ظهر أول حاسب يستخدم معاجلات موجهة • ). 1969 يف أنتج (CDC 7600احلاسب

CRAY 1, IBM 360 and 370 series ,CYBER 205 من احلاسبات اهلامة يف هذا اجليل • ".يونيكس" نظام التشغيل أيضا، C لغة الربجمة أنتجت 1972 عام يف• ل الرابعلجيا

خص أهم معـامل ، نل متتد فترة هذا اجليل من منتصف السبعينات وحىت أواخر الثمانينات :هذا اجليل يف اآليت

كمـا (Large scale integration)خدم يف هذا اجليل الدوائر املتكاملة الواسـعة است•

)(Micro-processorاستخدم يف هذا اجليل املعاجل الدقيق :حلاسبات اهلامة يف هذا اجليل من ا•

- CRAY X-MPنظام بأربعة معاجلات . - CRAY 2أول حاسب يتمكن من تنفيذ مليار عملية حسابية يف الثانية . - CYBERplus معاجل عايل األداء٦٤( و استخدم فيه نظام عدة معاجلات متوازية (

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 29: Parallelism

27

أجيال المستقبلوبدأت األحباث تتجه يف اجتاهني يف حماولة حملاكاة ،أوائل التسعينات هذا اجليل من يبدأ

فاالجتاه األول حياول متثيل احلاسوب كشبكات عصبية وهـو مـا يعـر . العقل البشري واالجتاه اآلخر حيـاول ، )Artifical Neural Network( بالشبكات العصبونية االصطناعية

لتحـل تإنتاج رقاقة حيوية وذلك بتكييف الرب وتينا يف ، بالتعاون مع علماء اهلندسة الوراثية وختدم أحباث هذين االجتاهني أساس اجليـل القـادم . حمل السيليكون يف الدوائر اإللكترونية

.للحواسيب وميكن إجياز األحباث اليت جتري من أجل حواسيب املستقبل يف جمموعة من االجتاهات

وثاين هذه االجتاهات ، )Hardware(كونات املادية أول هذه االجتاهات خيتص بامل . أو احملاور وثالث هذه االجتاهات خيـتص بالربجميـات ، واالتصاالت العمل على التوازي هو أساليب

)Software.( ويف جمـال . ففي جمال املكونات املادية تتزايد إمكانيات وسرعات املعاجلـات املنتجـة

.تزايد أحجام الذاكرة يف الرقاقة الواحدةاملكونات املادية غري الفعالة مثل الذاكرة ت واالتصاالت فقد تبني إمكـان تنفيـذ ماليـني العمل على التوازي ويف جمال أساليب

وتـبني أن تعـاون . التعليمات يف الثانية الواحدة وذلك عن طريق استخدام أكثر من معاجل .عاجلات بسيطةاملعاجلات يف تنفيذ التعليمات يكون أيسر إذا كانت تعليمات هذه امل

ويف جمال الربجميات وصلت بعض الربامج اخلاصة باجليـل احلـايل مثـل بـرامج الـنظم ومازالت هناك حاجة إىل املزيد من العمل . إىل مرحلة النضوج)(Expert Systemاخلبرية

يف جماالت الذكاء االصطناعي لتطوير وسائل إدخال البيانات والتـساؤالت إىل احلاسـوب .ة أكثر مثل التخاطب مع احلاسوب بلغة طبيعية والكتابة بأساليب بسيطةبطريقة طبيعي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 30: Parallelism

28

تصنيف احلاسبات املتوازية:الفصل الثاني

وميكن أن نصنفها . مت يف العقدين األخريين تصميم وإنشاء الكثري من احلاسبات املتوازية من دراسة آلـة أو ومتكننا خطة التصنيف هذه . يف جمموعات اعتمادا على السمات املشتركة

مل جيـد ، ولسوء احلظ . أكثر كنموذج لكل جمموعة مما يساعدنا على فهم أفضل للمجموعة ، على مر الـسنني و.الباحثون خمطط تصنيف مقنع ميكن أن يغطي كل أنواع اآلالت املتوازية

كان هناك العديد من احملاوالت إلجياد طريقة فعالة ومرحية لتصنيف احلاسبات مـن حيـث هذه را إال أن التصنيف األكثر انتشا ، وعلى الرغم من أنه ليس هناك تصنيف كامل . ارةالعم

ويأخذ تصنيف . 1966 يف عام [Flynn] "ميشيل فالين "األيام هو ذلك التصنيف الذي اقترحه للتعليمات و كمية السريان ) أو التدفق (كمية السريان : فالين بعني االعتبار عاملني اثنني ومها

: ونورد هذا التصنيف يف الفقرة اآلتية.ات اليت تتدفق للمعاجلللبيان

[Flynn’s Classification Scheme] تصنيف فالين 2.1

. إن تصنيف فالين مبين أساسا على كمية تدفق البيانات والتعليمات املوجودة يف اآللـة كما نفذت أو ) طياتالتعليمات أو املع (نه تتابع أو تسلسل لعناصر أويقصد بالتدفق هنا على

تقوم بعض اآلالت بتنفيـذ تـدفق واحـد مـن ، فعلى سبيل املثال . شغلت بواسطة املعاجل وبنفس الطريقـة فـبعض اآلالت . بينما يتم تنفيذ عدة تدفقات يف آالت أخرى ، التعليمات

وعليه فإن فاليـن . وآالت أخرى ترجع تدفقات متعددة ، من املعطيات ا واحد اترجع تدفق

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 31: Parallelism

29

لة يف تصنيف واحد من بني أربعة وذلك اعتمادا على وجود تدفق واحد أو تدفقات يضع اآل .متعددة

SISDالحاسبات وحيدة تدفق التعليمات ووحيدة تدفق المعطيات2.1.1

و " Apple Macintosh"مثل ، ويندرج حتت هذا الصنف مجيع احلاسبات التسلسلية املعتادة"DEC VAX ."ا الصنف تحضر التعليمات من الذاكرة مث تقوم بتنفيـذها واحلاسبات من هذ

ومن مث تقوم بإحضار تعليمات أخرى . عادة باستخدام قيم املعطيات املشار إليها من الذاكرة Vonفـون نيومـان "بتصميم ) SISD(و أيضا يعرف هذا التصميم . وهكذا، من الذاكرة

Neumann " يف أواخر األربعينات وأوائل اخلمسينات " جون فون نيومان "والذي قام به العامللقد مرت صناعة احلاسبات وعلى مدى مخسني عاما بالكثري من اخلربة يف . من القرن املاضي

، ونظم التـشغيل ، واملترمجات، )C و Fortranمثل (هذا التصنيف فالكثري من لغات الربجمة .كلها تعتمد أساسا على هذا التصنيف، وطرق الربجمة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 32: Parallelism

30

SISD :)2-2(لشكل ا

بل وأكثر مـن ذلـك؛ ، SISDإن كل أنواع احلاسبات التسلسلية موجودة يف تصنيف ، فعلى سبيل املثـال ، فالباحثون وضعوا بعض أنواع احلاسبات املتوازية ضمن هذا التصنيف

تنتمي إىل هذا التصنيف بالرغم من أن تعليمـات Cray-1مثل ) Vector(املعاجلات الشعاعية .إال أن لديها دفق واحد من التعليمات تعمل على قيم بيانات شعاعية التشغيل

SIMD الحاسبات وحيدة تدفق التعليمات ومتعددة تدفق المعطيات2.1.2

أوامـر ويتضمن هذا التصنيف احلاسبات اليت حتتوي على وحدة تعليمات واحدة تصدر بياناته احمللية اخلاصـة يشغل )PE(وألن كل عنصر معاجلة . )PEs( عدة عناصر معاجلة إىل

وعادة فإن وحدة التعليمات تصدر نفس األمـر إىل مجيـع . فهناك تدفقات متعددة للبيانات وبعد ذلك ، ADDمجيع عناصر املعاجلة تنفذ تعليمة اجلمع على سبيل املثال . عناصر املعاجلة

. وهكذا، STOREتنفذ تعليمة التخزين

وتـشرف علـى عناصـر . سبات بوجود وحدة حتكم مركزية يتميز هذا النوع من احلا املعاجلة املختلفة تعليمة واحدة من وحدة التحكم وتقوم بتنفيذ هذه التعليمة بشكل متـزامن

وغالبا ما متلك ذاكرة مـشتركة بـني ، تكون هذه احلاسبات متزامنة . على معامالت خمتلفة اكرة يلجأ إىل تقسيمها إىل بنوك مما يسمح ولتسهيل عملية الولوج املتوازي إىل الذ . الوحدات

تتبادل وحدات معاجلة املعطيات عـن طريـق ، باستخالص عدة معامالت يف نفس الوقت الذاكرة املشتركة ويتم االتصال بني وحدات املعاجلة املختلفة وبنوك الذاكرة عـرب شـبكة

مكن اعتبـار احلاسـبات ونظرا لتنفيذ نفس العملية على الوحدات املختلفة فمن امل . الربط

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 33: Parallelism

31

SIMD كحاسوب وحيد املعاجل الذي يقوم بتنفيذ التعليمات على أجزاء خمتلفة من املعطيات .ويالئم هذا النوع من احلاسبات العمليات على األشعة وعلى املصفوفات وغالبا ما يـستخدم

ت هذا الصنف حيث تؤخذ املعطيا ) 3-2(ويوضح الشكل . من أجل عمليات احلساب العلمي A(I) بالـشعاع Bومثال على ذلك عملية ضرب العدد ، من الذاكرة وينفذ عليها أمر واحد

جبميع عناصر الـشعاع Bفتحصل عملية ضرب ، C(I)والناتج يوضع يف ، I=0,…,Nحيث A(I)بعملية واحدة على كل املعامالت .

SIMD :)3-2(الشكل

ادة متوسطة األداء أو بـسيطة وتكون ع ، تستخدم يف هذه احلاسبات آالف املعاجلات .وجودهتا وأدائها العايل ناتج عن العدد الكبري للمعاجلات املستخدمة ، جدا

فأول حاسب ، يف تاريخ احلاسبات املتوازية بارزا ا موقع SIMDحتتل احلاسبات من النوع من ولكن بسبب أن هذا النوع ، )ILLIAC IVوهو (متوازي مت تشييده كان من هذا النوع

. باستخدام مكونات خمصصة لذا فإنه قل اإلقبال عليها يف السنوات القليلة املاضيةيبىناآلالت

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 34: Parallelism

32

. لتوضيح اآلالت اليت تنتمي إىل هذا النـوع ا جيد مثاال(ILLIAC IV)يعترب احلاسب . فهنالك وحدة تعليمات واحدة تصدر نفس األمر إىل مجيع عناصر املعاجلة األربع وسـتون

وذلك لتحميـل ) 2K words( كيلو من الكلمات ٢عنصر معاجلة له ذاكرة مكونة من وكل وترتبط األربع وستون عنصر معاجلة معا بشبكة ثنائية األبعاد فيها . وختزين ومعاجلة املعطيات

. وميكن للعناصر املتجاورة إرسال واسـتقبال الرسـائل ، مثانية عناصر معاجلة يف كل جانب ، للمعاجلات يف الطرف العلوي لترتبط مع املعاجلات يف الطرف الـسفلي وتلتف االرتباطات

وكذلك تلتف االرتباطات للمعاجلات يف الطرف األيسر لترتبط مع املعاجلـات يف الطـرف .)(5-2)االلتفافات ظاهرة يف الشكل. (األمين

PEsعالجة عنصر م٦٤و ) IU( مع وحدة تعليمات واحدة ILLIAC IVيوضح الجهاز ): 4-2(الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 35: Parallelism

33

PE0 PE1 PE7

PE8 PE9

PE56 PE63PE57

i +8

i +1i

i - 8

i - 1

PE15

… …

يوضح طريقة التفاف االرتباطات بين المعالجات: )5-2(شكل ال

ميكنه أن يرسل الرسائل يف أربع اجتاهات فالروابط PE)(وحيث أن كل عنصر معاجلة ويدعى هذا أيضا ). غرب،جنوب، شرق، مشال(تعنون أو تعرف غالبا باجتاهات البوصلة

ربع وستون أن مترر فمع تعليمة واحدة ميكن لعناصر املعاجلة األ. NEWSبشبكة اتصال .كالشمال مثال، الرسالة يف اجتاه واحد

NEWS العنونة باستخدام طریقة شبكة یوضح :)6-2(الشكل

وإمنا صمم لغرض خاص وهو حل ، عام الغرضا ليكون حاسب(ILLIAC IV)مل يصمم تنبؤ بـالطقس وال، للتنبؤ بالطقس)ILLIAC IV(مثال يستخدم . املعادالت التفاضلية اجلزئية

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 36: Parallelism

34

ويف هذه احلالة فاحلل النموذجي هـو بتقـسيم . يستلزم بيانات كثرية يف فضاء ثالثي األبعاد افاحللول لألربع وستني قسم . (PE)ووضع قسم واحد يف كل معاجل ، ا قسم ٦٤الفضاء إىل

اور وعندما حيتاج عنصر املعاجلة إىل بيانات من القسم اجمل . يف هذه الطريقة حتسب بالتوازي .فاالتصال جيب أن يبدأ على شبكة الربط

و ICL DAP و ILLIAC IV: هـي SIMDمن اآلالت اهلامة اليت تتبـع لتـصنيف

Goodyear MPP و MasPar MP-2.

MISDالحاسبات متعددة تدفق التعليمات ووحيدة تدفق المعطيات 2.1.3

ى معامل واحد خالل الدورة الزمنية حيث يتم يف هذا النوع تنفيذ عدة تعليمات خمتلفة عل النوع من احلاسبات بوجود عدد من املعاجلات اليت تعمل بشكل مستقل ايتميز هذ . للحاسب

يتضمن كل معاجل وحدة حتكم خاصة به تساعده على تنفيـذ املهـام . عن بعضها البعض تكاد تكون أمهيـة و MISDيوجد القليل من احلاسبات املتوازية من نوع . اجلزئية املوكلة إليه

هـي MISDوأن . ألنه يتالءم مع مبدأ التصنيف ) (Flynnهذا النوع مقتصرة على تصنيف . قليلة االستعمال فهي تعتمد مبدأ العمل التسلسلي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 37: Parallelism

35

MISD: (7-2)الشكل

MIMDالحاسبات متعددة تدفق التعليمات ومتعددة تدفق المعطيات 2.1.4

ة تعليمات على معامالت خمتلفة خـالل الـدورة الزمنيـة يتم يف هذا النوع تنفيذ عد النوع من احلاسبات بوجود عدد من املعاجلات اليت تعمـل بـشكل ايتميز هذ . للحاسب

يتضمن كل معاجل وحدة حتكم خاصة به تساعده علـى تنفيـذ . مستقل عن بعضها البعض ايل فاحلوادث اليت جتري على معاجل هذه احلاسبات غري متزامنة وبالت . إليه املهام اجلزئية املوكلة

ميكن فرض نوع من التزامن بني . ما ال ترتبط باحلوادث اليت جتري على املعاجلات األخرى هذه املعاجلات فيما دعت الضرورات الربجمية لذلك ويتم هذا التـزامن باسـتخدام بعـض

أيـضا عـن طريـق وميكن أن يتم العتادالتعليمات األولية املخصصة للتزامن أو عن طريق أن كل معامل يعاجل من قبل معاجل ما بأمر ما ) 8-2(يوضح الشكل . نظم التشغيل الربجميات و

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 38: Parallelism

36

جة هذه املعاجلة ختـزن يف مجيع املعامالت حسب كافة األوامر ونتي ويف الوقت ذاته تعاجل ، عمـل مجيـع نالحظ أنه عند املعاجلة ال ينتظر أي معاجل نتيجة من معاجل آخر ألنه ت . الذاكرة

.املعاجلات بشكل غري متزامن وعلى التوازي

على مستوى اخلوارزميات حيث يقسم MIMDتستخدم املعاجلة املتوازية يف حاسبات وتنفذ كل مهمة علـى معـاجل مـن ، الربنامج إىل مهمات جزئية مستقلة جزئيا فيما بينها

وهي احلاسـبات األكثـر تتكون هذه احلاسبات من عشرات املعاجلات . معاجلات احلاسب .عمومية يف وقتنا احلاضر حيث ميكن استثمارها من أجل تطبيقات خمتلفة ومتنوعة

: ويوجد هلذا التصنيف فئتني فرعيتني هامتني ومها

) a ( الذاآرة المشترآة(Shared memory).

)b ( تمریر الرسائل(message passing).

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 39: Parallelism

37

MIMD :)8-2(الشكل

2.1.4-a MIMD Shared Memory الذاآرة المشترآة

يف هذه الفئة الفرعية فإن أي معاجل يتضمن وحدة تعليمات و وحدة حسابية متكنه مـن أن . يقرأ من أو يكتب يف ذاكرة مشتركة

)MIMD Shared Memory(نموذج الذاآرة المشترآة ): 9-2(الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 40: Parallelism

38

واليت ميكن ، ت الذاكرة بواسطة شبكة الربط يف هذا النموذج ترتبط املعاجلات مع وحدا شبكة الربط ميكن أن تثبت على شكل حلقة أو شبكة . أن تتخذ عدة أشكال تبعا لنوع اآللة

)Mesh.( ميكن لنا تشبيه هذا النموذج بلجنة تستخدم سبورة رئيسية مشتركة فيما بينـها لكـل

ولكن ميكن لشخص ، من السبورةفأي عضو يف اللجنة ميكن له أن يقرأ أي جزء ، االتصاالتففي منوذج الذاكرة املشتركة هذا رمبـا . واحد فقط أن يكتب على جزء معني من السبورة

حيصل تعارض أو تضارب يف الذاكرة عندما حياول معاجلان الكتابة يف نفس اجلزء من الذاكرة فس خلية الذاكرة وأيضا رمبا تتداخل املعاجلات مع بعضها عند الكتابة يف ن ، يف نفس الوقت

ولكي ال يصبح التداخل مشكلة جيب . املشتركة مما يتسبب يف إيقاف وفشل العملية احلسابية أن تزود اآللة بأقفال أو أي آلية للتزامن وذلك لضمان وجود معاجل واحد فقط يتعامل مـع

.خلية الذاكرة املشتركة يف الوقت الواحدوجيب أن ، تخدم تقنية الذاكرة املشتركة وباختصار سوف نعرض لثالث آالت جتارية تس

.نأخذ يف عني االعتبار التنوع يف شبكات الربط

كل معاجل ، حيتوي على أربع معاجلاتCray X-MP احلاسب الضخم :النموذج األول ). 10-2الشكل( خمزن ذاكرة ٦٤له أربعة منافذ للذاكرة املشتركة ميكن أن تصل إىل

له أربع منافذ للذاآرة المشترآة) PE( وآل معالج Cray X-MP/48از يوضح الجه:)10-2(الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 41: Parallelism

39

The Alliant FX/8 minisupercomputer :النموذج الثاني

تقتـسم هـذه الوحـدات و، (CEs) وحدات حسابية حيتوي هذا احلاسب على مثاين خابيتني إىل ذاكرتنيCrossbar Switchوترتبط بطريقة ، احلسابية فيما بينها ذاكرة مشتركة

)cache ( تتعاقب الذاكرتان اخلابيتان الولوج إىل الذاكرة املشتركة و. كيلو بايت ٦٤ذوات .ثانية/ ميغابايت١٨٨من خالل ناقل ذو سعة

.تشترك في الذاآرة) CEs( بثمانية معالجات Alliant FX/8 يوضح الجهاز :)11-2(الشكل

The Bolt,Beranek and Newman (BBN)Butterfly: النموذج الثالث

يتكـون هـذا ، وهو حاسب متوازي عام الغرض ، 1983 صنع هذا احلاسب يف عام ميكن أن تـصل MC68000 من نوع وكل عقدة فيها معاجل ، عقدة 256 إىل 2احلاسب من

العقد ترتبط فيما بينها بطريقـة شـبكة الفراشـة امللتفـة ، ميغابايت 4ذاكرة للمعاجل إىل )butterfly network.(

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 42: Parallelism

40

أن يتحول إلى أي وحدة P يمكن فيه ألي عنصر معالجة BBN Butterfly الجهاز :)12-2(الشكل Mذاآرة

يزود منوذج الذاكرة املـشتركة . مسات مشتركة MIMDإن لكل آالت الذاكرة املشتركة استخدام ولذلك. وهذا يتوافق مع وجهة النظر التقليدية لدى معظم املربجمني . خمزن للمربمج

.منوذج الذاكرة املشتركة أسهل للربنامج من منوذج مترير الرسالة على سبيل املثال

يف الذاكرة املـشتركة حيـث (hot spot)والعيب الواضح املشترك هو النقاط الساخنة و ألن املعاجلات جيب أن تنتظر حـىت . حتاول املعاجلات أن تكتب على نفس خلية الذاكرة

. اكرة جاهزة فإن ذلك ميكن أن يعيق أداء النقاط الساخنة تكون خلية الذ ونظام التشغيل جيب أن تقرر كيـف compilerوالعيب األخر هو أن املربمج واملترجم

.يقسم الربنامج على عدة معاجلات

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 43: Parallelism

41

2.1.4-bتمرير الرسائل MIMD Message Passing

ولكـي تتواصـل ، له ذاكرة داخلية خاصة بـه يف منوذج مترير الرسائل هذا فإن كل معاجل ١املعاجلات فيما بينها فإهنا ترسل رسائل إىل كـل معـاجل عـن طريـق شـبكة الـربط

)interconnection Network) .(13-2أنظر الشكل (

يوضح نموذج تمرير الرسائل): 13-2(الشكل

. دة أشكال خمتلفـة فشبكة الربط ميكن أن تأخذ ع ، وكما يف منوذج الذاكرة املشتركة

من n"أو " املكعب الثنائي متعدد األبعاد"وشبكة الربط الشائعة يف منوذج مترير الرسائل هي يف ... مثال. حبيث أن كل بعد من األبعاد يثبت عليه معاجلني ، ) n-dimensional" (األبعاد

):14-2(املكعب ثالثي األبعاد ستكون املعاجلات يف زوايا املكعب كما يف الشكل

المعالجات تتوضع على زواياه، مكعب ثالثي األبعاد): 14-2(الشكل

. شرح لشبكات الربط٥٢ وحتى ٤٤ في الصفحات من 1

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 44: Parallelism

42

كان مبقدور األعضاء أن يكتبوا إذا يتشابه منوذج مترير الرسالة مع اللجنة فقط يف حال إن أسلوب توجيه الرسالة وسرعتها يشكل أمرا هاما ألداء اآلالت من . مالحظاهتم لبعضهم

. هذا النوع وهـذا يعـين ، منها أنه ال يوجد ذاكرة مشتركة ، موذج العديد من احلسنات وهلذا الن

اختفاء املشاكل الناجتة عن التداخل والتضارب يف الذاكرة واليت يعاين منها منوذج الـذاكرة .كما أن النفاذ أو الوصول إىل الذاكرة سريع.املشتركة

:خيدم هذا النوع من اآلالت غرضني مها . اتصال لعبور قيم املعطيات بني املعاجلات يعمل كأداة: األول .يعمل كآلية تزامن للخوارزميات املتوازية: والثاين

ومبا أن املعاجلات ال تشترك يف ذاكرة واحدة فإن منوذج مترير الرسائل ميكن أن حيتوي ... فعلى سبيل املثـال . خبالف منوذج الذاكرة املشتركة ، على عدد كبري جدا من املعاجلات

فإن العدد املمكن للمنافذ إىل CRAY X-MPندما حناول إضافة معاجلات أكثر إىل اجلهاز عملعاجلـات وال ميكن يف هذه الطريقة زيادة عدد ا ) )10-2(الشكل (الذاكرة املشتركة حمدود

. معاجل١٦إىل أكثر من

فلـيس ، املربمج إن العيب الرئيسي يف منوذج مترير الرسائل هو احلمل الزائد امللقى على إن . بل عليه أيضا أن يوزع املعطيات ، كافيا أن يقوم املربمج بتقسيم الربنامج على املعاجلات

برجمة اآلالت من نوع مترير الرسائل تتطلب من املربجمني أن يعيدوا النظر يف اخلوارزميات كي .يكون استخدام اآللة أكثر كفاءة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 45: Parallelism

43

معـاجل 128و هلـذه اآللـة Intel iPSC... وعمن األمثلة ألجهزة تستخدم هذا الن قامت بتسويق آلة هلـا nCUBEكذلك شركة ). أبعاد 7 أي أن املكعب ذو 27= 128(

). بعد13أي أن املكعب ذو ، 213=8192( معاجل 8192

,SISD(وبالرغم من أن أكثـر اآلالت التجاريـة تتبـع ألحـد أصـناف فاليـن

SIMD,MIMD ( بعض اآلالت ... مثال، اميم ال تتبع لتصنيف فالين فإنه يوجد بعض التص dataflowوالبعض اآلخر مثل . ميكن أن توضع يف أكثر من تصنيفICL DAPمثل اآللة

. ال تتبع ألي تصنيف من تصنيفات فالينreductionو

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 46: Parallelism

44

(Interconnection Networks) الربطاتشبك2.2

و تتـألف . جلات والذاكرة يف احلاسبات املتوازية تعد شبكة الربط أداء الوصل بني املعا (switches)عادة من خطوط اتصال وعناصر متخصصة لنقـل املعلومـات كاملبـدالت

ختتلف يف بنيتها ويف استخدامها عن الشبكات احلاسوبية اليت تصل .(Routers)واملوجهات معاجلـات متقاربـة و تصل بني يفشبكة الربط يف احلاسوب املتواز . عادة بني احلاسبات

أمـا . املسافة الفاصلة بينها صغرية جدا، وقد تتواجد هذه املعاجلات على البطاقـة نفـسها الشبكات احلاسوبية فهي تربط حاسبات متباعدة تـصل املـسافة فيمـا بينـها إىل آالف

.الكيلومترات يف بعض األحيان

إىل حاسوب بعيـد جغرافيـا يعرب تراسل املعطيات عرب الشبكات احلاسوبية عن الولوج أمـا تراسـل . هبدف استخالص بعض املعطيات أو لتنفيذ بعض الربامج احلاسوبية عن بعد

املعطيات عرب شبكة احلاسوب املتوازي فيعرب عن التبعية املوجودة بـني مهمـات الربنـامج ة الربط املتوازي وعن االرتباط بني املتحوالت املستخدمة يف املهمات املختلفة وبفضل شبك

و تقنياهتا اليت تتطور بشكل مستمر فقد متكن املصممون من بناء احلاسبات املتوازيـة ذات الذواكر املوزعة ، و متكن شبكة الربط يف هذه احلاسبات من تنفيذ مهمات الربنامج املتوازي

و تلعب تبولوجيا شبكة الربط ودرجة قرب املعاجلـات مـن . رغم وجود التبعية فيما بينها و تطلق هذه الصفة أيضا على الـشبكات الـيت . بعضها دورا هاما يف برجمة هذه احلاسبات

تسمح بتغري طريق نقل املعطيات ديناميكيا بني معاجلني ، و يتم هذا التغيري هبدف إنشاء طرق وبالرغم مـن . بط هذه اخلاصة أيضا بالشبكات الديناميكية تجديدة لتراسل املعطيات ، و تر

. الشبكات إال أن خاصية ثبوتية طرق نقل املعلومات تبقى أمهها ية خاصتنوع

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 47: Parallelism

45

الشبكات السكونية 2.2.1

وتتمثل مبخطط بياين غري موجه عقده هي عقد . تتميز الشبكات السكونية بتبولوجيا ثابتة ولكل عقده يف هـذه املخطـط . معاجلة احلاسوب املتوازي وخطوطه هي خطوط االتصال

األخرى و تدل الدرجة على إمكانيـة تبـادل ل بعدد خطوط اتصاهلا مع العقد درجة تتمث .املعطيات بشكل مباشر بني العقدة واألخرى

تمثل الشبكة السكونية بمخطط بياني) : 15-2(الشكل

و تتميز الشبكة . إذا كانت مجيع عقدها من نفس الدرجة Regularتكون الشبكة منتظمة

.قطرها وهو املسافة العظمى بني عقدتني من عقد الشبكة بالسكونية أيضاتقارن الشبكات السكونية فيما بينها بداللة درجتها وقطرهـا ، وتفـضل الـشبكات ذات الدرجة األعلى وذات القطر األصغر فالدرجة العالية تدل على مرونة االتصال بـني العقـد

أما القطر األصغر فيدل على مـسافات املختلفة مما يساهم يف تسهيل برجمة هذه احلاسبات ، أكثـر الـشبكات . صغرية بني العقد املختلفة و يترجم بزمن اتصال أصغر بني املعاجلـات

:السكونية شهرة و استخداما هي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 48: Parallelism

46

الشبكة الخطية والحلقية 2.2.1.1

و تتألف الشبكة اخلطية من عدد من العقد تتصل فيما بينها بشكل خطي ، ويكون لكل عقدتني جماورتني ما عدا العقدة األوىل واألخرية حيث يكون لكل منهما عقدة جماورة عقدة

.وقطر هذه الشبكة يتناسب مع عدد عقدها . وحيدة هذه الشبكة غري منظمة ويلجأ عادة لوصل طرفيها حبيث تصبح شبكة حلقيـة منتظمـة

شبكة الـربط بـسرعة وقطرها يساوي إىل نصف عدد العقد ونظرا للتناظر تتميز 2درجتها مباشرا على هذه الـسرعة انقلها للمعلومات ، وتؤثر خطوط الوصل وعناصر االتصال تأثري

.M bits/sاليت تقاس بعدد اخلانات اليت ميكن نقلها يف الثانية

)16-2(الشكل

ات كما تستخدم يف بعض احلاسبات معاجلات خاصة من أجل إدراة وبرجمة عملية نقل املعطي . إلدارة االتصال i860 حيث يستخدم معاجل Paragonيف عقدة حاسوب

الشبكة المصفوفية و المصفوفية الحلقية 2.2.1.2

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 49: Parallelism

47

تكون هذه الشبكة على شكل مصفوفة لكل عقدة داخلية أربع عقد جماورة ، أمـا العقـد ي األكثر استخداما نظـرا والشبكة املنتظمة املصفوفية احللقية ه . (or 3 2)الطرفية فدرجتها

).17-2(للتناظر بني العقد من ناحية ولسهولة برجمتها من ناحية أخرى انظر الشكل

الشبكة المصفوفية و المصفوفية الحلقية ): 17-2(الشكل

تستخدم هذه الشبكات كثريا يف احلاسبات املتوازية احلالية نظرا ملرونة االتـصال بـني معاجل الترانسبيوتر من أكثر املعاجلات مالءمة هلذا النوع من التبولوجيا نظـرا و يعترب . العقد

.الحتوائه داخليا على أربع قنوات اتصال تتالءم هذه التبولوجيا مع خوارزميات معاجلة الصور الرقمية اليت تعتمد علـى حـساب

تصال بني اجملـاورات اجملاورات وهي أكثر الشبكات استخداما يف هذا اجملال ورغم مرونة اال فإن التراسل بني العقد املتباعدة حيتاج إىل عمليات تسيري والبد من إدارهتا سواء باسـتخدام

.املكتبات اخلاصة أو بربجمتها من قبل املستثمر

الشبكات الشجرية 2.2.1.3

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 50: Parallelism

48

تتنوع أشكال هذه الشبكات تبعا لعدد العقد املتصلة بكل عقدة أم وختتلف درجتـها تتالئم هذه التبولوجيـا مـع الربجمـة املتوازيـة . ) 18-2(وقطرها وفقا لذلك انظر الشكل

ومع الربامج من منط السيد واخلدم أو تلك اليت ) عدد املهمات غري حمدد مسبقا ( الديناميكية مستوى اإلجرائية و مستوى التعليمة مثال و خيـصص : تستثمر التوازي على عدة مستويات

تستخدم هذه التبولوجيـا . ى من مستويات الشجرة ملعاجلة مستوى من التوازي كل مستو .CM-5بالشكل املعقد كما يف حاسوب

الشبكة الشجرية) : 18-2(الشكل

الشبكات المكعبية 2.2.1.4

تتـألف . تتميز هذه الشبكات بطريقة بنائها التصاعدي و بدرجتها اليت تساوي قطرها عقدة جماورة و قطـر n عقدة و يكون لكل عقدة 2n من nبية ذات الدرجة الشبكة املكع

تتألف من عقدتني متـصلتني ١فالشبكة املكعبية من درجة . هذه الشبكة يساوي درجتها ميكـن . )19-2( عقد على شكل مربع ، الشكل ٤ تتألف من ٢والشبكات ذات الدرجة

، حيث ميكـن n-1ء من شبكتني من الدرجة ابتدا (n)بناء الشبكة املكعبية ذات الدرجة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 51: Parallelism

49

من أهم مميزات هـذه . ٢ من شبكتني ذوات الدرجة ٣بناء الشبكة املكعبية ذات الدرجة .التبولوجيا هو قطرها الصغري نسبة إىل عدد عقدها

٢شبكة مكعبية من الدرجة ) : 19-2(الشكل

الشبكات الديناميكية 2.2.2

من عدد من عناصر االتصال اليت تسمح مبرور املعطيات باجتاهات تتألف هذه الشبكات حيدد طريق نقل املعلومات من معاجل ما إىل معاجل آخر عند تنفيذ عملية التراسـل و . خمتلفة

تتكون هذه الـشبكات بـشكل . يؤخذ محل الشبكة بعني االعتبار عند حتديد هذا الطريق تتميز املبدلة بعدد مـن خطـوط . (Router) وموجهات )Switchs(رئيسي من مبدالت

الدخل و عدد مماثل من خطوط اخلرج ، و تسمح بنقل املعلومات من أي خط دخل إىل أي .خط خرج شرط أن يكون اخلطان غري مشغولني بعملية نقل قيد التنفيذ

:أشهر الشبكات الديناميكية املستخدمة يف احلاسبات املتوازية هي

اقل شبكة الن 2.2.2.1

يعترب الناقل عنصر االتصال املشترك و الوحيد بني املعاجلات أو بني املعاجلات من جهـة البد من وجود عـدد مـن املتشاركلتنظيم لو . والذاكرة من جهة أخرى يف هذه الشبكة

تعتمـد . اخلوارزميات اليت متكن من تنفيذ عمليات التراسل املخلتفة بني املعاجلات املتعددة وارزميات مبدأ األفضلية حيث حتدد لكل معاجل أفضلية تعترب عنـد حتقيـق عمليـة هذه اخل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 52: Parallelism

50

حيث يتم تنفيذ عمليات التراسل وفق FIFO(First In First Out)التراسل ، و تعتمد مبدأ .ترتيب طلبها وتوجد خوارزميات أخرى تعتمد مبدأ األفضلية املتغرية

مصفوفة المبدالت 2.2.2.2

و تتميز كل . صفوفة من عدد من املبدالت كل منها ذات مدخلني و خمرجني تتألف هذه امل :)20-2(مبدلة حبالتني كما هو مبني يف الشكل

)20-2(الشكــــل

إىل (1) ومن املدخل (0) إىل املخرج (0)يتم فيها نقل املعلومات من املدخل : (0)احلالة . (1 )املخرج إىل (0) ومن املدخل (0) إىل املخرج (1)ها نقل املعلومات من املدخل يتم في : (1)احلالة

.(1)املخرج يتم استخدام عدد من املبدالت من أجل نقل املعلومات بني معاجلني من الشبكة وحيدد طريق

تنفيذ عملية التراسل وفقا جلاهزية املبدالت وميكن استخدام كل مبدلة من د نقل املعلومات عن ال تؤمن . هذان الطريقان باملداخل واملخارج اتصال خمتلفني شرط أن ال يشترك أجل طريقي

فهي شبكة ممانعة تـؤخر تنفيـذ بعـض . هذه الشبكة الربط بني أي معاجلني يف أي حلظة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 53: Parallelism

51

ومن املمكـن تصميم مصفوفة مبدالت غري ممانعـة . االتصاالت حىت حترر بعض املبدالت ة يمتلك بعض املصفوفات خاص . جدا وكذلك تكلفتها ولكن حجم هذه الشبكة يكون كبريا

قابلية إعادة التشكيل فتقوم الشبكة بتغيري بعض طرق االتصال اليت هي قيد التنفيذ من أجـل يـؤثر عـدد . و طبعا ختفف هذه اخلاصية من تأثري املمانعـة . إنشاء طرق جديدة لالتصال

على زمن تنفيذ عملية التراسل ولذا نسعى عادة املبدالت اليت جتتازها رسالة ما تأثريا مباشرا .إىل اختيار أقصر الطرق

مصفوفة المبدالت) : 21-2(الشكل

الشبكات متعددة الطبقات 2.2.2.3

م بشكل تصاعدي بإجراء عمليات ضـرب قوتتألف هذه الشبكات من عدد من املبدالت وت . على الشبكات

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 54: Parallelism

52

لطبقاتشبكة متعدد ا) : 22-2(الشكل

يوجـد . و تتألف كل شبكة من عدد من الطبقات مع عدد مداخل الشبكة وخمارجهـا .العديد من الطرق لبناء هذه الشبكات وختتلف الشبكات الناجتة خبواص عملية االتصال

. أهم نتائج الدراسات الرياضية حول هذا النوع من الشبكات تلك اليت تتعلـق باملمانعـة n مبدلة وذلك باعتبـار n.log2 (n) أنه لبناء شبكة غري ممانعة حنتاج إىل فيربهن رياضيا

فنحتاج إىل شبكة من ) . معاجل nشبكة لتأمني االتصال بني ( عدد املداخل وعدد املخارج يعتمد املـصممون ).22-2( معاجلات ، انظر الشكل ٨ مبدلة من أجل شبكة تصل بني ٢٤

اص مقبولـة ببنـاء شـبكات ذات عـدد طبقـات وذات خو شبكات أصغر حجما على . لعـدد املعاجلـات وحبيث يكون عدد املداخل وعدد املخارج مساويا log2 (n)يساوي

.تستخدم أيضا بعض اخلوارزميات إلعادة تشكيل طرق االتصال مما خيفف من املمانعة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 55: Parallelism

53

خلوارزميات املتوازيةا تصميم ئمباد:الفصل الثالث

. اآلليـة يف حل املسائل باستخدام احلاسـبات عنصرا هاما وارزميات يعترب تطوير اخل وميكـن ،وخوارزميـات متوازيـة ، وهناك نوعان من اخلوارزميات؛ خوارزميات تسلسلية

أو تسلسل مـن اخلطـوات ( وصف بأهنا لخوارزميات التسلسلية لالتعريف بشكل مبسط Parallel) اخلوارزميات املتوازيةأما ،لسليـاسب تسـحلل مسألة معطاة على ح) األولية

Algorithms) إن تـصميم .سألة معطاة باستخدام عدة معاجلـات ملل ية احل تصف كيف فهي ،علـى أقـل تقـدير ف ،اخلوارزميات املتوازية يتطلب أكثر من جمرد حتديد خطوات احلـل

مـن وعـة أن حيدد جمم ية وعلى مصمم اخلوارزم ،لتزامنللخوارزميات املتوازية بعد إضايف لضروري للحصول على أي التحديد وهذا. بنفس الوقت سويا تنفيذها أن يتم اخلطوات ميكن

ميكن حتديد امليـزات الـيت تتـصف هبـا . من استعمال احلاسب املتوازي زيادة يف األداء :اخلوارزميات املتوازية أو يف بعض منها على النحو اآليت

.ل متزامن بشكى أجزاء العمل الذي ميكن أن يؤدديدحت •

أو (إجرائيـات األجزاء املتزامنة مـن العمـل يف عـدة ) إسناد يأ( توضيع • . تعمل بالتوازي)معاجلات

.طة املرتبطة بالربنامجيتوزيع املعطيات املدخلة واملخرجة واملعطيات الوس •

.إدارة عملية الوصول إىل املعطيات املشتركة بني عدة إجرائيات •

.ملختلفة لتشغيل الربنامج املتوازيمزامنة املعاجلات يف املراحل ا •

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 56: Parallelism

54

مفاهيم أساسية 3.1

•אאאאW هناك خطوتان رئيسيتان مستخدمتان يف تـصميم ،عمليات حـسابية صـغرية عدة تقسيم العملية احلسابية إىل -األوىل: اخلوارزميات املتوازية

وسـوف . ات لكي تنفذ بشكل متواز عدة معاجل يف هذه العمليات املقسمة وضع -والثانيةنعرض الحقا هاتني اخلطوتني املستخدمتني يف تصميم اخلوارزميات املتوازيـة مـن خـالل

إضافة إىل التعريف بعدد ، وعملية استعالم يف قواعد البيانات ، ضرب مصفوفة بشعاع : املثالني .من املفاهيم املستخدمة

•א)Decomposition(:أجزاء أصغر العملية احلسابية إىل هو عملية تفكيك .

•א)Tasks(: أجزاء متثلهي وحدات من العملية احلسابية معرفة بواسطة املربمج واليت املتـزامن التنفيـذ و .واسـطة التقـسيم ب اليت مت احلصول عليهـا العملية احلسابية الرئيسية

)Concurrency() األساسي إلقالل الزمن الالزم للمهام املتعددة هو املفتاح ) أي بنفس الوقت . ليست كلها من نفس احلجم-للمسألة املقسمة-قد تكون املهام و.حلل املسألة بكاملها

•א)Depenency Graph(: الرسم التجريدي الـذي يـستخدم هي .النظام النسيب للتنفيذ/للتعبري عن االعتمادية أو التبعية فيما بني املهام و الترتيب

ضرب مصفوفة بشعاع:(1-3)مثال

، b مـع الـشعاع n×n حبجـم Aباعتبار أننا نريد إجراء عملية الضرب على املصفوفة i الـسطر عن ضرب يكون ناجتا y[i]حاصل عملية الضرب إن . yسينتج لدينا شعاع آخر ف

وكما هو موضـح يف :ولإليضاح فإن. b مع كامل الشعاع Aمن . ميكن أن تعترب كمهمةy[i] قيمة حساب كل فإن عملية(1-3)الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 57: Parallelism

55

املسألة حيث قسمت (4-3)ميكن تقسيم هذه املسألة إىل عدة مهام كما يف الشكل كما . من الناتجn/4حبيث أن كل مهمة تقوم حبساب ، مهام٤إىل

لجزء ا. المصفوفةأسطر هي عدد nحيث ، مهمةn مسألة ضرب مصفوفة بشعاع مقسمة إلى (1-3):شكلال

. موضح باللون الغامق١لمهمةل) مدخالت ومخرجات(الذي تتعامل معه

هي مهام مستقلة وميكن تنفيذها سويا أو (1-3) يف الشكل ددةأن مجيع املهام احمل بالحظ ن حباجـة إىل فيهـا قد تكون بعض املهام يف بعض املسائل ، وبشكل عام . على أي تسلسل

. نهي هذه املهام أعماهلاإن عليها االنتظار إىل أن تبيانات ناجتة عن مهام أخرى ولذا ف

يطلـق عليهـا (أما اخلطوط اليت تصل بني العقد ، كمهام العقدويف خمطط التبعية تعترب فاملهمة اليت تتطابق مع أحد العقد ال ميكن تنفيذها . عتمادية بني املهام فتدل على اال ) أضالع

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 58: Parallelism

56

أي أن اخلط الواصل يكون داخل للمهمـة (تدخل إليها إال حني انتهاء تنفيذ مجيع املهام اليت ).وليس خارجا منها

إجرائية االستعالم من قواعد البيانات(2-3)مثال

يف كل صف و، خاصة بسيارات ة عرض لقاعدة بيانات عالئقي (1-3)يف اجلدول يوجد اإلنتاجوسنة ، IDف رمثل املع ، سجل حيتوي على بيانات عن سيارة حمددة هوهذا اجلدول

year ، واللونcolor ،اخل ..

. قاعدة بيانات لتخزين معلومات عن السيارات :(1-3)جدول ال

:لنفترض أننا نريد إجراء االستعالم التايلMODEL="Civic" AND YEAR="2001" AND (COLOR="Green" OR COLOR="White")

واليت أنتجـت يف Civicع يقوم هذا االستعالم بالبحث عن مجيع السيارات اليت من النو . األخضر أو األبيض:ني اللون أحد وهلا٢٠٠١السنة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 59: Parallelism

57

يتم هذا االستعالم بواسطة ، )Relational Database( البيانات العالئقية يف قواعدنة هلذه املسألة هي إنشاء اجلداول ك الطرق املمىحدإو، إنشاء عدد من اجلداول الوسيطة

:األربعة التالية .Civicعلى مجيع السيارات من نوع جدول حيتوي ⇐ .٢٠٠١جدول حيتوي على مجيع السيارات اليت أنتجت يف عام ⇐ .جدول حيتوي على مجيع السيارات ذات اللون األخضر ⇐ .جدول حيتوي على مجيع السيارات ذات اللون األبيض ⇐

و مث بعد ذلك تتم العملية بواسطة دمج هذه اجلداول عن طريق حساب التقاطعـات أ جـدولني ل سيتم حساب التقاطع ل على وجه التحديد و. بني اجلداول زوجا زوجا االحتادات

وذلك إلنشاء جـدول " ٢٠٠١ عام أنتجتالسيارات اليت "و " Civicالسيارات من نوع " .٢٠٠١ اليت أنتجت عام Civicحيتوي على سيارات وذلـك " اللون األبيض "و " اللون األخضر " احتاد جلدويل إجراءسيتم ، وبنفس األسلوب

ويف النهاية سـيتم . لكي يتم إنشاء جدول جلميع السيارات ذات اللون األخضر أو األبيض مع اجلدول الذي حيتوي على Civic 2001التقاطع للجدول الذي حيتوي على سيارات إجراء

.تم احلصول على نتيجة االستعالميوبذلك ، مجيع السيارات اخلضراء أو البيضاء اللون متثـل اليت استخدمت ملعاجلة االستعالم يف املثال الـسابق أن لحسابات املختلفة لميكن

.(2-3)ل التبعية املوضح يف الشكبواسطة خمطط

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 60: Parallelism

58

. الجداول المختلفة والعالقة بينها في عملية االستعالم:(2-3)لشكال

ـ ، كل عقدة يف الشكل متثل مهمة تتطابق مع جدول وسيط حباجة إىل أن يحـسب ا أمقبـل أن ، على سـبيل املثـال ف. بني املهام )أو التبعية (األسهم اليت بني العقد فتوضح العالقة

جيب أوال أن نقـوم حبـساب Civic 2001نتمكن من حساب اجلدول الذي حيتوي على ."٢٠٠١سيارات "و " Civicسيارات "اجلدولني تخدم وخـصوصا تلـك الـيت تـس ، عدة طرق للحصول على بعض احلسابات يوجد رتيـب فـالطرق املختلفـة لت .تان املنطقي OR و ANDالضرب أو ، اجلمع : ثلم ،املعامالت

، وللداللة علـى ذلـك . أيضا مزايا خمتلفة وذات احلسابات تؤدي إىل خمططات تبعية خمتلفة :باألسلوب اآليت ميكن أن يتم حله (2-3)فاستعالم قاعدة البيانات الوارد يف املثال

. اللون األخضر أو األبيضذاتل حيتوي على السيارات جدوحتديد: أوال

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 61: Parallelism

59

:مـع اجلـدول " األبيض السيارات ذات اللون األخضر أو "تقاطع جلدول إجراء: ثانيا "٢٠٠١أنتجت يف عام سيارات"

."Civicسيارات "تدمج النتائج مع جدول : ثالثا

: خمطط التبعية من خالل هذه اخلطوات(3-3) الشكليوضح

.ية لعملية االستعالمالتبع مخطط :(3-3)شكلال

< <

< <

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 62: Parallelism

60

•אFGranularityEW ة التقـسيم أحجم وعدد املهام يف املسألة اجملـز يطلق على أما التقـسيم .ةناعماحلبوبية ال التقسيم إىل عدد كبري من املهام الصغرية يطلق عليه و. احلبويب

.ةشناحلبوبية اخليطلق عليه فإىل عدد صغري من املهام الكبرية

(1-3)التقسيم ملسألة عملية ضرب مصفوفة بشعاع الواردة يف املثـال ، على سبيل املثال وذلك ألن كل مهمة من املهام الكثرية تقوم بتنفيذ عملية الضرب اناعم تقسيما حبوبيا تعترب لنفس املسألة ةاخلشنبوبية عرض لتقسيم من نوع احل ففيه (4-3)يف الشكل أما . واحد سطرل . من العمل لكامل الشعاع الناتجn/4حبيث تقوم كل مهمة بتنفيذ ، مهام٤ إىل

مدخالت (الجزء الذي تتعامل معه. أربعة مهام مسألة ضرب مصفوفة بشعاع مقسمة إلى :(4-3)شكلال

. موضح باللون الغامق١لمهمةل) ومخرجات

املهام الـيت ميكـن عدد لاحلد األقصى ف. درجة التزامن ب بويباحلالتقسيم يتعلق مفهوم الدرجـة العظمـى " بشكل آين يف برنامج متوازي يف أي وقت معطى يطلق عليه اتنفيذه

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 63: Parallelism

61

عدد املهـام الكلـي أقل من الدرجة القصوى للتزامن تكون ، يف أغلب احلاالت و ".للتزامنالدرجة القصوى للتزامن يف خمطـط ، على سبيل املثال ف. وذلك بسبب العالقة فيما بني املهام

حتـصل ، هذه تبعيةالويف خمططات . 4 هو (3-3) و شكل (2-3) يف الشكل وضح امل بعيةتالاللـون ،السنة،النوع( حساب اجلداول األربعة تمالدرجة القصوى للتزامن يف البداية عند ما ي

.بنفس الوقت) واللون األخضر،األبيض

ـ الشجرية يساوي تبعيةالدرجة التزامن العظمى ملخططات ، وبشكل عام لعـدد ا دائم . يف الشجرةتفرعاتال

متوسـط درجـة "هذا املؤشر هو ، هناك مؤشر هام للداللة على أداء الربامج املتوازية والذي ميكن حسابه بأخذ املتوسط لعدد املهام اليت ميكن تنفيذها تزامنيا خـالل ، "التزامن

جة التـوازي وميكن أن يزداد كل من املعدل واحلد األقصى لدر .كامل مدة تشغيل الربنامج التقسيم ملـسألة ضـرب على سبيل املثال ف). عمنأ( للمهام أصغر التقسيم احلبويب كلما كان

أمـا . صغري ودرجة تزامن عاليـة تقسيم حبويب له (1-3)مصفوفة بشعاع الوارد يف الشكل . ودرجة تزامن منخفضة كبريتقسيم حبويب له (4-3)التقسيم لنفس املسألة يف الشكل

، وبشكل عام . والتقسيم احلبويب ذاته شكل خمطط التبعية التزامن أيضا على تعتمد درجة جتريـدا (5-3)على سبيل املثال يعترب الشكل ف .التزامنليس هناك ضمان لتماثلهما يف درجة

املكتوب بـداخل كـل العددو، على التوايل )(2-3) و (3-3)( يف الشكلني لتبعيةملخططي ا .وب إلكمال املهمة املقابلة هلذه العقدةعقدة ميثل كمية العمل املطل

ويف ، 2.33 هـو (a.5-3)يف الـشكل املوضـح تبعية معدل درجة التزامن ملخطط ال إن .ن يعتمدان نفس التقسيمامع أن كال املخطط، 1.88هو (b.5-3) شكلال

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 64: Parallelism

62

(2-3) و(3-3) للشكلين لتبعيةتجريد لمخططي ا: (5-3)شكلال

معطـى عـن تقسيم حبويب أنه حيدد معدل درجة التزامن ألي التبعية من مزايا خمطط أما العقد ، داخلة إليها بـعقد البداية أضالعسنشري للعقد اليت ليس هلا ، املسار احلرج طريق هو أطـول املسار احلرج ف وعلى هذا .عقد النهاية ـ فسنشري هلا ب أضالع خيرج منها اليت ال

الواقعة اجملموع لكمية العمل للعقد وأما . البدايةخط يصل بني أي زوجني من عقد النهاية و كمية العمل للمهمة يحبيث أن كمية العقدة ه ، ار احلرج ملسابطول على املسار احلرج يعرف

مبعـدل درجـة كمية العمل للمسار احلرج فتعـرف إمجايلأما نسبة . املطابقة هلذه العقدة طول ، فعلى سبيل املثال . أعلىدرجة تزامن يؤدي إىل األقصر رجاحلسار املولذلك ف . التزامن

(b.5-3)أمـا للـشكل ، 27هـو (a.5-3)التبعية املوضح يف الشكل املسار احلرج ملخطط ونظرا ألن جمموع كمية العمل الالزمة حلل املسألة باستخدام أسلويب التقسيم ، 34فالطول هو

علـى 1.88 و 2.33عية هـو التب يل فإن معدل درجة التزامن ملخططي على التوا 64 و 63هو .التوايل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 65: Parallelism

63

باستخدام سألة الالزم حلل امل الزمن على الرغم من أنه قد يظهر للبعض بأنه ميكن إنقاص ففي العادة . ال تصادف كثريا يف األحوال العملية إال أن هذه احلالة ، تقسيم ذو حبوبية عالية

N2 فمثال هنـاك ، مح هبا املسألة الناعم اليت تس التقسيم احلبويب يكون هناك حد أعلى لكمية (3.1)عملية ضرب ومثلها للجمع يف مسألة ضرب مصفوفة بشعاع اليت وردت يف املثـال

منا أكثـر أنـواع ااستخد حىت ولو مهمة O(N2)ميكن تقسيمها ألكثر من فهذه املسألة ال .التقسيم نعومة يف التحبيب

•אFTask-InteractionEW آخر هام يقلل من قدرتنا عمليعامل يعترب من جراء استعمال ) لتنفيذ التسلسلي إىل املتوازي زمن ا نسبة (حتقيق التسريع غري احملدود على فاملهام املقـسمة . اليت تعمل على معاجلات خمتلفة التفاعل بني املهام هذا العامل هو . التوازي

والتبعية يف خمطط التبعيـة . وسيطةيف املسألة تتشارك فيما بينها مدخالت وخمرجات وبيانات فعلى سبيل املثال . تكون مدخالت ملهام أخرى لحدى املهام إ خمرجات من حقيقة غالباتنتج

تتشارك املهام فيما بينها بالبيانات الوسيطة؛ فاجلدول املنشأ ، يف مثال استعالم قاعدة البيانات واعتمادا على التعريـف . تل مهمة أخرى كمدخال ببواسطة إحدى املهام يستخدم من ق

هام اليت تظهر مـستقلة يف للمهام و منوذج الربجمة املتوازية فقد حيصل هناك تفاعل فيما بني امل وعلى الرغم من أن مجيـع ، يف التقسيم ملسألة ضرب مصفوفة بشعاع .. فمثال. التبعيةخمطط

. b كامل الشعاع إىل فإن مجيع هذه املهام تتطلب الوصول ، املهام مستقلة عن بعضها البعض رسل وتستقبل الرسائل مـن فعلى املهام أن ت ، bونظرا ألن هناك نسخة واحدة من الشعاع

. يف منوذج الذاكرة املشتركةbاجلميع لكي تصل إىل الشعاع

واملقابلةجرائياتاإل 3.2 و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 66: Parallelism

64

أمـا . تقـوم بتنفيـذ املهـام ) Logical( إن اإلجرائيات هي أدوات حسابية منطقية . واليت تقوم بتنفيذ العمليات احلسابية فيزيائيـا ) Hardware(املعاجلات فهي وحدات عتادية

، ويف الغالب فإننا عندما نذكر مصطلح اإلجرائيات فهناك تطابق بينه وبني مصطلح املعاجلات . الواحدوعموما فإنه ميكن توضيع أكثر من إجرائية على املعاجل

ن التنفيذ التسلسلي جيب على الربنـامج املتـوازي أن لكي حنصل على تسريع أعلى م اآللية املستخدمة لتوزيـع تسمى و، يكون لديه عدة إجرائيات تعاجل عدة مهام بنفس الوقت

. )mapping (باملقابلة إجرائيات املهام لتنفيذها على عدة

ميكن أن ختصص أربع إجرائيـات ملهمـة املصفوفات يف ضرب (4-3)ثالامليف : فمثال ).سيذكر املثال الحقا ( c من جزئيهحساب مصفوفة

ـ بني التبعية و التفاعل يلعب خمططي ة اجليـد املقابلـة يف اختيـار م دورا هامـا اامله التـوازي وذلـك استعمالسعى إىل زيادة تاجليدة جيب أن املقابلة و .للخوارزميات املتوازية

ـ تقليصضا البد أن تسعى إىل أي، املهام املستقلة على إجرائيات خمتلفة مبقابلة الكلـي زمن ال جاهزة لتنفيذ املهام على املسار احلرج حاملا تكون املهام قابلـة اإلجرائياتوذلك بضمان أن

اإلجرائيـات التفاعالت بني من قالل اإل أن تسعى إىل ة اجليد املقابلة يف وجيب أيضا ، للتنفيذ .اإلجرائية على نفس تفاعل املشترك سويا املهام اليت هلا درجة عالية من المبقابلةوذلك

بـني ملخطط التقسيم و التفاعل ة فعال ملقابلة عرض (6-3) يف الشكل على سبيل املثال احلد األعلـى ويالحظ يف هذه احلالة أن ، إىل أربع إجرائيات (5-3)م الواردة يف الشكل اامله

، مهام أن عدد املهام هو سبع ألربع إجرائيات ميكن أن يستخدم بشكل مفيد على الرغم من أما املهام الثالث األخرية فيمكن أن . وهذا يعود إىل أن درجة التزامن القصوى هي أربعة فقط

.يتم مقابلتها

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 67: Parallelism

65

ألن ذلك مينـع أن اإلجرائية على نفس بضلع املهام اليت ترتبط مقابلةولكن من األفضل إذا (b.6-3)يف الشكل : فمثال. ياتاإلجرائحيدث تفاعل بني املهام بسبب حدوث تفاعل بني

اإلجرائية أن تتفاعال مع P1 و P0 اإلجرائيتان فإن ذلك يتطلب من P2 مع 5 املهمة قابلةقمنا مب P2 . اإلجرائيتان فإنه يوجد تفاعل وحيد بني ة احلالياملقابلةويف P0 و P1.

.Pئيات إجرا إلى أربعة (5-3) لمخطط المهام في شكلالمقابلة (6-3)لشكال

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 68: Parallelism

66

تقنيات التقسيم 3.3

كما ذكر قبل ذلك فإن إحدى اخلطوات األساسية اليت حنتاجها من أجل حل املـسائل العمليات احلسابية لتأديتها على جمموعة مهام بشكل )Decomposition( تقسيمبالتوازي هي

بعـض طـرق بدراسة وسنقوم يف هذه الفقرة . متزامن كما هو حمدد بواسطة خمطط التبعية مع العلم بأن هذه األساليب ليست شاملة . التقسيمات الشائعة من أجل احلصول على التزامن

ليس هناك ضمان دائم بأنـه ذكور وكذلك فإن أي أسلوب تقسيم م ، تقنيات التقسيم كللفـإن ، وعلى الرغم من وجود بعض جوانب القـصور .خوارزمية متوازية سيعطي أفضل

، جيدة للعديد من املسائل ةورة يف هذا الفصل غالبا ما تكون نقطة بداي تقنيات التقسيم املذك وللحصول على تقسيمات فعالة لعدد كبري من املسائل فإنه ميكن استخدام أسلوب تقـسيم

.واحد أو املزج بني أكثر من أسلوب : مت تصنيف تقنيات التقسيم هذه إىل

.(Recursive Decomposition)التقسيم العودي • .(Data Decomposition)تقسيم البيانات • .(Exploratory Decomposition) التقسيم االستكشايف • .(Speculative Decomposition) التقسيم التخميين •

إن أسلويب التقسيم العودي وتقسيم البيانات كالمها ذو غرض عام؛ وذلك ألنه ميكـن التقسيم التخميين و االستكشايف فكالمها أما أسلويب . استخدامهما يف حل العديد من املسائل

. وميكن تطبيقهما على أنواع معينة من املسائل، أكثر خصوصيةيستخدم ألغراض

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 69: Parallelism

67

3.3.1 @ðč†ìflÈÛa@áîÔnÛa (Recursive Decomposition)

التقسيم العودي هو وسيلة لتحقيق التزامن يف املسائل اليت ميكـن حلـها باسـتخدام وىف هذا األسلوب فإن املـسألة تحـل ،)divide-and-conquer("تسد-فرق"استراتيجية

حل وكل واحدة من هذه املسائل الفرعية ت ،بتقسيمها أوال إىل جمموعة مسائل فرعية مستقلة ”دتـس -فرق"واستراتيجية . أيضا بتكرار تقسيمها إىل مسائل فرعية مث تتبع بنتائجها جمتمعة

.نفس الوقتوذلك ألنه ميكن حل املسائل الفرعية املختلفة بتؤدي إىل تزامن طبيعي

)Quicksort (الفرز السريع : (3-3)مثال

عنصر باستخدام خوارزميـة n واملكونة من Aالسلسلة ) ترتيب(بفرض أننا نريد فرز تبـدأ هـذه ). فرق تـسد (الفرز السريع شائعة االستخدام واليت تعد خوارزمية من النمط

إىل سلـسلتني Aمث بعد ذلك يتم تقـسيم السلـسلة ، Xاخلوارزمية باختيار عنصر حموري أو أكرب من A1وكل عناصر X أصغر من A0 حبيث تكون مجيع عناصر A1 و A0فرعيتني وكل من السلسلتني . تشكل خطوة التجزيء هذه خطوة التقسيم يف اخلوارزمية . Xتساوى

يتم فرزمها بواسطة االستدعاء العـودي خلوارزميـة الفـرز الـسريع A1 و A0الفرعيتني Quicksort .وكل استدعاء من هذه االستدعاءات العودية يؤدي إىل تقسيم إضايف للسالسل. الحظ أن االسـتدعاء العـودي ال وي. عدد 12 هذه املسألة مع فرز )7-3( الشكل يوضح

.يتوقف إال عندما حتتوي كل سلسلة فرعية على عنصر وحيد فقط

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 70: Parallelism

68

. رقم١٢التبعية للفرز السريع والقائم على التقسيم العودي لتقسيم متسلسلة من مخطط :(7-3)الشكل

وعلى هـذا . م بتقسيم سلسلة فرعية معطاة قد عرفنا املهمة بأهنا القيا (7-3)يف الشكل

ففي البدايـة هنـاك سلـسلة . يوضح أيضا خمطط املهمة اخلاص باملسألة (7-3)فان الشكل وعند اكتمال مهمـة ، وميكننا أن نستخدم عملية واحدة لتقسيمها ). جذر الشجرة ( واحدة

مـع العقـدتني يف متوافقتني A1 و A0(اجلذر فإنه ينتج عنها اثنتني من السالسل الفرعية وبنفس الطريقة يـستمر ، وكل منهما ميكن أن يقسم بالتوازي ) املستوى األول من الشجرة

.التزامن يف الزيادة كلما نزلنا إىل أسفل الشجرة

يف بعض األحيان ميكن القيام بإعادة هيكلة العملية احلسابية وذلك جلعلها قابلة للتقسيم فعلـى ). تسد-فرق(ستخدمة للمسألة ليست من النمط العودي حىت لو كانت اخلوارزمية امل

n مكونـة مـن Aسبيل املثال بفرض أننا نريد إجياد العنصر األصغر يف سلسلة غري مرتبـة ويف كـل ، Aتقوم اخلوارزمية التسلسلية حلل هذه املسألة بالتدقيق يف كل السلسلة . عنصر

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 71: Parallelism

69

. 1-3ا هو موضح يف اخلوارزميـة كم، خطوة تقوم بتسجيل أصغر عنصر موجود حىت اآلن .ومن السهل ادارك أن هذه اخلوارزمية ليست تزامنية

.n بطول Aبرنامج تسلسلي إليجاد العدد األصغر في مصفوفة أعداد : 1-3خوارزميةال

1. procedure SERIAL_MIN (A, n) 2. begin 3. min = A[0]; 4. for i := 1 to n - 1 do 5. if (A[i] < min) min := A[i]; 6. endfor; 7. return min; 8. end SERIAL_MIN

فإنه ميكـن لنـا ، "سدت-فرق"حني نعيد هيكلة هذه اخلوارزمية لكي جنعلها من النمط .استخدام التقسيم العودي كي جنعل منها خوارزمية متزامنة

وهي من أجل إجياد العنـصر األصـغر يف " دتس-فرق" هي من النمط 2-3اخلوارزمية إىل سلسلتني فرعيتني هلمـا احلجـم Aوىف هذه اخلوارزمية نقوم بتقسيم السلسلة ، مصفوفة

)n/2( ، و من مث نقوم بإجياد العنصر األصغر لكل واحدة من السلسلتني وذلـك باسـتخدام. ر يف هذين السلـسلتني والعنصر األصغر الكلى يوجد بانتقاء أصغر عنص . االستدعاء العودي

و اآلن و بعـد أن . يتوقف االستدعاء العودي فقط عندما يتبقى عنصر واحد يف كل سلسلة د عتمأعدنا هيكلة اخلوارزمية التسلسلية هبذا األسلوب فإنه يكون من السهل رسم املخطط امل

.على املهمة هلذه املسألة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 72: Parallelism

70

آل عقدة في الشجرة تمثل مهمة ]. 4,9,1,7,8,11,2,12[ غر للسلسلة مخطط التبعية إليجاد العدد األص : (8-3)لشكال

.إليجاد العدد األصغر من عددين

.ا عددn من المكونة A األصغر من بين عناصربرنامج عودي إليجاد العدد : 2-3الخوارزمية 1. procedure RECURSIVE_MIN (A, n) 2. begin 3. if (n = 1) then 4. min := A[0]; 5. else 6. lmin := RECURSIVE_MIN (A, n/2); 7. rmin := RECURSIVE_MIN (&(A[n/2]), n - n/2); 8. if (lmin < rmin) then 9. min := lmin; 10. else 11. min := rmin; 12. endelse; 13. endelse; 14. return min; 15. end RECURSIVE_MIN

(Data Decomposition) تقسيم البيانات 3.3.2 التـزامن يف لحـصول علـى يـستخدم ل ا وشـائع اال فع اتقسيم البيانات أسلوب يعترب

فالتقـسيم ، ويف هـذا األسـلوب . اخلوارزميات اليت تعمل على تراكيب البيانات الضخمة

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 73: Parallelism

71

عليها ي البيانات اليت جتر زيء يتم فيها جت اخلطوة األوىل : ة يتم يف خطوتني للعمليات احلسابي يتم استخدام البيانات اجملزئة إلحداث تقسيم للعمليـة ة الثانية طواخلويف ، العمليات احلسابية نات املختلفة عادة مـا اوالعمليات اليت تتم هبا هذه املهام على أجزاء البي . احلسابية إىل مهام

.أو يتم اختيارها من بني جمموعة صغرية من العمليات، اهبةتكون متشوبـشكل . بعد قليل ميكن أن يتم تقسيم البيانات بعدة طرق خمتلفة كما سيأيت تفصيله وحتديد أيها تعطـي لتقسيم البيانات ومن مث ينبغي االستطالع وتقييم كل الطرق املمكنة عام

.تقسيم حسايب طبيعي ومناسب

ت املخرجةالبيانا يءجتز• ميكن يف العديد من احلسابات أن يتم حساب كل عنصر من املخرجات علـى حـدة

البيانات املخرجة يتـسبب زيءجتويف مثل هذه العمليات احلسابية فإن . كوظيفة للمدخالت من املخرجات زءحبيث يتم إسناد عمل حساب جل ، للمسألة إىل مهام يف حدوث التقسيم آليا

سنعرض لعملية ضرب مصفوفة إليضاح التقسيم املعتمد على (4-3)املثالويف . إىل كل مهمة .البيانات املخرجة زيءجت

المصفوفات المربعة ضرب (4-3)المثال

من احلجـم وكالمها )B و A(صفوفتنياملعلى ضرب عملية ال بفرض أننا نريد إجراء n×n ضع الناتج يف املصفوفة قوم بو وسنC .إىل املسألةيم هذه لتقس توضيح (9-3) الشكل يف

حتدد )جزئيةأو مصفوفات (مركبة من أربع كتل مصفوفة حيث مت اعتبار أن كل . أربع مهام وبذلك سينتج لدينا أربع كتل (هذه الكتل بواسطة تقسيم كل بعد من املصفوفة إىل نصفني

× n/2 كلها تقريبا من احلجـم ( C واملصفوفات اجلزئية األربع للمصفوفة. )داخل املصفوفة

n/2 ( املوافـق واصـل الـضرب حل كمجمـوع باستخدام أربع مهام لة ستقيتم حساهبا م .B و A يف اجلزئية املوجودةللمصفوفات

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 74: Parallelism

72

.٢×٢ات جزئية بحجم ـوفـ إلى مصف والمخرجات مدخالتـات الـ لمصفوفجزيءالت )a( :)9-3(الشكل )b( لمصفوفات الوارد في ا جزيءعتمادا على ت إأربع مهاممسألة ضرب المصفوفات إلى لتقسيم ال(a).

ـ جتزيء قائم على (9-3)التقسيم املوضح يف الشكل إن إىل أربـع C رجمصفوفة اخل. اجلزئيةتقوم حبساب واحدة من املصفوفات األربع هام امل وكل واحدة من جزئيةفوفات مص

وبالرغم من . ة إىل مهام وجيب مالحظة أن تقسيم البيانات خيتلف عن تقسيم العملية احلسابي للبيانات ال عطى م ا فإن تقسيم ،أن كالمها متصل باآلخر وأن األول يف الغالب مساعد للثاين

يوضح تقسيمني آخـرين (10-3)على سبيل املثال الشكل . مهامإىل ا فريد اينتج عنه تقسيم فس تقـسيم وهذان التقسيمان ممـاثالن لـن ، كل واحد إىل مثاين مهام ، لضرب املصفوفات

.(a.9-3)البيانات املوجود يف الشكل السابق

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 75: Parallelism

73

.ن لتقسيم عملية ضرب المصفوفة إلى ثمانية مهام مثاال:(10-3)الشكل

سـنعرض و، آخر لتوضيح فكرة التقسيمات املعتمدة على جتزيء البيانات سنعطي مثاال يف قاعـدة ) itemset ( عدة عناصر حتدث سويا سألة حساب التكرار ضمن جمموعة من فيه م

.واليت ميكن تقسيمها باالعتماد على التجزيء للبيانات املخرجة، بيانات إجرائية حساب تكرارات المكونات في التعامل مع قاعدة البيانات:(5-3)المثال

يف ) itemsets(باعتبار أننا نريد حساب التكرار جملموعة من العناصر اليت حتدث سويا

لدينا يف هذه املسألة اجملموعتان . Transation Database أو إجرائية قاعدة بيانات تفاعليةT و I حبيث أن اجملموعة T حتتوي على nإجرائية )Transation( أما اجملموعة I فتحتـوي

حتتوي على عدد )itemset(كل إجرائية و كل جمموعة عناصر . itemset عدد من mعلى قاعـدة Tقد تكون ، ل املثال بيعلى س . العناصر قليل من العناصر من بني جمموعة ممكنة من

إذا رغب املستودع أن يعرف عدد الزبائن الذين اشتروا كـل ف .بيانات متجر ملبيعات الزبائن يف مجيع Iفإنه جيب أن حيسب عدد املرات اليت ظهرت فيها عناصر ، جمموعة العناصر احملددة

.ة العناصر جزء منها اليت جمموعاإلجرائياتمبعىن أنه عدد ، اإلجرائيات

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 76: Parallelism

74

قاعدة البيانات املوضحة يف و. يوضح مثال هلذا النوع من احلسابات (a.11-3)الشكل وحنن نرغب حبساب التكرار لثمانيـة جمموعـات ، إجرائيات ١٠ تتألف من (11-3)الشكلالتكرارات الفعلية هلذه اجملموعـات يف قاعـدة . املوضحة يف العمود الثاين Itemsetعناصر

تظهـر ثـالث } D,E{جمموعة العناصر : وللتمثيل. انات معروضة يف العمود الثالث البي الرابعة ومـرة ثالثـة يظهـر يف اإلجرائيةومرة أخرى يف ، مرة يف اإلجرائية الثانية ، مرات

. التاسعةاإلجرائية

حساب تكرار المكونات في تعامالت قاعدة البيانات:(11-3)الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 77: Parallelism

75

أن عملية حساب التكرار جملموعة العناصر ميكن أن تقـسم كيف (b.11-3) يوضح الشكل ومن مث حتسب كـل مهمـة اجلـزء جزأينإىل مهمتني وذلك بتقسيم البيانات املخرجة إىل

ولكـن ، مدخالت جمموعة العناصر أيضا مت تقـسيمها الحظ أن . اخلاص هبا من التكرارات همة حبساب جزء من التكـرارات هو أن تقوم كل م (b.11-3)الداعي للتقسيم يف الشكل

.الذي أسند إليها بشكل مستقل البيانات املدخلة زيءجت•

ـ خمرج ميكن أن كل إن التجزيء للبيانات املخرجة ميكن أن يتم فقط إذا كان سب حيويف العديد من اخلوارزميات ليس مـن املمكـن القيـام . كوظيفة للبيانات املدخلة طبيعياعند حماولة إجياد العدد األصغر أو األكرب جملموعـة مـن : فمثال. رجة البيانات املخ جزيءبت

ويف خوارزمية الفرز فالعناصر الفرديـة . فإن املخرجات هي قيمة فردية غري معلومة ، األعدادويف مثل هذه احلاالت قد يكون من املمكـن . ميكن معاملتها وهي منعزلة من املخرجات ال

يـتم . ة ومن مث استخدام هذه األقسام للحصول على التزامن البيانات املدخل جزيءبتالقيام وتنفذ هذه املهمة قدر املـستطاع باسـتخدام ، إنشاء مهمة لكل جزء من بيانات املدخالت

يـؤدي إىل احلـل احلل للمهام يف جتزيء البيانات املدخلة رمبا ال نأالحظ . البيانات احمللية . م إجراء حسابات إضافية لتجميع النواتج اجلزئية ويف مثل هذه احلاالت يلز ، النهائي مباشرة

إجرائيـة P عدد باستخدام Nفعلى سبيل املثال عند حماولة إجياد جمموع سلسلة مكونة من )N>P( ، املدخالت إىل زيءجتفإنه ميكنP بعد ذلك تقوم . سلسلة فرعية بأحجام متساوية

النهاية ميكن أن حنصل علـى ويف. كل مهمة حبساب اجملموع لواحدة من السالسل الفرعية . سلسلة فرعيةPـالناتج النهائي وذلك بتجميع نواتج ال

يف مسألة حساب التكرار جملموعة من العناصر يف قاعدة بيانـات إجرائيـة املوضـحة يف

يوضح الشكل . للمدخالت جزيء ميكن أيضا أن يتم تقسيمها باالعتماد على الت (5-3)املثال و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 78: Parallelism

76

(3-12.a) تقوم كل مهمة مـن املهمـتني حبـساب التكـرارات . يانات املدخلة الب زيء جتاجملموعتان الناجتتان عن املهمتني متثالن نواتج وسيطة وبـضم . للمجموعة الفرعية اخلاصة هبا

. سينتج لدينا الناتج النهائيهذه النواتج سويا

البيانات بعض التقسيمات لحساب تكرار المكونات في تعامالت قاعدة (12-3):الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 79: Parallelism

77

البيانات املخرجة واملدخلة معازيءجت• املدخالت زيءجت املخرجات أن يتم زيءقد يكون ممكنا يف بعض احلاالت اليت تقبل جت

مـسألة حـساب (b.12-3)يف الـشكل ، فعلى سبيل املثال . أيضا مما يؤدي إىل تزامن أكثر إىل جـزأين وكـذلك مقـسم Transactionويظهر فيـه أن . التكرار يف قاعدة بيانات

frequencies وبعد . ويسند لكل مهمة أحد االحتماالت األربع ، قد مت تقسيمها إىل جزأينويف النهاية يتم مجع خمرجـات ، ذلك تقوم كل مهمة حبساب اجلزء اخلاص هبا من التكرارات

.4 مع املهمة 2ويتم أيضا مجع املهمة ، 3املهمة مع خمرجات 1املهمة

3.3.3 @ÔnÛaÀb“Ønüa@áî@(Exploratory Decomposition)@ @

ا مـع ي اليت تتوافق حساباهتا ضـمن لغرض تقسيم املسائليستخدم التقسيم االستكشايف وىف التقسيم االستكشايف نقوم بتقسيم مساحة البحث إىل أجزاء . البحث عن فضاء للحلول

وتعتـرب . اد احلل املطلوب ويتم البحث يف كل األجزاء بشكل متزامن إىل أن يتم إجي ، صغرية .كمثال للتقسيم االستكشايف)Puzzle-15" ( املربعأحجية"مسألة

مسألة أحجية المربع:(6-3)مثال ال باإلضافة إىل مساحة فارغة تكفي 15 إىل 1 بالطة مرقمة من 15تتكون هذه املسألة من

وميكـن . 4×4 وقد مت وضع هذه البالط على شكل شبكة مربعـة أبعادهـا ، لبالطة واحدة وهبذا سينتج فراغ يف املكان األصـلي ، حتريك بالطة ناحية املوضع الفارغ من املوضع اجملاور

وبناءا على ترتيب الشبكة فإنه ميكن أن يكون هناك حىت أربع حركات . للبالطة اليت حركت . مسبقاوالترتيب األول واألخري للبالط يكون حمدد . ممكنة لألعلى واألسفل واليمني واليسار

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 80: Parallelism

78

واهلدف هو حتديد أي تتابع أو أقصر تتابع للحركات يؤدي إىل التحول من الترتيـب األويل .إىل الترتيب النهائي

منوذج للترتيب األول والترتيب النهائي وتتابع احلركـات مـن (13-3) الشكل يوضح .الترتيب األول إىل الترتيب النهائي

ائي ) a(وضح الترتيب األول ت المربع مسألة أحجية : (13-3)الشكل ات من ) d(والترتيب النه ابع الحرآ وتت .الترتيب األول وحتى الترتيب النهائي

فبدءا مـن الترتيـب . باستخدام تقنيات شجرة البحث املربع وميكن حل مسألة أحجية

أو 3 أو 2رمبا يكون لدى الترتيب و. األول تكون مجيع الترتيبات املتفرعة املمكنة قد أنتجت ومهمة إجياد مسار من . كل واحد منها حيتل احليز الفارغ اجملاور له ، ترتيبات وريثة أخرى 4

الترتيب األويل إىل األخري تتحول اآلن إىل البحث عن مسار من واحد من هـذه الترتيبـات ونظرا ألن واحد من هذه الترتيبات اجلديدة الناشئة جيب . اجلديدة الناشئة إىل الترتيب النهائي

.فإننا نكون قد حققنا تقدما ناحية إجياد احلـل ، واحدة من احلل ةأن يكون على بعد حتريك وكل . ومساحة الترتيب الناجتة عن شجرة البحث ميكن أن يشار إليها كرسم حلالة املساحة

صل بني يمن الرسم ) اخلطوط الواصلة بني الترتيبات (ضلعوكل عقدة يف الرسم تعترب ترتيب . فيمكن الوصول حبركة واحدة للبالطةالترتيبات

:إحدى الطرق حلل هذه املسألة بالتوازي هي كما يلي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 81: Parallelism

79

عمل مستويات قليلة من الترتيبات بشكل تسلسلي بدءا من الترتيب األول حىت يكون : أوال .لدى شجرة البحث عدد كاف من العقد

. حىت تصل أحد املهام إىل احلل نبدأ بإسناد كل عقدة ملهمة وذلك لعمل استطالع آخر :ثانيا .ومبجرد وصول أحد املهام املتزامنة إىل احلل فإنه ميكن أن خترب البقية إليقاف البحث

. إىل احلل٤ يوضح تقسيم إىل أربعة مهام والذي تتوصل فيه املهمة (14-3)الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 82: Parallelism

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

80

كللشا

(3-1

4) :

بعمر اليةحج أألةمسل لمثا

ن عتج تنتي الاعضألوا

Page 83: Parallelism

81

ن النظر إىل ميك( الحظ أن التقسيم االستكشايف قد يبدو وكأنه مشابه لتقسيم البيانات ؛ولكن التقسيمني خمتلفني يف اجلانب التايل ) مساحة البحث على أهنا البيانات اليت مت تقسيمها

يف تقسيم البيانات يتم تنفيذ املهام بتمامها فكل مهمة تؤدي حسابات مفيدة هبـدف حـل حاملـا أما يف التقسيم االستكشايف فيمكن إيقاف تنفيذ املهمة ولو مل تكتمل وذلك . املسألة

للتركيـب ة فان أقسام مساحة البحث املـستخدم اولذ. تتوصل أحد املهام إىل احلل النهائي ومن اجلدير ذكره . ةليسلسية الت ماملتوازي ميكن أن تكون خمتلفة عن اليت استخدمت اخلوارز

، يةأن العمل املنفذ باستخدام الصيغة املتوازية قد يكون أقل أو أكثر منه يف اخلوارزمية التسلسل مساحة البحث اليت مت تقسيمها إىل أربعة مهام متزامنة كمـا ةالحظميكن مفعلى سبيل املثال

فإذا كان احلل موجودا يف بداية مساحة البحث متوافـق مـع . (15-3)هو موضح بالشكل أمـا يف . فإنه سيتم العثور عليه مباشرة يف الصيغة املتوازيـة ) (a.15-3)الشكل ( 3املهمة ية التسلسلية فسيتم العثور على احلل بعد تنفيذ عمل متكافئ مع البحث يف املساحة اخلوارزم

ومن ناحية أخرى إذا كان احلل موجودا بالقرب من هنايـة مـساحة . 2 و1الكلية للمهام فسوف يقوم التركيب املتوازي بعمل أربعة ) (b.15-3)الشكل ( 1 مع املهمة قالبحث املتواف

. إىل زيادة السرعةي ولن يؤديةسلسلية التمقوم به اخلوارزتأضعاف العمل الذي

. توضيح للسرعة الغير منتظمة الناتجة عن التقسيم االستكشافي:(15-3)الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 84: Parallelism

82

(Speculative Decomposition) التقسيم التخميني 3.3.4

رعـات يستخدم التقسيم التخميين يف الربامج اليت قد تأخذ تفرع واحد من بني عدة تف أثناء تنفيـذ أحـد إنه ف، ويف هذه احلالة . حسابية اعتمادا على نتائج لعمليات حسابية سابقة

فيمكن ملهام أخرى أن تبدأ ، يستعمل يف عملية حسابية الحقة ناتجاملهام لعملية حسابية هلا ) أو اختبـار (يتشابه هذا السيناريو مع عملية تقييم . احلساب للمرحلة القادمة بشكل متزامن

بشكل متزامن وذلك قبـل أن C يف لغة switchواحد أو أكثر من التفرعات اخلاصة بعبارة ويف أثناء تنفيذ أحد املهام للعملية احلسابية اليت ستحل . جاهزا switchيكون الدخل لعبارة

switch فمهام أخرى ميكن أن تلتقط التفرعات املتعددة لعبارة switch وعنـد . بـالتوازي إمهـال سيتم استخدام التفرع الصحيح بينما يتم switchن حساب الدخل لعبارة االنتهاء م

الالزم لتقييم زمن التشغيل املتوازي أقل منه يف التسلسلي مبقدار ال زمنإن . التفرعات األخرى ميكـن االسـتفادة منـه ألداء الزمنالشرط الذي تعتمد عليه املهمة القادمة بسبب أن هذا

switchوعلى أي حال فإن صيغة التوازي لعبارة . لة التالية بالتوازي حسابات مفيدة للمرح ومن أجل إقالل هذا اهلدر يف احلساب فإنه ميكن اسـتعمال . تؤدي لبعض اهلدر يف احلساب

صيغة معدلة قليال من التقسيم التخميين وخصوصا يف األوضاع اليت يكون فيها أحد النتـائج بالتوازي األكثر احتماال ويف هذه احلالة سيتم أخذ التفرع . من النتائج األخرى احتماالأكثر

عن املتوقع فإن العملية احلـسابية ويف حال كانت النتائج خمتلفة . ةالسابق مع العملية احلسابية .ترتد للوراء ويتم اختيار التفرع الصحيح

كان هنالك إذا كون كبريا التسريع الذي ميكن أن ينتج عن التقسيم التخميين ميكن أن ي و حماكاة احلـدث : تخميين نافعا وكمثال لتطبيق يكون فيه التقسيم ال . مراحل ختمينية متعددة

.ذه املسألةهلو سنعطي حملة مبسطة ، املتقطع

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 85: Parallelism

83

المتقطع توازي محاآاة الحدث :(7-3)مثالال

حبيث متثل العقـد يف هـذه ، موجه بيانباعتبار أن لدينا حماكاة لنظام ممثل بشبكة أو الشبكة عناصر ، وكل عنصر له عازل مدخالت للوظائف ، واحلالة األولية لكل عنـصر أو عقده تكون عاطلة ، كل عنصر عاطل يقوم بأخذ الوظائف من طابور املدخالت ، فإذا كان هنالك وظيفة فإنه يعاجلها بكمية حمددة من الوقت ، ومن مث يضعها يف عازل الدخل للعنصر

قد ينتظر العنصر بعض الوقت إذا كان عازل املدخالت ألحد ، ه اخلارج املرتبط معه من طرف جريانه غري فارغ ويكون االنتظار حىت يقوم اجلار بالتقاط الوظيفة ليترك مساحة فارغـة يف

خمرجات العنصر والوقـت الـالزم . هنالك عدد حمدد من أنواع وظائف املدخالت .العازل . دخالت ملعاجلة الوظيفة هو العمل لوظيفة امل

حماكاة عمل الشبكة لسلسلة معطاة من ا لوظائف الداخلة وحساب إمجايل الوقـت : املسألة بكة مبسطة حلـل مـسألة ش (16-3)الشكل يوضح .واملظاهر األخرى احملتملة لسلوك النظام

.املتقطعاحلدث

.المتقطعشبكة مبسطة لمحاآاة الحدث :(16-3)الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 86: Parallelism

84

يبدوا وكأهنـا (7-3) الشبكة املوصوفة يف املثال ىمدخل الوظائف عل حماكاة تتابع سألة ومهـام ملتعريف الومع هذا فيمكننا . متتابعة ألن املدخل لنفس املكون هو املخرج لألخر أساسا وكل منها ميثل مدخالت عديدة ممكنـة يف ،حاكاة اجلزء الفرعي من الشبكة مب تبدأ مينيةخت

نتيجة لتكملة مهمة اختيار من ( دخل الفعلي ملرحلة ما متوفر وعندما يصبح امل . هذه املرحلة خمنيعندئذ يتم إهناء العمل املطلوب حملاكاة هذا املـدخل إذا كـان الـت ) ةاملرحلة السابق

.غري صحيح خمنيالت حماكاة هذه املرحلة مع املدخل األصح إذا كان ء أو يعاد بد,صحيحا

:االستكشايف يف النقاط التاليةخيتلف عن التقسيم التخميين والتقسيم مهام متوازيـة غـري عدة يكون مدخل الفرع الذي يؤدى إىل التخميين يف التقسيم - . يكون خمرج املهام الناتج من الفرع غري معروفاالستكشايف بينما يف التقسيم ، معروفـ اخلوارزميةتؤدي التخميين يف التقسيم - ة التسلسلية مهمة واحدة حمـددة يف مرحل

وباملبادرة . هنا تعرف بالضبط ما الفرع الذي تأخذه إألهنا عندما تصل بداية املرحلة ف التخمني والربنامج املتـوازي املـستخدم ، حبساب إمكانيات التضاعف اليت يتحقق واحد منها فقط

. عمل واحد جممل أكثر من نظرية املسلسلييؤد التخميينللتقسيم ميكـن أن ة املتوازي يةزموار فإن اخل خمنيكانيات بالت أحد اإلم كشاف وحىت لو مت است -

. يةسلسلتال يةزمواراخلكرب أو نفس القدر من العمل من أ قدرايؤدت كشاف است يةسلسلتال زميةميكن للخوار ايف شاالستكفي التقسيم فومن ناحية أخرى -

معـروف بدائل خمتلفة واحدة تلو األخرى ألن الفرع الذي ميكن أن يوصل إىل احلل غـري ولذلك فان الربنامج املتوازي ميكن أن يؤدى نفس العمل اجململ أو أقـل أو أكثـر . مسبقا

. على موقع احلل يف مساحة البحثة املعتمديةسلسلية التمباملقارنة باخلوارز

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 87: Parallelism

85

)Hybrid Decompositions( التقسيم املختلط3.3.5

للحصول على صيغ متزامنة للعديـد طرق التقسيم اليت ميكن استخدامها نوقش عدد من –وتقنيات التقسيم اليت مرت معنا ليست حصرية االستخدام أي أنه ميكن ، من اخلوارزميات

، وغالبا فإن العمليات احلسابية تكون مركبة من عدة مراحل ، أن يتم مجعها معا -يف الغالب ، يف املراحل املختلفة ويف بعض األحيان يكون من الضروري تطبيق أنواع خمتلفة من التقسيم

عدد فإن Nفعلى سبيل املثال عند البحث عن العدد األصغر ضمن جمموعة كبرية مكونة من ميكـن اعتبـار ( املتوفرة Pالتقسيم العودي متاما قد ينتج عنه مهام أكثر من عدد اإلجرائيات

جـزء Pإىل يكون بتقسيم املـدخالت ؤلذلك فإن التقسيم الكف ، )اإلجرائية على أهنا معاجل . متساوي وجيعل كل مهمة تقوم حبساب العدد األصغر ضمن السلسلة اليت خصـصت هلـا Pوبعد ذلك ميكن احلصول على الناتج النهائي بإجياد العدد األصغر من النتائج املتوسطة لـ

.(17-3)كما يف الشكل ،وذلك باستخدام التقسيم العودي

. باستخدام أربعة مهام١٦العدد األصغر لمصفوفة من الحجم التقسيم المختلط إليجاد (17-3)الشكل

بفرض أننا نريد تنفيذ الفرز السريع بـشكل . مثال آخر لتوضيح فكرة التقسيم املختلط الذي أوردناه عند شرح التقسيم العودي استخدمنا التقسيم العـودي (3-3)يف املثال . متزامن

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 88: Parallelism

86

مهام لفرز سلسلة O(n)تج عن هذه الصيغة عدد ين. الشتقاق صيغة متزامنة من الفرز السريع ولكن بسبب اعتماد هذه املهام على بعضها وعدم تساوي احلجم بينها فـإن . nمن احلجم

أول مهمة لتقسيم قائمة املـدخالت إىل ، على سبيل املثال ف. التزامن الفعال يعترب حمدود جدا . األداء احملتمل عن طريق التوازي واليت تضع احلد األعلى ملستوى ، O(n)قسمني تستغرق مدة

ولكن خطوة تقسيم القوائم اليت يتم أدائها مبهام التوازي من النوع السريع ميكن تقـسيمها والتقسيم املختلط الناتج مت فيه اجلمع ،باستخدام أسلوب تقسيم املدخالت الذي متت مناقشته

صيغة متزامنة بدرجة كـبرية بني التقسيم العودي وتقسيم بيانات املدخالت وهذا يؤدى إىل . خلوارزمية الفرز السريع

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 89: Parallelism

87

أمثلة للخوارزميات المتوازية3.4

وسوف تكون الطريقة العامة لعـرض ، سوف نتطرق لبعض أمثلة اخلوارزميات املتوازية .عرض الصيغة التسلسلية للخوارزمية مث مناقشة كيفية جعلها متوازية: اخلوارزمية هي

. )Bubble Sort( الفرز الفقاعي وتوابعهاخوارزمية 3.4.1

bubble(تقوم اخلوارزمية التسلسلية للفرز الفقاعي أو كما يسمى أحيانا بالفرز بالتعومي

sort (ليكن لدينا السلسلة . مبقارنة واستبدال العناصر املتجاورة يف السلسلة اليت سترتب>a1,

a2, ..., an ،< تقوم اخلوارزمية أوال بإجراءn-1 يف الترتيب التايل" واستبدال-مقارنة" عملية :)a1, a2), (a2, a3), ..., (an-1, an .(بعد ذلك . هذه اخلطوة تزيح العنصر األكرب إىل هناية السلسلة

عمليـة إعـادة مث سيتم تكـرار ، سيتم جتاهل العنصر األخري ألنه أخذ الترتيب الصحيح له جتة ويف كل تكرار يتم إزاحة العنصر األكرب إىل آخـر واالستبدال على السلسلة النا -املقارنة

. مـن التكـرارات n-1وستكون السلسلة مرتبة بعد عدد . ه جتاهل يتم موضع يف السلسلة مل عندما ال يكون هناك اسـتبدال باإلهناءميكن لنا حتسني أداء خوارزمية الفرز الفقاعي وذلك

مع مالحظة أن العبارة ، 3-3)( خوارزمية خوارزمية الفرز الفقاعي معروضة يف . خالل التكرار compare-exchange هلا فإذا مل يكن ترتيبهما سـليما يقصد هبا مقارنة العنصرين الذين مررا .حينها يتم استبداهلما

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 90: Parallelism

88

، Θ(n) التكرار ضمن احللقة الداخلية يف خوارزمية الفرز الفقاعي تأخذ من الوقـت إن وبالتايل ستكون درجة التعقيـد ، )بسبب احللقة اخلارجية ( تكرار Θ(n)ويتم أداء ما جمموعه

.Θ(n2)للفرز الفقاعي مساوية إىل فكر كيـف ، ولربهان ذلك ، من الصعوبة مبكان جعل خوارزمية الفرز الفقاعي متوازية

من 5 و 4السطرين (واالستبدال أثناء كل مرحلة من اخلوارزمية -سيتم أداء عمليات املقارنة تقوم خوارزمية الفرز الفقاعي مبقارنة مجيع األزواج املتجـاورة بالترتيـب؛ ).3-3خوارزمية

أحد أنواع ويف القسم التايل سنعرض . وهلذا السبب فهي بالدرجة األوىل خوارزمية تسلسلية .ن أن يتم جعلها متوازيةباإلمكا واليتلفرز الفقاعيا

.خوارزمية الفرز الفقاعي التسلسلي): 3-3(خوارزمية

1. procedure BUBBLE_SORT(n) 2. begin 3. for i := n - 1 downto 1 do 4. for j := 1 to i do 5. compare-exchange(aj, aj + 1); 6. end BUBBLE_SORT

)Odd-Even Transposition(الفردي - الزوجياإلبدال 3.4.1.1

، ) زوجـي n( مرحلة n عنصر يف nبفرز " الفردي- الزوجي إلبدالا" تقوم خوارزمية وهذه اخلوارزمية تتنـاوب بـني . واالستبدال- من عمليات املقارنة n/2كل مرحلة تتطلب

,a1, a2<بافتراض أننا نريد ترتيب السلسلة . مرحلتني ومها مرحلة الفردي ومرحلة الزوجي

..., an< .العناصر ذوات الدليل الفردي مع ما جياورها سيتم مقارنة ، فخالل مرحلة الفردي ,(a1, a2(فاألزواج ، أماكنهما؛ وبالتايلإبدالفإذا مل حيققا شرط الترتيب فإنه يتم ، إىل اليمني

(a3, a4), ..., (an-1, an (وتستبدل -تقارن) بفرض أنnوعلى حنو مشابه فإنه خـالل ). زوجية

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 91: Parallelism

89

فإذا مل ، جياورها ناحية اليمني هلا دليل زوجي مع ما سيتم مقارنة العناصر اليت ، املرحة الزوجية ,a2, a3), (a4, a5), ..., (an-2 ( فاألزواج، حيققا شرط الترتيب فإنه يتم إبدال أماكنهما؛ وبالتايل

an-1 ( وبعد . واستبداهلا-يتم مقارنتهاn كـل . مرحلة فإن السلسلة تكون قد رتبت بالفعـل من nومبا أن لدينا عدد ، عملية مقارنة Θ(n)تتطلب ) و زوجية فردية أ (مرحلة من اخلوارزمية

(18-3)يوضـح الـشكل . Θ(n2)املراحل فلذلك ستكون درجة التعقيد للخوارزميـة هـي .من خالل مثالالفردي - الزوجياإلبدالخوارزمية

اك خالل آل ، الفردي- الزوجي اإلبدالباستخدام خوارزمية ) n=8( عناصر 8 فرز :(18-3)لشكال ة هن 8 مرحل

)n=8(عناصر يتم مقارنتها

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 92: Parallelism

90

.الزوجي-الخوارزمية التسلسلية لإلبدال الفردي: (4-3)الخوارزمية

1. procedure ODD-EVEN(n) 2. begin 3. for i := 1 to n do 4. begin 5. if i is odd then 6. for j := 0 to n/2 - 1 do 7. compare-exchange(a2j + 1, a2j + 2); 8. if i is even then 9. for j := 1 to n/2 - 1 do 10. compare-exchange(a2j, a2j + 1); 11. end for 12. end ODD-EVEN

:الفردي- الزوجياإلبدالالصيغة المتوازية لخوارزمية

فخالل ، متوازية الفردي- الزوجي باإلبدال خوارزمية الفرز جبعل إنه من السهل أن نقوم واستبدال بني عدة أزواج من العناصـر -كل مرحلة من اخلوارزمية يتم إجراء عملية مقارنة

هـو عـدد nوبفرض أن ". إجرائيةعنصر واحد لكل "بفرض أن لدينا احلالة . بنفس الوقت مرتبـة يف اإلجرائياتوبافتراض أن ). هو عدد األعداد اليت نريد فرزها nأيضا (جرائياتاإل

. i= 1,2,3,...,n حيـث pi يف العملية aiففي البداية سيستقر العنصر . مصفوفة أحادية البعدواسـتبدال - هلا دليل فردي بإجراء عملية مقارنـة إجرائيةخالل املرحلة الفردية ستقوم كل

ة الزوجيـة لفخالل املرح ، وعلى حنو مشابه . مع العناصر املستقرة يف جارهتا اليمىن لعناصرها واستبدال لعناصرها مـع العناصـر - دليلها زوجي بإجراء عملية مقارنة إجرائيةستقوم كل

.)5-3(هذه الصيغة املتوازية معروضة يف اخلوارزمية . املستقرة يف جارهتا اليمىن

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 93: Parallelism

91

رز الصيغة :(5-3)خوارزميةال دال المتوازية لخوارزمية الف ردي - الزوجي باإلب ى عدد ، الف شكل -nعل ة ب عملي .حلقة

1. procedure ODD-EVEN_PAR (n) 2. begin 3. id := process's label 4. for i := 1 to n do 5. begin 6. if i is odd then 7. if id is odd then 8. compare-exchange_min(id + 1); 9. else 10. compare-exchange_max(id - 1); 11. if i is even then 12. if id is even then 13. compare-exchange_min(id + 1); 14. else 15. compare-exchange_max(id - 1); 16. end for 17. end ODD-EVEN_PAR

-فالعمليات الزوجية أو الفردية تؤدي خطوة مقارنة ، خالل كل مرحلة من اخلوارزمية . مرحلة مماثلة nوإمجاال سيتم أداء ، Θ(1)ذلك يتطلب من الوقت و. واستبدال مع اجلار األمين

وبسبب أن درجة التعقيـد ألفـضل . Θ(n)سيكون وقت التشغيل للصيغة املتوازية هو ، فلذا باإلبـدال فإن هذه الصيغة من الفرز ، Θ(n log n) عنصر هو nخوارزمية فرز تسلسلية لفرز

.Θ(n2)بسبب أن ناتج عملية التشغيل هو ، الفردي ليست مثالية الكلفة-الزوجي

هـو p أنلنفرض . نستخدم إجرائيات أقل ، ية للصيغة املتوازية للحصول على كلفة مثال ، عنصر n/pويف البداية خيصص لكل إجرائية كتلة مكونة من . p<nحيث ، اإلجرائياتعدد

.)باستخدام الفرز السريع أو الفرز بالدمج (واليت يتم ترتيبها داخليا

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 94: Parallelism

92

إليجاد أصغر شجرة هيكليةPrim بريمخوارزمية 3.4.2

يف علم احلاسب اآليل ألهنا توفر طريقـة هاما دورا)Graph Theory( نظرية البيانتلعب من خـالل وميكن التعبري عن العديد من املسائل . سهلة ومنهجية لنمذجة العديد من املسائل

. قياسيةية كما ميكن حلها باستخدام خوارزميات بيان(Graph) البيان

تعاريف ومفاهيم أساسية 3.4.2.1

، V من جمموعة مـن الـرؤوس G البيانيتألفو،G=(V,E)هو الثنائية (Graph) البيانإنيوجد نوعان من . حبيث أن كل ضلع يصل بني رأسني من الرؤوس ، Eوجمموعة من األضالع

يف البيان املوجه ، )undirected graph(وبيان غري موجه ، directed graph)(بيان موجه : البيانفمثال ، لضلع اجتاهنيليف حني أن البيان الغري موجه يكون ، جتاه واحد فقط يكون لكل ضلع ا يصل eك ضلع لوكان هنا ، V ينتميان إىل جمموعة الرؤوس v و u الرأسني وعلى افتراض أن

ـ . متصالن v و uففي البيان الغري موجه نقول أن الرأسني ) u,v(بني الرأسني يف البيـان اأم .v إىل uاتصال من املوجهة فنقول أن هناك

.بيان موجه) b(، بيان غير موجه) a ((19-3)الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 95: Parallelism

93

أهنمـا v و u الرأسني ه يقال عن فإن G = (V, E)ضلع يف بيان غري موجه ) u, v(إذا كان

جماور vأما يف حال كان الضلع يف بيان موجه فإننا نقول أن الرأس . جماوران لبعضهما البعض ).ايحوليس العكس صح(uللرأس

من الرؤوس حبيث أن > v0, v1, v2, ..., vk< هو تتابع u إىل الرأس v من الرأس املسار إن v0 = v و vk= u ، وأن)vi, vi+1 ( تنتمي إىلE من أجل i = 0, 1, ..., k - 1 .طـول فعـر يو

.)أي اليت تكون املسار( يف املساروجودةاملسار بأنه عدد األضالع امل

عدد حقيقي ميثل كلفة يف الغالب والوزن . E األحيان وزن لكل ضلع من يقرن يف بعض ، والبيان الذي له أوزان ترتبط مع كل ضلع يدعى بأنه بيان مـوزون . أو منفعة العبور للضلع هي األضالع كما أشرنا قبل E هي الرؤوس و Vحيث ، G = (V, E, w)وميكن أن يشار إليه

أنـه علـى وميكن تعريف وزن البيان . E معرف على حقيقي تابع فهي w:E→Rأما ، قليل . نة لهوكأما وزن املسار فهو جمموع أوزان األضالع امل. جمموع أوزان أضالعه

األوىل باسـتخدام . هناك طريقتان قياسيتان لتمثيل املخططات البيانية يف برامج احلاسـب وألننا لـن نـستخدم . Linked List والثانية باستخدام القوائم املتصلة، Matrix املصفوفات

.طريقة القوائم املتصلة فلن نتطرق إليها

مـصفوفة اجلـوار إن . n وحـىت 1 رأس مرقمة من n وفيه G = (V, E)ليكن لدينا البيان adjacency matrix هلذا البيان هي املصفوفة A=(ai,j) وهلا احلجم n × n ،ومعرفة كالتايل:

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 96: Parallelism

94

الحظ أن مصفوفة اجلوار وي. غري موجه ممثل مبصفوفة جوار بيانل توضيح (20-3)يف الشكل

لتتماشى أن يعدل التمثيل يف مصفوفة اجلوار وميكن. ةناظرللبيان الغري موجه هي مصفوفة مت على النحو A = (ai,j)ويف هذه احلالة ميكن تعريف . )weighted graphs(مع البيانات املوزونة

:اآليت

.ان غير موجه وتمثيله بمصفوفة الجوار بي(20-3):الشكل

واملساحة املطلوبة لتخزين مـصفوفة . سنشري ملصفوفة اجلوار املعدلة مبصفوفة جوار موزونة .Θ(n2) رأس هي nاجلوار لبيان بعدد

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 97: Parallelism

95

)برمي خوارزمية(: األصغريكليةاهلشجرة ال3.4.2.2Minimum Spanning Tree (MST): Prim's Algorithm

يكون شجرة حتتوي على G هي بيان جزئي من Gشجرة اهليكلية لبيان غري موجه إن ال هو جمموع أوزان األضـالع زئييكون الوزن للبيان اجل ، ويف البيان املوزون . Gمجيع رؤوس

وزنال هلا هيكلية شجرة يلبيان موزون غري موجه ه ) MST ( األصغر يكليةاهلشجرة الو، فيهفعلـى ، لبيان غري موجه األصغر يكليةاهلشجرة ال إجياد من املسائل تتطلب العديد و. األصغر

تربط جمموعة حاسبات يت للكيابل ال األقصر طولالقد يكون من الضروري إجياد ، سبيل املثال وإجياد ذلك ميكن أن ، بني املدن االتصاالت أقل كلفة لربط خطوط حتديد أو مثال ، يف شبكة

للبيان الغري موجه الذي حيتوي على كـل األصغر يكليةهلاشجرة اليتم عن طريق البحث عن . عرض ألصغر شجرة هيكلية لبيان غري موجه(21-3)يف الشكل. االرتباطات

.األصغرية فيههيكلية الشجرة الو، بيان غير موجه:(21-3)لكالش

هيكليةبل سيكون لديه غابة . هيكلية يكون له شجرة أنفإنه ال ميكن ، تصال م Gإذا مل يكن spanning forest ، أن نفرض هيكلية شجرة أقصرومن اجل تبسيط فكرة حساب Gتصل م .

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 98: Parallelism

96

greedy( من اخلوارزميات اجلشعة األصغريكليةاهلشجرة ال إلجياد برمي تعترب خوارزمية

algorithm .( مث بعـد ذلـك تقـوم ، باختيار أحد الرؤوس عشوائيا كعنصر بداية تبدأفهيية أصغر شجرة هيكلية عن طريق اختيار رأس وضلع جديدين على أن يكون اخلوارزمية بتنم

مث تستمر اخلوارزمية يف العمل . يف اختيارمها ضمان كوهنما حيققان شجرة هيكلية بأقل كلفة . تكون مجيع الرؤوس قد مت اختيارهاأنإىل

، صغر فيـه األ يكليةاهلشجرة ال بيان موزون غري موجه نريد إجياد G=(V,E,w) بفرض أن عـرض )6-3(يف اخلوارزميـة . G هي مصفوفة اجلوار املوزونة للبيان A=(ai,j)وبفرض أن س أصغر شجرة هيكلية و لالحتفاظ برؤ VT تستخدم هذه اخلوارزمية اجملموعة . برميخلوارزمية

، لالحتفاظ بأوزان أضالع الشجرة d[1..n]أيضا تستخدم اخلوارزمية املصفوفة . أثناء تكوينها حتتفظ بوزن الضلع الذي لـه d [v] فإن) V- VT( ينتمي إىل v بأنفلكل رأس حيقق الشرط

. v إىل الرأس VTالوزن األقل من أي ضلع يربط بني أي رأس يف

. عشوائي ليكون هو اجلذر ألصغر شجرة هيكلية r على رأس VTمبدئيا حتتوي اجملموعة إذا كان يوجد ضـلع؛ وإال v (V - VT), d[v] = w(r, v) من vولكل ، d[r] = 0 أيضا فإن . d[v]= ∞ ستكون

حبيـث VTإىل اجملموعة u جديد يتم إضافة رأس ،خالل كل تكرار يف اخلوارزمية d[u] = min{d [v] | v (V - VT)} . وبعد أن يتم إضافة هذا الرأس فجميع قـيمd[v] الـيت

كون هنالك اآلن ضلع له وزن أقل يـصل بـني يتم حتديثها ألنه رمبا ي v ∈ (V - VT) حتقق . VT =Vتتوقف اخلوارزمية عن العمل عندما يكون . u والرأس املضاف vالرأس

فإن الكلفـة ألصـغر ، حينما تتوقف خوارزمية برمي ، هذه اخلوارزمية (22-3)يوضح الشكل لكـي ختـزن ) 6-3(وبسهولة ميكن التعديل على اخلوارزمية ، شجرة هيكلية هي

.اهليكلية األصغريةشجرة الضالع اليت تتوضع على األ

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 99: Parallelism

97

رار . bالجذر ألصغر شجرة هيكلية هو . خوارزمية بريم ألصغر شجرة هيكلية :(22-3)لشكال ل تك ومن أجل آرؤوس d[v]المصفوفة . وآذلك األضالع المختارةVT الرؤوس التي في غامق بالخط ال فيوضح يم ال تعرض ق

.يثها بعد أن يتم تحدV- VTفي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 100: Parallelism

98

وعملية حـساب . مرة n-1ينفذ ) 13-10سطر األ (while جسم احللقة )6-3(يف اخلوارزمية min{d[v]|v ∈ (V - VT)}) 10سطر ( وحلقةfor) تنفذ يف ) 13-12أسطرO(n)ولذا . خطوة

.Θ(n2) هو برميفإن درجة التعقيد العامة خلوارزمية

.صغر شجرة هيكليةتسلسلية ألبريم ال خوارزمية :6-3)(خوارزميةال1. procedure PRIM_MST(V, E, w, r) 2. begin 3. VT := {r}; 4. d[r] := 0; 5. for all v (V - VT ) do 6. if edge (r, v) exists set d[v] := w(r, v); 7. else set d[v] := ; 8. while VT V do 9. begin 10. find a vertex u such that d[u]:=min{d[v]|v (V - VT )}; 11. VT := VT {u}; 12. for all v (V - VT ) do 13. d[v] := min{d[v], w(u, v)}; 14. endwhile 15. end PRIM_MST

:ريمالصيغة المتوازية لخوارزمية ب• . وكل تكرار يضيف رأس جديد إىل أصغر شجرة هيكلية ، تعترب خوارزمية برمي تكرارية

فإنه مـن الـصعب ، VT قد تتغري كل مرة يتم فيها إضافة رأس إىل v للرأس d[v]وألن قيمة يف الـشكل ، على سبيل املثال . اختيار أكثر من رأس سويا إلضافتها إىل أصغر شجرة هيكلية

ميكن إجيـاد سويا فإنه ال c و dإذا مت اختيار الرأسني ، b يتم اختيار الرأس أنبعد ، (3-23). ٢ إىل ٥ يتم حتديثها مـن d[c] فقيمة dبسبب أنه بعد اختيار الرأس . أصغر شجرة هيكلية

، ومع ذلـك . بالتوازي Whileوعلى ذلك فإنه ليس من السهل تنفيذ تكرارات خمتلفة لعبارة .رار بالتوازي كما يليفإنه ميكن تنفيذ كل تك

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 101: Parallelism

99

مت تقسيم اجملموعة و. هي عدد الرؤوس يف البيان nو ، دد اإلجرائيات ع هو p بفرض أن

V إىل p كل جمموعة فرعية هلا .يةاجلزئ موعاتمن اجمل n/p لكل رافقوالعمل امل ، رأس متعاقب الـرؤوس هي جمموعة فرعية مـن Viبفرض أن . جمموعة فرعية يسند إىل إجرائيات خمتلفة

d ختزن القسم مـن املـصفوفة Piوكل إجرائية . i=0,1,...,p-1 لكل Piمسندة إىل اإلجرائية (a.24-3) الشكل ). v∈Vi حبيث أن d[v] ختزن Piرائية ـمبعىن أن اإلج ( Viابق ل ـالذي يط

التـايل while حللقـة كـل تكـرار أثنـاء حتسب Piفكل إجرائية . يوضح هذا التقسيم di[u]=min{di[v]|v ∈ (V - VT) ∩ Vi}.

P0اإلجرائية و. P0 وختزن يف اإلجرائية ،di[u] من مجيع القيمة األصغر احلصول على وعند

إىل مجيع u بإذاعة P0تقوم اإلجرائية و. VT والذي سيضاف إىل uحتتفظ اآلن بالرأس اجلديد ، VT إىل اجملموعـة ميينت u حتدد أن u عن الرأس املسئولة Piاإلجرائية كما أن . اإلجرائيات ).احمللية( للرؤوس اخلاصة هباd[v]تقوم كل إجرائية بتحديث قيم ، ويف النهاية

إجرائيةP إلى A ومصفوفة الجوار d تقسيم المصفوفة :(24-3)الشكل

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 102: Parallelism

100

جيب أن ) V- VT( ينتمي إىل v اليت حتقق d[v]فإن قيم ، VT إىل uفة رأس جديد اعند إضوبالتايل ستحتاج كـل ). u,v( تعلم وزن الضلع أن جيب vئية املطابقة ل اإلجرا. يتم حتديثها

للرؤوس املـسندة Vi إىل ختزين العمود ملصفوفة اجلوار املوزونة املطابق للمجموعة Piإجرائية رائية هي ــوار لكل إج ـصفوفة اجل ـاملساحة املطلوبة لتخزين األجزاء الالزمة من م . إليها

Θ (n2/p) . الشكل(24-3.b)يوضح التقسيم ملصفوفة اجلوار املوزونة .

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 103: Parallelism

101

الربجمة املتوازية:الفصل الرابع

كما رأينا يف فصل سابق أن هناك تقنيات ميكن إتباعها جلعل خوارزمية أو مسألة معينة كيف نقوم بربجمة هذه املسألة اجملـزأة علـى : "ولكن يبقى لدينا اآلن السؤال التايل ، متوازية

الربجمـة "ميكننا ذلك باستخدام نوع من الربجمة يطلق عليـه : واإلجابة، "زي؟احلاسب املتوا يف اللغـات الربجميـة إن التعبري عن التوازي يف برامج املستخدم يتطلب تعـبريا ".املتوازيةوأخرى ، فهي تتطلب مثال بعض التعليمات األولية للتعبري عن التوازي بني مهمتني ، وشكلها

. ذلكتزامن وما شابهمن أجل التخاطب وال

ــة ــة املتوازي زات :)Parallel Programming( الربجم ى أو المي ضمن البن ة تت ة بلغ ي البرمج ه .المتوازیة

بعض اللغات الربجمية اليت تعتمـد مبـدأ من خالل ت املتوازية اوميكن أن يتم بناء املميز أو ميكن، CSP(Communicating Sequential Process), OCCAMالتوازي يف تصميمها مثل

-Parallelتوسيع لغات الربجمة التسلسلية من أجـل احتـواء تعليمـات التـوازي كلغـة

FORTRAN ،Parallel-Pascal ،Parallel-C . إحلاق املزايا املتوازيـة إىل لغـة وميكن كذلك مثل مكتبة وذلك باستخدام روتينات املكتبات ++C/C أو FORTRANتسلسلية تقليدية مثل

MPIتبة أو مكPVM أو Pthreads(POSIX Threads).

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 104: Parallelism

102

ومن مث سوف نعطي حملة سريعة OCCAMوفيما يلي سوف نناقش بشيء من اإلمجال لغة وأخريا سنتعرض بشكل أوسع للربجمة املتوازية باستخدام ، املتوازية FORTRAN-90عن لغة .++C من خالل لغة MPIمكتبة

OCCAM لغة 4.1

ات املصممة خصيصا للربجمة املتوازية فهي تدعم التوازي إحدى اللغ OCCAM تعد لغة وقـد أخـذ بعـني . الصريح والتوازي الظاهري على معاجل واحد عن طريق تقسيم الوقت

وقـد مت تنفيـذ . االعتبار عند تصميمها واختيار تعليماهتا مجيع خصائص العمل املتـوازي OCCAM واستفادت هذه اللغـة . توازية بعد دراسات طويلة جرت على الربامج واللغات امل

واليت CSP(Communicating Sequential Process)من حصيلة الدراسات اليت متت على لغة تعد إحدى أوائل اللغات املصممة هلذا الغرض وأكثرها مالئمة لتوصيف وكتابـة الـربامج

استخدامها على واقتصر، مل تلق الشهرة نتيجة كوهنا لغة توصيفية CSPإال أن لغة ، املتوازية . مستوى مراكز الدراسات واملختربات العلمية

وهـي ، ١ لكي تنفذ بشكل خاص على معاجلـات الترانـسبيوتر OCCAMصممت لغة ولكون تعليمات هذه اللغة وخاصة . تستثمر إىل حد كبري اخلواص الصلبة والبنيوية هلذا املعاجل ملعاجل فإن استخدامها اقتـصر علـى اإلجرائيات املرتبطة بالتفريع ذات مستوى قريب من ا

.ومل تلق رواجا من قبل املستخدمني التقليديني، املختصني يف املعاجلة املتوازية

وتنفـذ Process من عدد من املهمات تدعى OCCAMيتألف الربنامج املتوازي وفق لغة ات اجلزئية وتتألف كل مهمة من عدد من املهم . كل منها على عقدة من عقد املعاجلة املتوفرة

.اليت تشارك يف استثمار مصادر املعاجل الوحيد) Concurrent Processes(املتسايرة

يتضمن ذاآرة وصول ، وهو حاسب آلي متكامل على شريحة واحدة. transistor computerاختصار للجملة : Transputerالترانسبيوتر 1

. آوحدة بناء ألنظمة الحساب المتوازي أساساويصمم هذا الجهاز، )FPU(العائمة -لنقطةلحسابية و وحدة) RAM(عشوائي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 105: Parallelism

103

يتم االتصال بني املهمات املتسايرة عن طريق مترير الرسائل من قنـاة إىل OCCAM ويف .قناة، جتـاوز ، االستقبال، اإلرسال، التخصيص، مخس مهمات أساسية OCCAMيوجد يف و : لي إيضاح التركيب النحوي هلا مع التمثيلوفيما ي، إيقاف

هو إسناد قيمة تعبري حسايب إىل متغري :التخصيصSYNTAX: <variable>:=<expression> Example: x :=y +1

للتعبري عن الطلب" ?"يستخدم الرمز . استقبال قيمة من قناة :االستقبالSYNTAX: <channel>?<variable> Example: Ch ? x

.للتعبري عن النداء"!" يستخدم الرمز . قيمة تعبري إىل قناةإرسال :اإلرسال

SYNTAX: <channel>!<expression> Example: Ch !y +1

جتاوز املهمة احلالية: تجاوزال

SYNTAX: SKIP Example: SKIP

إيقاف املهمة: اإليقاف

SYNTAX: STOP Example: STOP

تتألف أيضا كل مهمة جزئية من عدد مـن املهمـات ) Hierarchical(وبشكل تدرجيي وقد يكون التوازي يف هذه اللغة على مستوى التعليمة الواحدة ، اجلزئية املتسايرة أو املتسلسلة

وهكذا يتضمن الربنامج املتوازي عند تنفيذه . أو على مستوى اإلجرائية داخل املعاجل الوحيد .املتوازيةعلى مئات املهمات املتسايرة و

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 106: Parallelism

104

بتوزيع املهمات ذات املستوى األعلى على معاجلـات OCCAMيعرب عن التوازي يف لغة واليت تعين تنفيذ التعليمات PARأما داخل املهمة فيعرب عنه باستخدام إجرائية التحكم ، خمتلفة

).توازي ظاهري(أو اإلجرائيات اليت تلي على التوازي

: ميكن كتابةS1,S2,S3ذ اإلجرائيات فللتعبري عن التوازي أثناء تنفيPAR /*Ececute the following in parallel */

S1 S2 S3

: على الشكل التايلPAR مباشرة داخل إجرائية S1,S2كما ميكن تعريف اإلجرائيتني

CHAN OF INT in,out,middle; /*Declaration of the channels */ PAR /*Execute in parallel*/ INT X: /*The first process*/ WHILE TRUE SEQ /*Sequential execution of following*/ In ? X /*Read X from in channel*/ Middle ! X /*Write X on middle channel*/ INT X: /*The second process*/ WHILE TRUE SEQ /*Sequential execution of following*/ MIDDLE ? X /*Read X from in channel*/ OUT ! X /*Write X on out channel*/

ذو عنصرين وهو يتألف من مهمتني متسايرتني تتفاعالن عن طريق bufferميثل هذا الربنامج )1-4( كما يبني الشكلMiddleقناة االتصال

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 107: Parallelism

105

)1-4(الشكل

رائية تكرار فتقوم خبلق عدة مهمات متشاهبة ومتسايرة تنفذ أيضا كإج PARتستخدم تعليمة :ويتم ذلك على الشكل التايل، على التوازي

PAR I=0 FOR N /*create n process and execute then in parallel*/

S[I]

مهمة مؤلفة من عدة مهمات تنفذ على التوازي وتنتهي هذه املهمـة األم PARمتثل إجرائية . مجيع املهمات اجلزئية املؤلفة هلاعند انتهاء

: أيضا من أجلPARيستفاد من إجرائية .تعريف بنية الربنامج املتوازي على مستوى املهام العليا

.توضيع املهمات على املعاجلات املختلفة : يف هذه احلالة وتستخدم كما يليPLACED PARوتأخذ هذه اإلجرائية شكل

PLACED PAR /*Place in parallel*/

PROCESSOR 1 /*Processor naming*/ P1 /*Task P1 on processor 1*/ PROCESSOR 2 /*Processor naming*/ P2 /*Task P2 on processor 2*/ PROCESSOR 3 /*Processor naming*/ P3 /*Task P3 on processor 3*/

، PARئية حتكم معاكسة لتعليمـة إجرا OCCAMتتوفر يف لغة ، كما الحظنا يف مثال سابق .ها اليت تعرب عن التنفيذ التسلسلي للتعليمات اليت تليSEQوهي تعليمة

:OCCAM املهمات باستخدام لغةبناءميكن أن يتم

. حيث تتوضع يف بداية التنفيذ مهمة على كل معاجل:بشكل سكوين

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 108: Parallelism

106

. PARعانة بإجرائيـة حيث تقوم كل مهمة خبلق مهمات جزئية داخلية باالست :بشكل آيل .فخلق املهمات حملي تدرجيي، ولكن ال ميكن ملهمة خلق مهمة جزئية على معاجل آخر

تتفاعل املهمات فيما بينها عن طريق تبادل الرسائل عرب قنوات وحيدة االجتاه تـصل بـني هو تراسل متزامن ويتم بعد االلتقاء بنقطة موعد فيمـا OCCAMوالتراسل يف لغة . املهمتني

.بني املهمتني املتراسلتنيوكل قناة ختصص ، ميكن أن تتصل مهمتني من مهمات الربنامج املتوازي بعدة قنوات اتصال

كما تنقل املعطيات وفق بروتوكـول معـرف ، وحمدد من املعلومات Typeلنقل نوع معني .وحمدد

:تايلويتم حتديد نوع املعطيات املتبادلة عند تعريف قناة االتصال على الشكل الCHAN OF <TYPE> <NAME1>,<NAME2>; Example: CHAN OF INT ch; /*ch: channel of type integer*/

للتمكن من نقل معطيات مركبة ومن OCCAMتعرف بروتوكوالت نقل املعلومات يف لغة

فإلرسال عدد طبيعي يليـه عـدد صـحيح يعـرف ، خمتلفة عرب نفس القناة Typesأمناط :التايلالربوتوكول

PROTOCOL int.real IS INT;REAL32; CHAN OF int.real ch: INT inint;outint: REAL32 inreal;outreal: PAR Ch ! outint;outreal Ch ? inint;inreal

واألخـرى ، (!) وهـي األوىل إلرسال املعلومات : يتم تراسل املعطيات باستخدام تعليمتني دد نوع املعطيات املتبادلة كما ذكرنا عند تعريـف قنـاة وحي). ؟ ( وهي الستقبال املعلومات

.االتصال اليت تصل بني مهمتني

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 109: Parallelism

107

-4( يف الـشكل Chan1,Chan2 املعلومات باجتاهني عرب القناتني P1,P2تتبادل املهمتني : مثال

2.(

)2-4(الشكل

بة تنفيذ مهمـة بالنـس ) Prioraty( لتحديد أولوية PRI أيضا إجرائية OCCAMتتضمن لغة

. للمهمات األخرى فيكون هلذه املهمة أولوية التنفيذ بني املهمات املتسايرة على املعاجل الواحد لترتيبها فاألولوية األوىل تكون للمهمـة األوىل تنفذ املهمات وفقا ، PRIوباستخدام إجرائية

.ومن مث للمهمة اليت تليها وهكذا

:PRIيوضح املثال التايل إجرائية PRI PAR P1 /*highest priority*/ PAR P2 /*three process with middle priority*/ P3 P4 P5 /*lowest priority*/

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 110: Parallelism

108

أيضا إجرائيات التحكم املعروفة يف اللغات الربجمية التقليدية مثـل OCCAMتستخدم يف لغة FOR, WHILE,…يديـة واستخدامها يطابق استخدام ما مياثلها يف اللغـات التقل ، وغريها

.املعروفةإجرائيـة ، باإلضافة إىل إجرائية توضيع املهمات على املعاجلات OCCAMوأخريا تتضمن لغة

أخرى لتوضيع قنوات االتصال اليت تصل فيما بني املهمات املتوضعة على معاجلات خمتلفـة .على القنوات الفيزيائية اليت تصل فيما بني املعاجلات

توضيع مهمة تتحكم بلوحة املفاتيح وتتصل عرب قنـايت اتـصال ويوضح املثال التايل طريقة

كما يوضح توضـيع قنـوات . Processor1باملهمات األخرى عرب قنايت اتصال على معاجل : االتصال املنطقية على قنوات االتصال الفيزيائية

PLACED PAR /*Plase in parallel*/ PROCESSOR 0 /*Processor naming*/ PLACE in AT link 0 in /*Place channel in on link 0 in(physical channel)*/ PLACE out AT link 1 out /*Place channel out on link 1 out(physical channel)*/ keyboard(in,out) /*Place process keybord on Processor 0*/ PROCESSOR 1 /*Processor naming Processor*/ PLACE out 1 AT link 0 out /*Place channel out 1 on link 0 out*/ PLACE in 1 AT link 0 in /*Place channel in 1 on link 1 in*/ Screen(in 1, out 1) /*Place process screen on Processor 1*/

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 111: Parallelism

109

:FORTRAN- 90 لغة 4.2

SIMDة للحاسبات املتوازية اليت من منط ولكنها مصمم FORTRAN هي لغة مشتقة من لغة .حيث تقوم املعاجلات املتزامنة بتنفيذ التعليمة نفسها يف كل حلظة

يظهر التوازي بالعمليات على املتجهات يف هذه اللغة حيث ميكـن أن تكـون معـامالت : فبدل كتابة احللقة التاليةNالعمليات احلسابية متجهات ذات بعد

for I=1,N A[I]=B[I] + C[I]

:ميكننا باستخدام هذه اللغة كتابة تعليمات على املتجهات على الشكل التايلA(1:N)=B(1:N) + C(1:N) T(1:N)=A(2:N+1) B(1:N)=2*T(1:N)

ويتعاون املترجم ونظام . يقوم كل معاجل بتنفيذ العملية احملددة على جزء املتجهة املخصصة له أساسـيا كما يلعب التزامن دورا . هذه التعليمات املعقدة التشغيل على هذه احلاسبات لتنفيذ

.يف تسهيل تنفيذ التعليمة فهي أحدث اللغات املتوازية املتوفرة علـى HPF:Hight Performance FORTRANأما لغة

وتعد إحدى أوىل اللغات املعيارية هلذا ، وهي تعتمد مبدأ توزيع املعطيات ، احلواسيب احلديثة .سيبالنوع من احلوا

وحتتوي باإلضافة إىل ذلك تعليمـات لتوزيـع FORTRAN-90تعتمد هذه اللغة مبادئ لغة أما عمليات االتصال فيما بني املعاجلات فهي شفافة . املعطيات على املعاجلات املختلفة املتوفرة

.بالنسبة للمستثمر

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 112: Parallelism

110

MPInterface Iassing Pessage M واجهة مترير الرسائل 4.3

لكي تكون مكتبة )النسخة النهائيـة األوىل (1994 يف عام أنتجت MPI مترير الرسائل إن واجهة احلاسبات املتوازية بدال من أن ينتج كل موفر املكتبة اخلاصة بـه منتجوقياسية يعتمد عليها

فت هذه املكتبة معايري قياسية لتمرير الرسائل ميكن فقد عر . كما كان هذا حيدث يف السابق وقد . FORTRAN أو ++C/C لتطوير برامج مترير الرسائل من خالل لغيت الربجمة أن تستخدم

ولقيت دعما واسعا ، والصناعي األكادميي بواسطة جمموعة من القطاعني MPIطورت مكتبة .من قبل أغلب منتجي العتاد

كاملة متوازية ولكن ميكن كتابة برامج ، روتينا 125 على أكثر من MPI حتتوي مكتبة هذه الروتينات الست )1-4(عروضة يف اجلدول وهي امل روتينات فقط 6الوظائف باستخدام

وتستخدم إلحضار معلومات عن بيئة التشغيل املتوازية اليت يعمل ، تستخدم لبدء وإهناء املكتبة . واستقبال الرسائلإرسالعليها الربنامج باإلضافة إىل

شيء قليل من املفاهيم األساسية والضرورية لكتابة ويف هذا القسم سنتعرض هلذه الروتينات و .MPIبرامج صحيحة وفعالة لنموذج مترير الرسائل باستخدام

MPIمجموعة من الروتينات األساسية الخاصة بالمكتبة ): 1-4(جدولال

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 113: Parallelism

111

MPI الهيكل العام لبرامج 4.3.1

:MPI يوضح الشكل اآليت اهليكل العام لربامج

الروتني يتم استدعاء MPI_Init ، MPI يف املكتبـة آخر قبل أي استدعاء ألي روتني واستدعاء هذا الروتني أكثر من مرة خالل فتـرة . MPI وظيفة هذا الروتني هي تشغيل بيئة و

. إلهناء احلساب MPI_Finalizeويستدعى الروتني .عمل الربنامج سيتسبب يف حدوث خطأ . روتني اإلهناءعد استدعاء بMPIيستدعى أي روتني يف وجيب أن ال

بواسطة كل اإلجرائيـات MPI_Finalize و MPI_init نيوجيب أن يتم استدعاء الروتين فيما يلي طريقة االستدعاء هلذين الروتينني و. يكون سلوك الربنامج غري طبيعي وف إال س و

:++Cيف لغة int MPI_Init(int *argc, char ***argv)

int MPI_Finalize()

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 114: Parallelism

112

على (_MPI ق باألحرف بس تMPIإن مجيع الروتينات و أنواع البيانات و الثوابت يف وهناك ثابت يتم إرجاعه عندما تتم العملية احلسابية بنجاح وهو . )MPI_Initسبيل املثال

MPI_SUCCESS . هذا الثابت وغريه من الثوابت وتراكيب البيانات يفMPI كلها معرفـة .MPIوجيب أن يتم تضمني هذا امللف يف مجيع برامج ". mpi.h" لفامل يف ++Cللغة

، باالستفادة من الروتينني السابقني وذلك MPIأول برنامج لنا باستخدام اآلن سنكتب وهو عبارة عن برنامج بسيط وفيه يقوم كل معـاجل لـدينا بطباعـة الرسـالة الترحيبيـة

"Welcome"! يف برامج مع مالحظة أنهMPI احلاسب كل معاجل من معاجلات يكون لدى : نسخة خاصة به من نفس الربنامجاملتوازي

#include <iostream.h>

#include <mpi.h> // لتضمني املكتبة يف برناجمنا

int main(int argc, char ** argv)

{

MPI_Init( &argc, &argv);

cout << "Welcome!" << endl;

MPI_Finalize();

}

: من الربنامج السابق عدة مالحظاتنستخلصوهذا يعطينا إمكانية التعامل مع مجيع وظائف مكتبة ، mpi.h املكتبة قمنا بتضمني •

MPI. واليت ، ()MPI_Initء كانت البداية حني استدعا . لدينا يف هذا الربنامج بداية وهناية •

نها سيقوم نظام التـشغيل بعمـل وحي MPIخترب نظام التشغيل بأن هذا الربنامج هو برنامج

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 115: Parallelism

113

واليت ختـرب ، ()MPI_Finalizeأما النهاية فكانت حني استدعاء الروتني . عدادات الالزمة اال .MPI أي شيء يتعلق يف تدمرينظام التشغيل بأن عليه

فإن العمليات اليت حتدث ، -كما يف برناجمنا هذا -إذا كان الربنامج متوازي متاما • . أي اتصاالتمال تستخد واإلهناءلتهيئة بني عباريت ا

عندما نقوم بترمجة هذا الربنامج وتشغيله فسوف حنصل على جمموعـة مـن رسـائل

"Welcome! "لعدد املعاجلات اليت الرسائل سيكون مساويا هذه عدد و، على الشاشة مطبوعة عملية كونبسبب أنه جتدر اإلشارة إىل و، تشغيل الربنامج عليه متيف احلاسب املتوازي الذي

سلسل اخلرج بتتابع ليتم إخراجهـا فإن احلاسب جيب أن ي ، طباعة الرسائل ستكون متزامنة .على الشاشة

(Communicators) المراسالت 4.3.2

جمـال ما يطلق عليه احلقيقة هو MPI الرئيسية اليت تستعمل يف مجيع برامج األشياء حدأ تـسمح اإلجرائياتوجمال االتصال هو جمموعة من . )communication domain (االتصال

وبعض املعلومات حول جمال االتصال تكون خمزنة يف متغريات من . حبدوث اتصال فيما بينها خدم كبارامترات جلميـع ستوهذه املراسالت ت . واليت تدعى باملراسالت ، MPI_Commنوع

نتمي إىل جمـاالت تراسـل تن أن ميكإجرائيةالحظ أن كل ، MPIروتينات نقل الرسائل يف .خمتلفة

وهـذه . ميكن أن تتصل فيما بينها اإلجرائياتتستخدم املراسالت لتعريف جمموعة من اإلجرائيـات وبشكل عام قد حتتـاج مجيـع . تشكل جمال تراسل اإلجرائياتاجملموعة من

ـ عر ت MPIوهلذا السبب فإن ، لالتصال مع بعضها البعض دعى ف مراسـالت افتراضـية ت

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 116: Parallelism

114

MPI_COMM_WORLD لكن و. املستخدمة للتنفيذ املتوازي اإلجرائيات واليت تتضمن مجيع. اإلجرائيـات مـن معينـة يف العديد من احلاالت قد حنتاج أداء اتصال فقط ضمن جمموعة

تتداخل أبدا مع وباستعمال مراسالت خمتلفة لكل جمموعة ميكن لنا أن نضمن أن الرسائل ال .رسائل جمموعة أخرى

عن بيئة التشغيلالحصول على معلومات 4.3.3

مان للحـصول علـى ستخد ت MPI_Comm_rank و MPI_Comm_size إن الدالتني اإلجرائيـات لتحديـد عـدد تستخدماألوىلمعلومات عن البيئة اليت يعمل فيها الربنامج؛ ف

:الشكلأخذ الروتينان يو، ية املستدعاإلجرائية أو رتبةوالثانية لتحديد عنوان

int MPI_Comm_size(MPI_Comm comm, int *size)

int MPI_Comm_rank(MPI_Comm comm, int *rank)

ـ اليت اإلجرائيات عدد Size يف املتغري عرج ت MPI_Comm_sizeالدالة إن سب جملـال تنت .commاالتصال

هي عـدد اإلجرائيةورتبة . rank ارف بواسطة رتبته تعع جملال االتصال بتت إجرائيةكل اإلجرائيـة وميكن معرفة رتبة . صحيح يتراوح من صفر إىل حجم جمال االتصال ناقص واحد

و متغري صـحيح ، جمال االتصال : واليت تأخذ بارامترين MPI_Comm_rankباستخدام الدالة rank . املتغريrank ستدعي أي مـن هـذه ت يتال اإلجرائية علىوجيب . اإلجرائية خيزن رتبة

.إال سوف حيدث خطأ و، جملال االتصالةكون تابعتالدوال أن

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 117: Parallelism

115

واآلن سوف نقوم ، فقط هناء باستخدام داليت البدء واإل متوازي كنا قد كتبنا أول برنامج سـيتم ، بتحسني الربنامج فبدال من أن يتم طباعة رسائل ترحيب فقط دون معرفة مصدرها

ـ تة و يبيطباعة رسالة ترح ب إجرائيةقوم فيه كل تاآلن كتابة برنامج ـ اوضح جبوارها أهن ي ه . هذه الرسالةت طبعيت الاإلجرائية

#include <iostream.h> #include <mpi.h> main(int argc, char *argv[]) { int npes, myrank; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &npes); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); cout <<"Welcome! from process "<<myrank; cout <<"of "<<npes <<endl; MPI_Finalize(); }

فإن ناتج الطباعـة سـيكون ، عند تشغيل هذا الربنامج على حاسب لديه أربعة معاجلات :شبيه للتايل

Welcome! from process 0 of 4 Welcome! from process 2 of 4 Welcome! from process 3 of 4 Welcome! from process 1 of 4

الحظ أن الناتج رمبا لن يكون مرتبا بشكل صحيح وذلك ألن مجيع املعاجلـات حتـاول .ونظام التشغيل هو الذي يقرر الترتيب، الطباعة على الشاشة بنفس الوقت

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 118: Parallelism

116

MPIتراسل البيانات في 4.3.4

: باسـتخدام الـدالتني التـاليتني MPIرسائل واسـتقباهلا يف ال إرسال ميكن أن يتم MPI_Send و لإلرسال MPI_Recv وفيما يلي سنوضح التركيب النحوي لكال . لالستقبال

.ومثال لالستخدام، مع الشرح للبارامترات، الدالتني

:دالةالالتركيب النحوي الستدعاء int MPI_Send( void* message /*in*/, int count /*in*/, MPI_Datatype datatype /*in*/, int dest /*in*/, int tag /*in*/, MPI_Comm comm /*in*/ } int MPI_Recv( void* message /*out*/, int count /*in*/, MPI_Datatype datatype /*in*/, int source /*in*/, int tag /*in*/, MPI_Comm comm /*in*/, MPI _Status* status /*out*/ )

:توصيف البارامترات •message - عنوان البداية لعازل )buffer (واالستقبالاإلرسال . •count - و االستقبالاإلرسال عدد العناصر يف عازل .

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 119: Parallelism

117

•datatype - اإلرسال أنواع املعطيات للعناصر اليت يف عازل. •source - الرتبة )rank (املعطياتإلرسال لإلجرائية . •dest - بال املعطياتق الستلإلجرائية الرتبة. •tag -لقب الرسالة . •comm -حيدد جمال االتصال . •status -كائن احلالة .

املشار إليها بواسـطة ) buffer( املعطيات املوجودة يف العازل MPI_Sendترسل الدالة buf . ا العازل من عناصر متتالية من النوع احملدد بواسطة البارامتر يتألف هذdatatype . وعدد

MPI_Sendوجهة الرسائل املرسلة بواسطة . countالعناصر اليت يف العازل حيددها البارامتر اهلـدف لإلجرائية) rank( هو رتبة destالبارامتر . comm و destحتدد بواسطة البارامترين

وكل رسالة يرافقها لقـب . commجمال االتصال الذي حيدد بواسطة الراسل وجد يف ت يتالtag ميكن أن يأخذ اللقب . وهو من نوع صحيح يستخدم للتمييز بني أنواع الرسائل املختلفةtag قيم تتراوح من صفر وحىت احلد األعلى املعرف بواسطة MPI وهو MPI_TAG_UP.

:MPI أنواع البيانات في

موضـحة يف ++C اليت تطابق تلك األنواع املوجودة يف لغـة MPIيف بياناتأنواع ال إن إىل أنـواع باإلضافةهذا ، MPIفلكل نوع يف سي هناك نوع مساوي له يف . )2-4(اجلدول

.MPI_PACKED و MPI_BYTEأخرى غري موجودة يف لغة سي وهي

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 120: Parallelism

118

.MPIفي ويوضح ما يقابلها ، ++C يوضح أنواع البيانات في :(2-4)جدولال

الرتبة اليت حيملـها اهلإجرائية فتستقبل الرسائل املرسلة بواسطة MPI_Recvأما الدالة

جيب . comm يف جمال االتصال الذي حيدده البارامتر ةموجوداإلجرائية ههذو sourceاملتغري ن الرسائل فإذا كان هناك العديد م ، tagأن يكون لقب الرسالة املرسلة حمددا بواسطة البارامتر

تـسمح . فإنه يتم استقبال أي واحدة من هذه الرسائل ، اإلجرائيةهلا نفس اللقب من نفس MPI بتحديد رمز عام للبارامترات سواء بارامتر املصدر source أو اللقب tag ، فإذا كـان

يف جمـال االتـصال إجرائية فإن أي MPI_ANY_SOURCE بالقيمة ئا مهي sourceاملصدر مهيـأ بالقيمـة tagإذا كـان اللقـب ، وبنفس الطريقـة . كون املصدر للرسالةتميكن أن

MPI_ANY_TAG يتم ختزين الرسالة املـستقبلة يف . فإن الرسائل يتم قبوهلا مجيعا بأي لقب اللـذان يف الـروتني datatype و countيستخدم بارامتري . bufاملكان املشار إليه من قبل

MPI_Recv وجيب أن تكون الرسالة املستقبلة بطول . ول العازل اجملهز يستخدمان لتحديد طهذا جيعل املعاجل املستقبل ال يعرف احلجم الدقيق للرسـالة . مساوي أو أقل من هذا الطول

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 121: Parallelism

119

تجـاوز احلـد بفسينتج اخلطـأ ، إذا كانت الرسالة املستقبلة أكرب من العازل اجملهز . املرسلة .MPI_ERR_TRUNCATEوسيعيد الروتني باخلطأ ، املسموح

للحصول على معلومات حـول status فإنه ميكن استخدام املتغري، بعد أن تستقبل الرسالةوفيما .MPI_Status يف التركيب status يتم ختزين متغري احلالة++Cويف لغة . اإلرسالعملية

: حقولةيلي تطبيق هلا كتركيب بثالث

typedef struct MPI_Status { int MPI_SOURCE; int MPI_TAG; int MPI_ERROR; };

يتم ختزين املـصدر واللقـب للرسـالة MPI_TAG و MPI_SOURCEيف املتغريين ــستقبلة ــن . امل ــتخدام أي م ــة اس ــدان يف حال ــا مفي و MPI_ANY_SOURCEومه

MPI_ANY_TAG . ويف املتغريMPI_ERRORيتم ختزين رقم اخلطأ للرسالة املستقبلة . ولكن هـذه . يرجع مبعلومات عن طول الرسالة املستقبلة statusرامتر احلالة أيضا فإن با

بل ميكـن أن حنـصل عليهـا statusاملعلومات ال ميكن احلصول عليها مباشرة من املتغري : واليت تأخذ الشكل التايلMPI_Get_countباستدعاء الدالة

int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count)

ونـوع البيانـات status احلالة ي متغري اتكما نشاهد فإن هذه الدالة تأخذ كبارامتر datatype واليت حصلنا عليهما من الدالة MPI_Recv ، الذي ترجعه لنـا الدالـة الشيءأما

MPI_Get_count فهي تضع يف املتغري countعدد العناصر .

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 122: Parallelism

120

:إلرسال واالستقبال يوضحها املثال لعملية اطريقة االستخداموint mynode, totalnodes; int datasize; //عدد وحدات املعطيات اليت سرتسل أو تستقبل int sender; // املرسلةاإلجرائيةرقم int receiver // املستقبلةاإلجرائيةرقم int tag // عدد صحيح يستخدم آلقب أو عالمة للرسالة MPI_Status status; //متغري حيتوي معلومات عن احلالة MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &totalnodes); MPI_Comm_rank(MPI_COMM_WORLD, &mynode);

//datasizeحتديد عدد وحدات املعطيات double * databuffer =new double[datasize]; //Fill in sender,receiver,tag on sender/receiver processes, //and fill in databuffer on the sender process. if(mynode==sender) MPI_Send(databuffer,datasize,MPI_DOUBLE,receiver, tag,MPI_COMM_WORLD); if(mynode==receiver) MPI_Recv(databuffer,datasize,MPI_DOUBLE,sender,tag, MPI_COMM_WORLD,&status); واالستقبالاإلرسالانتهت عملية //

MPIبرامج تطبيقية باستخدام 4.3.5

وحـان الوقـت ، MPIهبذا القدر نكون قد غطينا اجلوانب األساسية للربجمة باستخدام اهلدف منـها ،عدة برامج وفيما يلي سنختم هذا الفصل بعرضنا ل ، لكي نكتب برامج حقيقة

.هو تطبيق املعلومات اليت وردت معنا سابقا

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 123: Parallelism

121

المعطياتواستقبالإلرسال برنامج

وفيـه ، إن اهلدف من هذا الربنامج هو توضيح وفهم عملية التراسل بني اإلجرائيـات ولكن ستكون عملية التهيئة لكل املصفوفات ، سوف نقوم بإنشاء مصفوفة على كل إجرائية

تقـوم ، P0ن تكون مجيع املصفوفات قد هيئت يف اإلجرائية وبعد أ ). P0( صفر اإلجرائيةيف . باإلرسال إىل كل إجرائيةP0اإلجرائية

01 #include<iostream.h> 02 #include<mpi.h> 03 04 int main(int argc,char *argv[]){ 05 int i; 06 int nitems =10; 07 int mynode,totalnodes; 08 MPI_Status status; 09 10 double *array; 11 12 MPI_Init(&argc,&argv); 13 MPI_Comm_size(MPI_COMM_WORLD,&totalnodes); 14 MPI_Comm_rank(MPI_COMM_WORLD,&mynode); 15 16 array =new double[nitems]; 17 18 if(mynode ==0){ 19 for(i=0;i<nitems;i++) 20 array[i]=(double)i; 21 } 22 23 if(mynode==0) 24 for(i=1;i<totalnodes;i++) 25 MPI_Send(array,nitems,MPI_DOUBLE,i, 1,MPI_COMM_WORLD); 26 else 27 MPI_Recv(array,nitems,MPI_DOUBLE, 0,1,MPI_COMM_WORLD,&status); 28 29 for(i=0;i<nitems;i++){ 30 cout <<"Processor "<<mynode; 31 cout <<":array["<<i <<"]="<<array[i]<<endl; 32 } 33 34 delete[]array; 35

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 124: Parallelism

122

36 MPI_Finalize(); 37 }

:تحليل البرنامج

).14 حىت 12األسطر ( و مجع املعلومات MPIقمنا يف البداية بتهيئة • .بعد ذلك قمنا بإنشاء مصفوفة على كل إجرائية باستخدام احلجز الديناميكي للذاكرة •

)16السطر (قمنا بتهيئة املصفوفات لتحتوي على قيمة ، )mynode=0أي أن ( فقط P0على اإلجرائية • .)21 حىت 18األسطر من (الدليلمتغري ).totalnodes-1( بعدد MPI_Send اإلرسالنقوم باستدعاء روتني ، P0على اإلجرائية •

)25 حىت 23األسطر من ( وذلك السـتقبال MPI_Recv نقوم باستدعاء P0 اإلجرائية عدا اإلجرائياتعلى كل • .)27 و 26األسطر من (الرسالة حـىت 29األسطر من ( واالستقبال اإلرسالعلى كل إجرائية نقوم بطباعة ناتج عملية •

32(. .)34السطر (نقوم بتحرير املوضع الذاكرة الذي حتتله املصفوفة، على كل إجرائية•

)Ring( حلقة ضمن المعطياتإرسال برنامج

وظيفة هذا الربنامج هي مجع أرقام املعاجلات عن طريق تراسل املعاجلات بأسلوب احللقـة عرفنا سابقا أن كل معاجل يعطـى رقـم (ويتم مترير أرقام املعاجلات خالل احللقة ليتم مجعها

يف . ٣ + ٢ + ١ + ٠ة فمثال لو كان لدينا أربعة معاجلات فسيتم مجع القيم التالي ) خاص به .الربامج املتقدمة تكون البيانات املرسلة ذات قيمة وليس جمرد القيام مبثل هذه العملية

#include "mpi.h" #include <iostream.h>

/*Set up communication tags (these can be anything)*/ const int to_right=201;

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 125: Parallelism

123

const int to_left=102;

void main (int argc,char *argv[]) { int value,new_value,procnum,numprocs; int right,left; int sum,i;

MPI_Status recv_status;

/*Initialize MPI */ MPI_Init(&argc,&argv);

/*Find out this processor number */ MPI_Comm_rank(MPI_COMM_WORLD,&procnum); /*Find out the number of processors */ MPI_Comm_size(MPI_COMM_WORLD,&numprocs);

/*Compute number of the processor to the right */ right =procnum +1; if (right ==numprocs) right =0;

/*Compute number of the processor to the left */ left =procnum -1; if (left ==-1)left =numprocs-1;

sum =0; value =procnum;

for(i =0;i <numprocs;i++){

/*Send to the right */ MPI_Send(&value,1,MPI_INT,right,to_right, MPI_COMM_WORLD);

/*Receive from the left */ MPI_Recv(&new_value,1,MPI_INT,left,to_right, MPI_COMM_WORLD,&recv_status);

/*Sum the new value */ sum =sum +new_value;

/*Update the value to be passed */ value =new_value;

/*Print out the partial sums at each step */ cout<<“PE ”<<procnum<<“: Partial sum =”<<sum<<endl; }

/*Print out the final result */ if (procnum ==0){ cout<< ”Sum of all processor numbers =” << sum << endl; } /*Shut down MPI */ MPI_Finalize();

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 126: Parallelism

124

return; }

:فسيكون له الخرج التالي، إذا شغل البرنامج السابق على جهاز بأربع معالجات

PE 1: Partial sum =0 PE 2: Partial sum =1 PE 3: Partial sum =2 PE 0: Partial sum =3 PE 1: Partial sum =3 PE 2: Partial sum =1 PE 3: Partial sum =3 PE 0: Partial sum =5 PE 1: Partial sum =5 PE 2: Partial sum =4 PE 3: Partial sum =3 PE 0: Partial sum =6 PE 1: Partial sum =6 PE 2: Partial sum =6 PE 3: Partial sum =6 PE 0: Partial sum =6 Sum of all processor numbers =6

جمع سلسلة أعدادبرنامجحبيث نريد أن جنمع كل األعداد بداية من ، فيما يلي سوف نقوم بربجمة مثال عددي بسيط

:يف البداية سوف نرى التطبيق للكود التسلسلي. ١٠٠٠ وحىت ١العدد #include<iostream.h> int main(int argc,char **argv) { int sum;

sum =0;

for(int i=1;i<=1000;i=i+1) sum = sum + i;

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 127: Parallelism

125

cout << "The sum from 1 to 1000 is:" << sum << endl; }

املعتادة واليت تعمـل علـى تسلسليةالطريقة ال يقوم جبمع األعداد ب وضح أعاله الكود امل مع انـه لـيس (ولكن ماذا لو أردنا أن نؤدي هذا العمل على عدة معاجلات؟ ، معاجل واحد

وإمنا املقصود يف هذا املثال هـو شـرح ، هنالك حاجة يف مثل هذا العمل إىل عدة معاجلات ). كيفية جتزيء املسألة وبرجمتها

وحـىت 1لنفرض أن لدينا معاجلني ونريد من املعاجل األول أن يقوم جبمع األعداد مـن ويف النهايـة جتمـع ، 1000 وحـىت 501أما املعاجل الثاين فسيقوم جبمع األعداد من ، 500

يف الـشكل . 1000 وحىت 1القيمتان الناجتتان معا للحصول على الناتج الكلي لألعداد من Pواملسألة جمزئـة إىل ) P=8 ):3-4(يف الشكل ( معاجل Pفيه لدينا و، رسم ختطيطي عام )4-3(

وذلـك P0 و عندما تنتهي مجيع املعاجلات تقوم بإرسال النواتج إىل املعـاجل ،مسألة فرعية .للتجميع النهائي للناتج

تتجمع آل المعلومات إلى معالج واحد باستخدام اإلرسال واالستقبال ):3-4(شكلال

:MPI من خالل سنقوم بتجزيء العملية

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 128: Parallelism

126

الـيت جرائيـات الكلـي لإل عرف العدد ت أن ا ميكن هل إجرائيةسابق أن كل ال يفورد عرف ت أن جرائيةوورد أيضا كيف لإل ، )MPI_Comm_sizeعن طريق استخدام (م خدستست

خيزن نـاتج mynodeولنفرض أن املتغري ). MPI_Comm_rankباستخدام (ا أو رتبته انفسه سيخزن ناتج اسـتدعاء totalnodesولنفرض أيضا أن املتغري ، MPI_Comm_rankاستدعاء

MPI_Comm_size . معطاة بالكود اإلجرائيات وعلى هذا فالصيغة لتقسيم عملية اجلمع عرب :التايل

startval = 1000*mynode/totalnodes+1;

endval = 1000*(mynode+1)/totalnodes;

، mynode =0 وسـتكون totalnodes =1ستخدم معاجل واحد فقط فستكون ن ناإذا كستخدم معاجلني ن اأما إذا كن. endval =1000 والنهاية startval=1وإذن ستكون نقطة البداية

سـتكون mynode =0عنـد . 1 أو 0 إمـا mynode و ستكون totalnodes =2فستكون startval =1 و endval =500 ، أما عندmynode =1 سـتكون startval =501 و endval

كل معـاجل عندها يقومس، معاجل 1000 هنالك حىت يكون االستمرار وهكذا ميكن . 1000=يبدأ ترقيم املعاجلات (وسترسل كل القيم إىل املعاجل صفر !) ليس هناك مجع (بأخذ عدد واحد

. للتجميع)من صفر عندما يكون لدينا قيمة بداية وقيمة هناية لعملية اجلمع فإن كل معاجل ميكن أن ينفـذ

وبعد أن ينتهي كل . endval و startval واليت تقوم بتجميع القيم اليت بني forعبارة التكرار بإرسالستقوم ) ماعدا املعاجل صفر(معاجل من حساب اجملموع املوكل إليه فإن مجيع املعاجلات

.وهبذا حنصل الناتج الكلي، اجملموع الذي حصلت عليه إىل املعاجل صفر

: إلجناز العملية السابقةC++/MPI التايل هو برنامج الربنامج

#include<iostream.h> #include<mpi.h>

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 129: Parallelism

127

int main(int argc,char **argv) { int mynode,totalnodes; int sum,startval,endval,accum; MPI_Status status; MPI_Init(argc,argv); MPI_Comm_size(MPI_COMM_WORLD,&totalnodes);//get totalnodes MPI_Comm_rank(MPI_COMM_WORLD,&mynode); //get mynode sum =0; //zero sum for accumulation startval =1000*mynode/totalnodes+1; endval =1000*(mynode+1)/totalnodes; for(int i=startval;i<=endval;i=i+1) sum =sum +I; if(mynode!=0) MPI_Send(&sum,1,MPI_INT,0,1,MPI_COMM_WORLD); else for(int j=1;j<totalnodes;j=j+1) { MPI_Recv(&accum,1,MPI_INT,j,1,MPI_COMM_WORLD, &status); sum =sum +accum; } if(mynode ==0) cout <<"The sum from 1 to 1000 is:"<<sum <<endl; MPI_Finalize(); }

________________________

ديالفر- الفرز الزوجيبرنامج

وهي ، الفردي-هذا الربنامج بفرز جمموعة أعداد بطريقة خوارزمية الفرز الزوجي يقوم أمثلـة للخوارزميـات "إحدى اخلوارزميات اليت شاهدناها يف الفصل الثالث ضمن القسم

:ولكن قبل كتابة الربنامج املتوازي سنكتب الربنامج التسلسلي للخوارزمية". املتوازية

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 130: Parallelism

128

void ODD_EVEN(int n){ int i,j,temp; for(i=1;i<=n;i=i+1) { if(i%2==1){ for(j=0;j<=n/2-1;j=j+1) if(a[2*j]>a[2*j+1]) { temp=a[2*j]; a[2*j]=a[2*j+1]; a[2*j+1]=temp; } } else{ for(j=1;j<=n/2-1;j=j+1) if(a[2*j-1]>a[2*j]) { temp=a[2*j-1]; a[2*j-1]=a[2*j]; a[2*j]=temp; } } } }

.هناية الربنامج التسلسلي

:فيما يلي الربنامج املتوازي لنفس املسألة

#include <stdlib.h> #include <mpi.h> /* Include MPI's header file */ main(int argc, char *argv[]) { int n; /* The total number of elements to be sorted */ int npes; /* The total number of processes */ int myrank; /* The rank of the calling process */ int nlocal; /* The local number of elements, and the array that stores them */ int *elmnts; /* The array that stores the local elements */ int *relmnts; /* The array that stores the received elements */ int oddrank; /* The rank of the process during odd-phase communication */ int evenrank; /* The rank of the process during even-phase communication */ int *wspace; /* Working space during the compare-split operation */ int i; MPI_Status status;

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 131: Parallelism

129

/* Initialize MPI and get system information */ MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &npes); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); n = atoi(argv[1]); nlocal = n/npes; /* Compute the number of elements to be stored locally. */ /* Allocate memory for the various arrays */ elmnts = (int *)malloc(nlocal*sizeof(int)); relmnts = (int *)malloc(nlocal*sizeof(int)); wspace = (int *)malloc(nlocal*sizeof(int)); /* Fill-in the elmnts array with random elements */ srandom(myrank); for (i=0; i<nlocal; i++) elmnts[i] = random(); /* Sort the local elements using the built-in quicksort routine */ qsort(elmnts, nlocal, sizeof(int), IncOrder); // Determine the rank of the processors that myrank needs to communicate //during the odd and even phases of the algorithm */

if (myrank%2 == 0) { oddrank = myrank-1; evenrank = myrank+1; } else { oddrank = myrank+1; evenrank = myrank-1; } /* Set the ranks of the processors at the end of the linear */ if (oddrank == -1 || oddrank == npes) oddrank = MPI_PROC_NULL; if (evenrank == -1 || evenrank == npes) evenrank = MPI_PROC_NULL; /* Get into the main loop of the odd-even sorting algorithm */ for (i=0; i<npes-1; i++) { if (i%2 == 1) /* Odd phase */ MPI_Sendrecv(elmnts, nlocal, MPI_INT, oddrank, 1, relmnts, nlocal, MPI_INT, oddrank, 1, MPI_COMM_WORLD, &status); else /* Even phase */ MPI_Sendrecv(elmnts, nlocal, MPI_INT, evenrank, 1, relmnts, nlocal, MPI_INT, evenrank, 1, MPI_COMM_WORLD, &status); CompareSplit(nlocal, elmnts, relmnts, wspace, myrank < status.MPI_SOURCE); } free(elmnts); free(relmnts); free(wspace); MPI_Finalize(); } /* This is the CompareSplit function */ CompareSplit(int nlocal, int *elmnts, int *relmnts, int *wspace, int keepsmall) { int i, j, k;

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 132: Parallelism

130

for (i=0; i<nlocal; i++) wspace[i] = elmnts[i]; /* Copy the elmnts array into the wspace array */ if (keepsmall) { /* Keep the nlocal smaller elements */ for (i=j=k=0; k<nlocal; k++) { if (j == nlocal || (i < nlocal && wspace[i] < relmnts[j])) elmnts[k] = wspace[i++]; else elmnts[k] = relmnts[j++]; } } else { /* Keep the nlocal larger elements */ for (i=k=nlocal-1, j=nlocal-1; k>=0; k--) { if (j == 0 || (i >= 0 && wspace[i] >= relmnts[j])) elmnts[k] = wspace[i--]; else elmnts[k] = relmnts[j--]; } } } /* The IncOrder function that is called by qsort is defined as follows */ int IncOrder(const void *e1, const void *e2) { return (*((int *)e1) - *((int *)e2)); }

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 133: Parallelism

131

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا

Page 134: Parallelism

132

@áçcÉuaŠ½a@ @[1] Daniel C.Hyde. Introduction to the Principles of Parallel Computation. Bucknell University, 1998

[2] Daniel C.Hyde. Introduction to the Programming Language Occam. Bucknell University, 1995

[3] Jim Buyens, Microsoft frontPage Version 2002 Inside Out, MSPress, 2001

[4] Karniadakis, G., and Kirby II, R., Parallel Scientific Computing in C ++and MPI. Cambridge University Press, 2003.

[5] Kumar, V , Gupta, A., Karypis, G., and Grama, A., Introduction to Parallel Computing, Second Edition. Addison Wesley Publishers, 2003.

[6] Message Passing Interface (MPI), http://www.mhpcc.edu/training/workshop/mpi/MAIN.html

[7] Microsoft Computer Dictionary, Fifth Edition. MSPress, 2002.

[8] Mikhail J. Atallah. Algorithms and Theory of Computation Handbook. CRC Press, 1998

[9] Null, L., and Lobur, J., The Essentials of Computer Organization and Architecture. Jones and Bartlett Publishers, 2003.

[10] Parhami, B., Introduction to Parallel Processing Algorithms and Architectures. KLUWER ACADEMIC PUBLISHERS, 2002

[11] Richard Jenkins. Supercomputers of today and tomorrow. TAB BOOKS Inc., 1986.

[12] TOP500 Supercomputer site, http://www.top500.org/.

[13] Tutorial on Message Passing Interface Programming MPI(MPICH for Windows)

[14] Message Passing Interface (MPI) Programming Lab http://www.dhpc.adelaide.edu.au/education/CS7933/lab/MPI/MPIlab.html

.2001، للعلومالعربيةالدار ، معجم مصطلحات الكمبيوتر [15]

.2001، مكتبة العبيكان. المعجم الشامل لمصطلحات الحاسب اآللي واإلنترنت. الربيعي وآخرون [16]

و الخوارزميات المتوازيةالمتوازيةلحاسبات ا