ارزیابی الگوریتمها
Download
Report
Transcript ارزیابی الگوریتمها
Chapter 1
ارزیابی الگوریتم ها
معیار ارزیابی الگوریتم ها:
.1حافظه مصرفی الگوریتم
.2زمان مصرفی الگوریتم
.3هزینه الگوریتم یا Cost
2 of 57
حافظه مصرفي:
شمردن حافظه استفاده شده یا متغیرهای مصرفی .
(این مالک مهم نیست)
3 of 57
زمان مصرفي ): T(n
شمارش دستورات طوری که هر دستور از هر نوعی یک واحد زمان.
بایستی stepها شمارش شود:
( Basic step .1مراحل عادی)
(Computing step .2انجام اعمال محاسباتی و منطقی)
( Routing step .3پاسکاری داده بروی پردازنده ها)
4 of 57
هزينه:
)Cost=p(n).t(n
تعداد پردازنده ها = )p(n
زمان مصرفی = )T(n
درالگوریتم های سنتیP(n)=1است پس).Cost=t(n
Cost seq <= Cost par
θ <= Cost par
5 of 57
تسریع:
هدف الگوریتم های موازی:
کاهش زمان مصرفی یا speed upمیباشد.
زمانworseسریعترین الگوریتم seq
زمانworseسریعترین الگوریتم par
Tseq
S
Tpar
6 of 57
= Speead up
مثال:
searchدر یک آرایه نا مرتب nخانه ای.
در حالت موازی nداده بین Nپردازنده تقسیم میشود.
P=N
)Cost seq=1*O(n
)Cost par=N*O(n/N)=O(n
7 of 57
كارایی :Efficiency
Costیک الگوریتم در حالتseq
*100%
Costیک الگوریتم در حالتpar
8 of 57
=E
كارایی :EFFICIENY
در حالت ایده آل توقع داریم تسریع ما با افزایش تعداد pها به nبا nبرا
بر میشود .
E = N/N*100%= 100%
پس اگر s=Nباشد داریم .
par
= Cost
seq
پس در حالت ایده ال )(s=N
S=N
تسریع همیشه زیر خط S=Nقرار دارد .
9 of 57
Cost
قانون امدال : amdal
• امکانی وجود ندارد که یک الگوریتم با Nپردازنده شروع کند و به
پایان برسد .
• هر الگوریتمی با یک پردازنده شروع بکار میکند .
درهمه نمودارها در این قسمت کارایی را از دست میدهیم
N
N
1
T
سنکرونیزاسیون
10 of 57
...قانون امدال :
در همه فضاهای خالی کارایی را از دست میدهیم
’f
’parallel f <<f
f
’sequential f ∾ f
11 of 57
...قانون امدال :
12 of 57
...قانون امدال :
• امدال گفت s=Nایده آل است اما چون هر الگوریتمی با
یک پردازنده شروع بکار میکند پس مقداری کارایی از
دست میدهیم پس حداکثر S=Nاست و کارایی همیشه
کمتر از خط s=Nاست .
• بعبارت دیگر امدال گفت هر الگوریتمی باید به حالت
سلایر شروع شود تا در حالت موازی ادامه پیدا کند .
• حال باید یک حد پایین نیز برای الگوریتم های موازی
مشخص کنیم.
13 of 57
قانون مینسكی : minsky
S log2N
حداقل سریع
پس باید الگوریتم موازی در فضای هاشور خورده زیر باشد:
s=N
S log2N
14 of 57
...قانون مینسكی :
عوامل تاثیر گذار بر تسریع از نظر مینیسکی:
.1
.2
.3
.4
.5
.6
پهنای باند IOو حافظه
وابستگی داده ای
وابستگی دستورالعمل
زمان سنکرونیزاسیون
زمان سربار
چگونگی شکستن مساله
چطور نکات باال را دخالت دهیم؟
15 of 57
قانون : worlton
تعداد taskها باید حداقل شود .فرض کنید:
= Nتعداد taskها
=tمتوسط زمان پردازش هر task
=pتعداد پردازندها
=tsزمان سنکرونیزاسیون
=toزمان سربار
حال:
Tseq = N.t
)Tpar = ts +[N/p](t+to
) (t+toزمان اجرای هر task
]:[N/pتعداد Stepها
16 of 57
21 of 57
قانون مينسكي : minsky
پس تسریع برابر است با:
طرفین را بر N.tتقسیم میکنیم :
N .t
S
N
ts
) (t to
P
1
1
to
) (1
P
t
برای اینکه تسریع حداکثر شود بایستی:
17 of 57
s
ts
N .t
S
قانون : worlton
-1کاهش زمان . to,ts
-2افزایش . t
-3افزایش . p
-4افزایش . N
افزایش تعداد پردازندها بخاطر اینکه کارایی را نابود میکند مناسب نیست:
P
∞ : E=S / P
0
با افزایش )N→ ∞( Nدر فرمول اول داریم :
N
∞ ∞ : S=∞ /
رفع ابهام:
P
to
1
t
S
t
1
)(t to
P
18 of 57
N
0
lim
مثال:
برای یک مساله با مفروضات زیر S,Eرا محاسبه کنبد .
3
2
(T seq= )n / 3( – )n / 3
2
T par=(n - 1) (n / 2) / P
پس الگوریتم یک الگوریتم کارا است.
19 of 57
مثال:
در این مساله تسریع و کارایی چقدر است؟
20 of 57
...مثال:
21 of 57
وابستگي :
وابستگی سه دسته است:
22 of 57
...وابستگی :
23 of 57
...وابستگي :
نكته :اگر در وابستگي داده ای حلقه رخ داده باشد به بن بست
رسیده ایم و باید بصورت seqپیاﺪه سازی کنیم.
• اگرهمه گره ها به یک سمت باشد و حلقه ای وجود نداشته
باشد گراف ما گراف آبشاری خواهد بود.
24 of 57
مثال:1
برای برنا مه روبرو یک گراف وابستگی رسم کنید.
25 of 57
مثال:2
نکته :زمانیکه در حلقه متغیرهای اسکالر (مانند )jداریم ممکن است وابستگی های دیگری
ایجاد کند.
26 of 57
مثال:3
بین s2و s3حلقه ایجاد شده است و این حلقه باعث کاهش موازي سازي میشود.
27 of 57
مثال:4
28 of 57
مثال:5
29 of 57
مثال:6
30 of 57
...وابستگی :
در کل:
-1هر وقت :اندیس حلقه منفی بود ارتباط با مرحله بعدی و
اندیس حلقه مثبت بود ارتباط با مرحله قبلی.
-2متغیر های اسکالر باعث ایجاد وابستگی بین تکرارهای مختلف.
-3در حلقه های doallمتغیر های برداری باعث ایجاد وابستگی نمیشوند.
-4در حلقه های doacrossمتغیر های برداری نیزباعث ایجاد وابستگی می
شوند.
نکته :وابستگی data flowبه ذات برنامه مربوط است.
نکته :وابستگی های anti dataو outputمعموالً بخاطر رعایت نشدن برنا
مه نویسی موازی رخ میدهد.
31 of 57
: حذف وابستگی ها
:سه روش برای حذف وابستگی ها وجود دارد
Variable Renaming .1
Scaler Expantion .2
Node Spliting .3
32 of 57
: Variable Renaming -1
:مثال
S3:AA=A*D
انجام میدهیمRenaming یکA رویS3 در قانون
33 of 57
: Scaler Expantion -2
هدفش حذف وابستگی های ناشی از متغیر های اسکالر می باشد پس یک
متغیر اسکالر را به یک متغیر برداری تغیر میدهد.
مثال:
FOR I=1 to 100 do
S1: b=B(I)-2
)S2: C=C’(I)-B(I
S3: A(I)=b+C
END.
)bb’(I
تغییرات مقابل را اعمال و برنامه را بازنویسی میکنیم:
)CC(I
34 of 57
:Scaler Expantion…
FOR I=1 to 100 do
S1: b’(I)=B(I)-2
S2: C(I)=C’(I)-B(I)
S3: A(I)=b’(I)+C(I)
END.
35 of 57
: Node Spliting -3
وابستگی بین متغیرهای برداری در حلقه های doacrossرا حذف
میکند .برای این منظور متغیر برداری را با یک متغیر برداری دیگر
renameمیکند تا اندیس های انها یکسان شود و تبدیل به یک حلقه
doallگردد.
مثال:
FOR I=1 to 100 do
)S1: A(I)=B(I)-C(I
S2: D(I)=A(I)+2
)S3: F(I)=D(I)+A(I+1
END.
36 of 57
…:Node Spliting
برنامه را بازنویسی میکنیم:
FOR I=1 to 100 do
)S0: AA(I)=A(I+1
)S1: A(I)=B(I)-C(I
S2: D(I)=A(I)+2
)S3: F(I)=D(I)+A(I+1
END.
خط S0را در هر کجا بگذاریم باز هم گراف ما آبشاری خواهد بود.
37of 57
وابستگي كنترل يا دستورالعمل:
این وابستگی در سطوح مختلف مطرح میشود :
.1در سطح بالک
.2در سطح :1 : statementدرون جمله
.3در سطح bit
مثال:
38 of 57
:2بین جمالت.
كاهش وابستگی:
• کامپایلر با در نظر گرفتن قوانینی مانند قوانین Brentم
یتواند حداکثر توازی سازی را انجام دهد.
• همچنین قوانینی مانند recursive doublingبرای
تبدیل درخت محاسبه نامتقارن به متقارن جهت ایجاد حد
اکثر توازی سازی وجود دارد.
• اکثر مشکالت در الگوریتم موازی به وابستگی داده بر
میگردد.
39 of 57
قوانین :Brent
در سال 1970برنت سه قاعده مطرح کرد که این قوانین مربوط
به درون جمله است وهدف این قواعد کاهش عمق درخت محا
سبه است.
این سه قانون عبارتند از:
.1اشتراک پذیری
.2جابجایی
.3توزیع پذیری
40 of 57
…قوانین :Brent
.1قانون اشتراک پذیری (: )Associativity
.2قانون جابجایی (:) Commutativity
.3قانون توزیع پذیری(:) Distributivity
41 of 57
:RECURSIVE DOUBLING
کامپایلرها برای اینکه بتواند با حداقل تعداد عملیات کار را انجام دهند و
وابستگی بین جمالت حداقل شود اینکار را انجام میدهد.
مثال:
درختی با عمق n-1
درختی کامال متقارن باعمق log n
42 of 57
:)PCMA(چهار چوب طراحی یك الگوریتم موازي
Partitioning .1
Communication .2
Agglomeration .3
Mapping .4
43 of 57
Pیا (: )Partitioning
در این مرحله مساله را به تعدادی زیر مساله یا taskخرد می
کنیم و هیچ توجهی به تعداد پردازنده ها و توپولوژی نداریم.
44 of 57
Cیا (: )Communication
وظیفه این مرحله استخراج انواع ارتباط میان taskها است
که از طریق داده یا پردازنده فراهم میشود.
رابطه های مختلف برای اینکار داریم :
45 of 57
…:) local/ global -1( C
مثال:
اگر برای محاسبه ي خانه ای از آرایه فقط از خانه های اطراف
آن استفاده کنیم localواگر از تمام آرایه استفاده کنیم global
است .
n
)( global
a
i, j
j 0
ai , j i 0
n
46 of 57
…:) structural /non structural -2( C
اگر بر اساس یک روش قانونمند taskها به پردازنده ها
Assignشوند stracturalاست و اگر فاقد قانون و
قواعد باشد به ان ارتباط non structuralمی گویند .
بر اساس قاعده ای که از ذات مساله بدست می آید می فهمیم که
taskها با قاعده یا بی قاعده به پردازنده assignشوند .
یکسری taskکه وارد پردازنده ای می شوند با هم مرتبط اند و
عامل ارتباط آنها پردازنده است.
47 of 57
…:) static / dynamic -3( C
در حالت staticبه صورت ثابت به یک پردازنده assignم
یشود و تا اخر روی ان پردازنده باقی می ماند.
در حالت dynamicیک taskمیتواند با تعدادی taskدر ا
رتباط باشد.
یک شکل توسعه یافته حالت dynamicتغیر توپولوژی است
که یک taskدائما ً بین پردازنده ها تغییر می کند.
48 of 57
Aیا (: )Agglomoration
بعد از اینکه وابستگی ها را ایجاد کردیم این مرحله به ما می گوید
که چه taskهای باید در کنارهم قرار بگیرد.
هدف Aعبارتست از:
: locality-1یعنی داشتن حداقل ارتباطات( taskهایی که با هم
کارمیکنند را روی یک پردازنده بگذاریم).
: load balance-2طوری نباشد که n-1تا taskدر یک
طرف و یك taskدر طرف دیگر باشد.
• Aیک مطالعه trade offبین آنها ایجاد می کند.
• در این مرحله از توپولوژی اثری نیست.
49 of 57
Mیا (: )Mapping
کار این مرحله مشخص نمودن چگونگی انتساب به توپولوژی
یا چگونگی انتخاب مجموعه taskها به پردازنده های یک
توپولوژی میباشد.
50 of 57
پارامتر هاي یك الگوریتم موازي:
در یك الگوریتم موازي باید 4پارامتر اصلي زیر meet
.1
.2
.3
.4
Concorrency
Scalability
Modularity
Locality
51 of 57
شود :
: Concorrency -1
• باید حداکثر همروندی را داشته باشیم .
• یک حالت مطلوب concorrencyهمان parallelim
میباشد.
52 of 57
: Scalability -2
• الگوریتم به تعداد پردازنده ها مربوط نباشد یا الگوریتم
محدود به پردازنده ها نباشد .
• بعبارت دیگر الگوریتم بتواند خود را با تعداد پردازنده
ها تطبیق دهد.
53 of 57
: Modularity -3
• گروه taskهایی که میخواهند بصورتconcorence
اجرا شوند(انجام شوند) حداقل وابستگی را داشته باشند.
• به عبارت دیگر حداقل وابستگی بین taskهایی که با ه
م به صورت همروندی اجرا میشوند وجود داشته باشد.
54 of 57
: Locality -4
• هر پردازنده از داده localخودش استفاده کند.
• چون افزایش تعداد دسترسیها به حافظه مشترک ممکن
است باعث کاهش کارایی شود( مثالً .) EREW
55 of 57
56 of 57
پایان
57 of 57