شیوه های موازی سازی parallelization methods

44
LOGO ی ی ساز واز م های وه ی شparallelization methods ازی ث ن ان ده ج ث ع س ی م ش ر ها کت د- ی واز م ش ’رداز پ ه دزش* ازائ رداد خ91 Parallelization methods

Upload: bayle

Post on 24-Jan-2016

69 views

Category:

Documents


20 download

DESCRIPTION

Parallelization methods. شیوه های موازی سازی parallelization methods. سعیده جان نثاری ارائه درس پردازش موازی - دکتر هاشمی خرداد 91. بسم الله الرّحمن الرّحیم سبحانَ ربِّک ربِّ العزّة عمّا یَصفون و سلامٌ علی المرسَلین و الحمدُ للهِ ربِّ العالمین. فهرست. مقدمه. 1. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: شیوه های موازی سازی parallelization methods

LOGO

شیوه های موازی سازی

parallelization methods

سعیده جان نثاریارائه درس پردازش موازی- دکتر هاشمی

91خرداد

Parallelization methods

Page 2: شیوه های موازی سازی parallelization methods

2

حیم �حمن الر �بسم الله الر-صفون و سالم& ة عم�ا ی �3ک رب3 العز سبحان- ربلین و الحمد: لله9 رب3 العالمین علی المرس-

Page 3: شیوه های موازی سازی parallelization methods

فهرست

مقدمه 1

2متدلوژی طراحی برنامه موازی

تکنیک های تجزیه3

تعادل بار 4

تکنیک های توزیع 5

مراجع6

Page 4: شیوه های موازی سازی parallelization methods

مقدمه

•Implicit

parallelism

•placement

•Explicit

parallelism

•Decomposition

•Mapping

•Communication

structure

برنامه سازی موازی

دو راهکار اصلی برای برنامه سازیموازی :

توازی ضمنی•زبان های موازی و کامپایلرهای موازی •

سازی

تعیین زمان بندی محاسبات و جایابی •داده بدون دخالت کاربر

توازی صریح•مسئولیت برنامه نویس: تجزیه وظایف، •

نگاشت وظایف به پردازنده ها، ساختار ارتباطی

فرض: کاربر بهترین قضاوت را در •چگونگی به کارگیری توازی دارد.

[1مرجع: ] 4

Page 5: شیوه های موازی سازی parallelization methods

5

مقدمه

•task

طراحی الگوریتم های موازی

:قانون ط__وري باي__د م__وازي الگ__وريتم یک

ط_راحي ش_ده باش_د ک_ه اف_زايش حجم مس_ئله ب_ه اف_زايش تع_داد وظ_ایف در آن

منجر شود؛ نه افزايش حجم وظایف.

الگ_وريتم • ي_ک در ق_انوني چ_نين اگ_ر تع__داد اف__زايش ب__ا نش__ود، رع__ايت به_تري ک_ارايي ت_وان نمی ه_ا پردازن_ده

بدست آورد.

با ب_زرگ ش_دن مس_ئله، وظ_ایف جدي_دي •ن_يز ب_ه مجموع_ه قبلي اض_افه مي ش_وند ه_ا ي پردازن_ده بوس_يله توانن_د مي ک_ه

جديد پردازش شوند.

[5مرجع: ]

Page 6: شیوه های موازی سازی parallelization methods

6

متدلوژی طراحی برنامه موازی

•Methodical

design

•Design

methodology

طراحی روش مند الگوریتم های موازی

دستورالعمل ساده ای برای طراحیالگوریتم موازی وجود ندارد.

استفاده از راهکارهای روش منددر اختیار گذاشتن طیفی از پیشنهادها•

مکانیزم هایی برای ارزیابی پیشنهادها•

کاهش هزینه بازگشت از انتخاب •نادرست

متدلوژی طراحیتمرکز روی مسئله فارغ از ماشین•

تأخیر انداختن توجه به ماشین در •فرایند طراحی

[1مرجع: ]

Page 7: شیوه های موازی سازی parallelization methods

7

متدلوژی طراحی برنامه موازی

•partitioning

•Communication

•Agglomeration

•Mapping

[3 ، 1مرجع: ]

جزء بندی

ارتباط

انباشتگی

نگاشت

متدلوژی طراحی<فرایند طراحی

پیشنهادIan Foster[ سازمان دهی 3 در :]فرایند طراحی برنامه موازی در چهار

مرحله:

Page 8: شیوه های موازی سازی parallelization methods

8

متدلوژی طراحی برنامه موازی

•Decomposition

•Domain/data

decomposition

•Functional

decomposition

مرحله اول: جزءبندی

مرحله اول: جزءبندی تجزیه کارهای محاسباتی و داده ای که

روی آن کار می شود، به چندین وظیفه کوچک

تجزیه داده: تجزیه دامنه/داده و تجزیهتابعی

توضیح در بخش های بعد•

نادیده گرفتن مسائلی مانند تعداد پردازندههای کامپیوتر هدف

تمرکز در یافتن فرصت های اجرای •موازی

[3 ، 1مرجع: ]

Page 9: شیوه های موازی سازی parallelization methods

9

متدلوژی طراحی برنامه موازی

•Flow of

Information

•Communication

patterns

مرحله دوم: ارتباطات

مرحله دوم: ارتباطات تمرکز روی جریان اطالعات و

هماهنگی میان وظایف ایجاد شده در خالل مرحله جزءبندی

الگوهای ارتباطی بین وظایف وابستهبه طبیعت مسئله و متد تجزیه تعیین

می شود.

[3 ، 1مرجع: ]

Page 10: شیوه های موازی سازی parallelization methods

10

متدلوژی طراحی برنامه موازی

•Local/Global

•Structured

•Static/Dynamic

•Synchronous/

Asynchronous

مرحله دوم: ارتباطات )ادامه(

[3 ، 1مرجع: ]

الگوهای ارتباطی متداول در برنامه های موازی

محلی/جهانی

ساختار یافته/ساختار نایافته

ایستا/پویا

همگام/غیرهمگام

Page 11: شیوه های موازی سازی parallelization methods

11

متدلوژی طراحی برنامه موازیمرحله دوم: ارتباطات )ادامه(

ارتباط_ات 1 در جه_اني: مقاب_ل در محلي -محلي ه_ر وظیف_ه تنه_ا ب_ا مجموع_ه ک_وچکي از وظ_ایف ديگ_ر ارتب_اط برق_رار مي کن_د. در مقاب_ل، در ارتباط_ات جه_اني، ه_ر وظیف_ه ب_ا

وظایف بسيار ديگر ارتباط برقرار مي کند.

و 2 وظیف___ه ي___ک س___اختاريافته: -مانن_د مش_خص س_اختار ي_ک همس_ايه ها يش مقاب__ل، در مي دهن__د. تش__کيل را درخت ارتباط_ات س_اختارنيافته مط_رح مي ش_وند ک_ه ندارن_______د. خاص_______ي ش_______کل

[5مرجع: ]

Page 12: شیوه های موازی سازی parallelization methods

12

متدلوژی طراحی برنامه موازیمرحله دوم: ارتباطات )ادامه(

- ايس_تا در مقاب_ل پوي_ا: در ارتباط_ات ايس_تا 3زم_ان ط_ول در ارتب_اطي ش_رکاي م_اهيت تغي_ير نمي کن_د. در مقاب_ل، در ارتباط_ات پوي_ا تغي_ير اج_را زم_ان در دائم ط_ور ب_ه آن ه_ا

مي کنند.

- همگ_ام در مقاب_ل ناهمگ_ام: در ارتباط_ات 4همگ_ام توليد کنن_ده و مص_رف کننده مش_خص و ک_رده برق_رار ارتب_اط تع_املي و ش_ده عملي_ات انتق_ال داده را م_ديريت مي کنن_د. در مص_رف کننده ناهمگ_ام، م_دل در مقاب_ل، و مش__ارکت ب__دون را داده ه__ا مي توان__د

همکاري توليد کننده دريافت کند.

[5مرجع:]

Page 13: شیوه های موازی سازی parallelization methods

13

متدلوژی طراحی برنامه موازی

[3 ، 1مرجع: ]

مرحله سوم: انباشتگی

مرحله سوم: انباشتگی ارزیابی وظایف و ساختار ارتباطی از

نظر کارایی و هزینه پیاده سازی تلفیق برخی از وظایف به عنوان

وظیفه بزرگتر جهت بهبود کارایی یا کاهش هزینه توسعه

Page 14: شیوه های موازی سازی parallelization methods

14

متدلوژی طراحی برنامه موازی

•Load balancing

[3 ، 1مرجع: ]

مرحله چهارم: نگاشت

مرحله چهارم: نگاشتانتساب هر وظیفه به یک پردازنده:تالش برای

بیشینه شدن بهره وری از منابع سیستم•

کمینه شدن هزینه ارتباطی•

:اخذ تصمیمات نگاشتبه صورت ایستا←در زمان کامپایل•

به صورت پویا←در زمان اجرا←با متدهای •تعادل بار

Page 15: شیوه های موازی سازی parallelization methods

15

متدلوژی طراحی برنامه موازی

[5مرجع: ]

مرحله چهارم: نگاشت )ادامه(

:تالش برای کاهش زمان اجرا- قراردادن وظایفی که قادر به کارکرد 1

موازي هستند در پردازنده ها ي مختلف براي افزايش همزماني.

- قراردادن وظایفی که به ارتباطات 2فراوان نياز دارند روي يک پردازنده براي

localityافزايش

o به طور مشخص اين دو راهبرد در مواردي بايکديگر در تناقض قرار مي گيرند و در اين هنگام

است که ما در شرايط انتخاب قرار مي گيريم.

o از طرف ديگر، محدوديت منابع جلوي قرار دادنوظایف زياد در يک پردازنده را مي گيرد.

Page 16: شیوه های موازی سازی parallelization methods

16

متدلوژی طراحی برنامه موازی

[5مرجع: ]

مرحله چهارم: نگاشت )ادامه(

به طور کلي مسئله نگ_اشت به NP-Completeعنوان يک مسئ_له

محسوب مي شود و به اين ترتيب هيچ الگوريتم چند جمله اي با فاكتور

ها در Trade-offزمان براي ارزيابي اين حالت کلي وجود ندارد.

Page 17: شیوه های موازی سازی parallelization methods

17

متدلوژی طراحی برنامه موازی

[3مرجع: ]

Page 18: شیوه های موازی سازی parallelization methods

18

تکنیک های تجزیه

• Decomposition

•Domain

•Control

•Object-oriented

•Layered

[2مرجع: ]

تکنیک های تجزیه

[ 2انواع تکنیک های تجزیه ارائه شده در :]

تجزیه دامنه ای

تجزیه کنترلی

تجزیه شیءگرایی

تجزیه الیه ای

Page 19: شیوه های موازی سازی parallelization methods

19

تکنیک های تجزیه

[2مرجع: ]

تکنیک های تجزیه )ادامه(

شرح تکنیک های تجزیه برنامه مبتنی بردامنه داده، ساختار کنترلی، عملکرد و

مفاهیم شیءگرایی

هدف نهایی همواره رسیدن به کارایی باالاست.

:اهداف میانیتعادل بار•

کمینه کردن سربار ارتباطی•

کاهش گلوگاه های سریال•

مقیاس پذیر کردن برنامه•

Page 20: شیوه های موازی سازی parallelization methods

20

تکنیک های تجزیه

[2مرجع: ]

تکنیک تجزیه دامنه ای

اگر یک محاسبه مبتنی بر ساختمان دادهبزرگ و ایستا باشد و میزان کار الزم بر � یکسان باشد، روی هر عنصر داده تقریبامی توان تنها ساختمان داده را جزءبندی

کرد.

این تکنیک برنامه سازی موازی، تجزیهدامنه ای نام دارد.

:طیف وسیعی از کاربردها مانندمدل های فیزیکی•

محاسبات ماتریسی•

مدیریت پایگاه داده و پایگاه دانش•

Page 21: شیوه های موازی سازی parallelization methods

21

تکنیک های تجزیه

•Flow of control

•Perfect decomposition

•Data Set

[2مرجع: ]

تکنیک تجزیه دامنه ای )ادامه(

برای انتخاب بهترین متد تجزیه برای یککاربرد داده شده، باید فرمولهای ریاضی،

دامنه داده، الگوریتم مورد استفاده و جریان کنترلی )الگوی ارتباطی( دانسته

شود.

تجزیه دامنه ای کامل: بدین صورت کهبرنامه سریالی که روی یک پردازنده اجرا می شود، روی بقیه پردازنده ها هم اجرا

می شود، هر کدام با مجموعه داده متفاوت.

اگر یک وابستگی بین پردازه ها وجودداشته باشد شرایط برای تجزیه کامل

خراب می شود.

Page 22: شیوه های موازی سازی parallelization methods

22

تکنیک های تجزیه

[2مرجع: ]

تکنیک تجزیه دامنه ای )ادامه(

تجزیه دامنه ای: سه نوع مسئله کاندید اینتکنیک تجزیه هستند:

مسئله با ساختمان داده ایستا•

مسئله با ساختمان داده پویا که به یک •موجودیت گره خورده اند

دامنه ثابت با محاسبات پویا با نواحی مختلف •دامنه

Page 23: شیوه های موازی سازی parallelization methods

23

تکنیک های تجزیه

•Functional decomposition

•Manager-worker approach

[2مرجع: ]

تکنیک تجزیه کنترلی

وقتی دامنه و ساختمان داده بی قاعده ونامنظم یا غیرقابل پیش بینی باشد، نمی

توان از تجزیه دامنه ای استفاده کرد.

پیشنهاد: تمرکز روی توزیع جریان کنترلمحاسبات

مثال از مسئله ای با دامنه نامناسب جهتتجزیه دامنه ای:

درخت جستجوی بی قاعده که ضریب انشعاب •نودها متفاوت است.

دو راهبرد برای تجزیه کنترلی بررسی میشود:

تجزیه تابعی•

راهکار مدیر-کارگر )بازگشتی(•

Page 24: شیوه های موازی سازی parallelization methods

24

تکنیک های تجزیه

•Functional modules

•overlap

[2مرجع: ]

تکنیک تجزیه کنترلی<تجزیه تابعی

تصور الگوریتم به صورت مجموعه ای ازماژول های تابعی به هم متصل.

جریان کنترلی با یال های مستقیم در مدلگراف نشان داده می شوند.

روی هم � برای مسائل بزرگ احتماالافتادگی زیادی بین ماژول ها وجود دارد.

Page 25: شیوه های موازی سازی parallelization methods

25

تکنیک های تجزیه

•Image understanding

[2مرجع: ]

تکنیک تجزیه کنترلی<تجزیه تابعی

مثال: مسئله درک تصویر

و تجزیه تابعی

Page 26: شیوه های موازی سازی parallelization methods

26

تکنیک های تجزیه

[2مرجع: ]

تکنیک تجزیه کنترلی<تجزیه تابعی

ماژول های تابعی متفاوت به � معموالپردازنده های مختلف انتساب داده می

شوند.

نودهای هیبرید برای نیازمندیهای تابعی نیازاست.

بعضی برای عملیات ممیز شناور•

بعضی برای دستکاری سمبول ها•

بعضی برای فعالیت های ورودی خروجی•

•...

Page 27: شیوه های موازی سازی parallelization methods

27

تکنیک های تجزیه

•Manager-worker approach

•Divide and conquer

[2مرجع: ]

تکنیک تجزیه کنترلی<راهکار مدیر-کارگر

راهکار مدیر-کارگر: یک تکنیک تقسیم وغلبه است.

به یک � تقسیم وظایف کاربرد، نه لزومااندازه

یک پردازه به عنوان نود مدیر و بقیه پردازهها نود کارگر در نظر گرفته می شوند.

نود مدیر وظایف را بین نودهای کارگرموجود توزیع می کند.

نود مدیر جهت عملیات ورودی/خروجی بامیزبان ارتباط برقرار می کند.

نود مدیر باید تعادل بار پویای نودهایکارگر را جهت افزایش کارایی کنترل کند.

Page 28: شیوه های موازی سازی parallelization methods

28

تکنیک های تجزیه

[2مرجع: ]

تکنیک تجزیه کنترلی<راهکار مدیر-کارگر

Page 29: شیوه های موازی سازی parallelization methods

29

تکنیک های تجزیه

•N-Queens

[2مرجع: ]

تکنیک تجزیه کنترلی<راهکار مدیر-کارگر

یافتن همه حل های مسئله 1مثال :N وزیر

Page 30: شیوه های موازی سازی parallelization methods

30

تکنیک های تجزیه

•Recursive decomposition

[4مرجع: ]

تکنیک تجزیه کنترلی<راهکار مدیر-کارگر

:تجزیه بازگشتی

مناسب برای مسائلی که می توانند باروش تقسیم و غلبه حل شوند.

هر زیرمسئله که در مرحله تقسیم تولیدمی شود یک وظیفه به شمار می آید.

زیرمسئله ها به صورت همروند حل میشوند؛ طبیعت مسئله بدین صورت است

که با حل زیرمسئله ها )در مرحله بازگشت( حل می شود.

Page 31: شیوه های موازی سازی parallelization methods

31

تکنیک های تجزیه

•Quick sort

[4مرجع: ]

تکنیک تجزیه کنترلی<راهکار مدیر-کارگر

مثال: مرتب سازی سریع با روشبازگشتی

Page 32: شیوه های موازی سازی parallelization methods

32

تعادل بار

•Load balancing

[4مرجع: ]

تعادل بار

نگاشت وظایف به گونه ای که نیازمندی� تعادل های محاسباتی برآورده شوند، لزوما

بار روی نودهای پردازشی را تضمین نمی کند.

Page 33: شیوه های موازی سازی parallelization methods

33

تعادل بارتعادل بار )ادامه(

تجزیه غیر یکنواخت و مشکل تعادل بار

:مثال: حلقه زیر را در نظر بگیریدfor i = 0 : N-1

if (x[i] > 0)x[i] = sqrt(x[i]);

با توزیع اعداد منفی در آرایه به اینصورت:

p1 p2

p3 p4

Page 34: شیوه های موازی سازی parallelization methods

34

تکنیک های توزیع

•Distribution

[4مرجع: ]

تکنیک های توزیع

توزیع وظایف در نگاشت ایستا

مناسب برای الگوریتم هایی که از تجزیهدامنه ای استفاده کرده اند و ساختمان داده ورودی، خروجی و میانی آن ها به

فرم آرایه است.

Page 35: شیوه های موازی سازی parallelization methods

35

تکنیک های توزیع

•Block Distribution

•Block-Cyclic Distribution

•Randomized Distribution

[4مرجع: ]

تکنیک های توزیع )ادامه(

انواع توزیع وظایف به پردازه ها

توزیع بلوکی

توزیع بلوکی-گردشی

توزیع تصادفی

Page 36: شیوه های موازی سازی parallelization methods

36

تکنیک های توزیع

[4مرجع: ]

تکنیک های توزیع<توزیع بلوکی

توزیع بلوکی یک بعدی: جزءبندی یک آرایه p، از یک بعد و توزیع بین m*nدو بعدی

پردازه.

توزیع بلوکی چند بعدی: جزءبندی را میتوان در بیش از یک بعد انجام داد.

برای یک آرایهd بعدی، حداکثر در d بعد می توان جزءبندی را انجام داد.

Page 37: شیوه های موازی سازی parallelization methods

37

تکنیک های توزیع

[4مرجع: ]

تکنیک های توزیع<توزیع بلوکی )ادامه(

:توزیع یک بعدی آرایه بین هشت پردازه

Page 38: شیوه های موازی سازی parallelization methods

38

تکنیک های توزیع

[4مرجع: ]

تکنیک های توزیع<توزیع بلوکی )ادامه(

4*4توزیع دو بعدی آرایه بین یک گرید پردازه ای 2*8( و یک گرید aپردازه ای )

(b:)

Page 39: شیوه های موازی سازی parallelization methods

39

تکنیک های توزیع

[4مرجع: ]

تکنیک های توزیع<توزیع بلوکی-گردشی

توزیع بلوکی-گردشی

ایده اصلی: جزءبندی آرایه چند بعدی بهتعداد بلوک هایی بیش از تعداد پردازه ها.

سپس اختصاص بلوک ها به پردازه ها در round-robinحالت

نتیجه: شانس بیشتری برای تعادل بار

Page 40: شیوه های موازی سازی parallelization methods

40

تکنیک های توزیع

[4مرجع: ]

تکنیک های توزیع<توزیع بلوکی-گردشی

( توزیع بلوکی-گردشی یک بعدیa( و دوبعدی )b)

Page 41: شیوه های موازی سازی parallelization methods

41

تکنیک های توزیع

[4مرجع: ]

تکنیک های توزیع<توزیع تصادفی

وقتی توزیع کار یک الگوی خاص داردممکن است توزیع بلوکی-گردشی هم

تعادل بار کافی ایجاد نکند. آرایه به بلوک هایی بیش از تعداد

پردازه ها جزءبندی می شود. پردازه ها به تعداد مساوی اما به

صورت تصادفی از بلوک ها برمی دارند.

نتیجه: برای بعضی مسائل تعادل بارخوبی ایجاد می کند.

Page 42: شیوه های موازی سازی parallelization methods

42

تکنیک های توزیع

[4مرجع: ]

تکنیک های توزیع<توزیع تصادفی

مثال: ماتریس خلوت

Page 43: شیوه های موازی سازی parallelization methods

43

مراجع

[1] Luis Moura E Silva, Rajkumar Buyya: Parallel Programming Models and Paradigms, chapter 1;

available at http://cseweb.ucsd.edu/classes/wi10/cse160/Lectures/LoadBalancing.html

[2] Hwang: Advanced Computer Architecture: Parallelism, Scalability, Programmability; chapter 11.

available at http://software.iut.ac.ir

[3] Ian Foster: Designing and Building Parallel Programs, 1996;

available at http://www.mcs.anl.gov/dbpp

[4] A. David: Task Decomposition and Mapping; Aalborg University;

available at http:// people.cs.aau.dk/~adavid/teaching/MVP-08/summer.html

[5] http://www.shabakeh-mag.com/Article.aspx?id=1005457

مراجع

Page 44: شیوه های موازی سازی parallelization methods

LOGO