SlideShare a Scribd company logo
Ch3: Principles of Parallel Algorithm Design
‫موازی‬ ‫های‬ ‫الگوریتم‬ ‫طراحی‬ ‫اصول‬
Hello!
I am Keivan Mahdavi
You can find me at @kvnmahdavi
‫مقدمه‬
•‫الگوریتم‬‫ای‬‫دنباله‬‫از‬‫گام‬‫های‬‫اساسی‬‫برای‬‫حل‬‫مسئله‬‫داده‬‫شده‬‫با‬
‫استفاده‬‫از‬‫کامپیوتر‬‫است‬.
•‫الگوریتم‬‫موازی‬‫دستورالعملی‬‫است‬‫که‬‫به‬‫ما‬‫گوید‬‫می‬‫چگونه‬‫ی‬‫ک‬
‫مسئله‬‫را‬‫با‬‫استفاده‬‫از‬‫چند‬‫پروسسور‬‫حل‬‫کنیم‬.
‫الگوریتم‬ ‫یک‬ ‫تعیین‬‫موازی‬
◇Identifying portions of the work that can be performed concurrently.
‫مرحله‬‫شود‬ ‫اجرا‬ ‫موازی‬ ‫طور‬ ‫به‬ ‫تواند‬ ‫می‬ ‫آیا‬ ‫که‬ ‫کار‬ ‫یک‬ ‫شناسایی‬.
◇Mapping the concurrent pieces of work onto multiple processes running in parallel.
‫نگاشت‬‫شوند‬ ‫می‬ ‫اجرا‬ ‫موازی‬ ‫طور‬ ‫به‬ ‫که‬ ‫پروسه‬ ‫چندین‬ ‫به‬ ‫کار‬ ‫یک‬ ‫موازی‬ ‫های‬ ‫قسمت‬.
◇Distributing the input, output, and intermediate data associated with the program.
‫برنامه‬ ‫با‬ ‫ارتباطشان‬ ‫و‬ ‫میانی‬ ،‫خروجی‬ ،‫ورودی‬ ‫های‬ ‫داده‬ ‫توزیع‬.
◇Managing accesses to data shared by multiple processors.
‫مدیریت‬‫داده‬ ‫به‬ ‫دسترسی‬،‫ها‬‫ش‬ ‫می‬ ‫استفاده‬ ‫اشتراکی‬ ‫طور‬ ‫به‬ ‫پردازنده‬ ‫چندین‬ ‫توسط‬ ‫که‬‫وند‬.
◇Synchronizing the processors at various stages of the parallel program execution.
‫هماهنگ‬‫موازی‬ ‫برنامه‬ ‫اجرای‬ ‫مختلف‬ ‫مراحل‬ ‫در‬ ‫ها‬ ‫پردازنده‬ ‫سازی‬.
‫های‬‫الگوریتم‬ ‫طراحی‬ ‫در‬ ‫کلیدی‬ ‫گام‬ ‫دو‬‫موازی‬
◇Dividing a computation into smaller computations
◇‫تقسیم‬‫کوچکتر‬ ‫محاسبات‬ ‫به‬ ‫محاسبه‬ ‫یک‬
◇Assigning them to different processors for parallel execution
◇‫مختلف‬ ‫های‬‫پردازنده‬ ‫به‬ ‫کوچک‬ ‫محاسبات‬ ‫تخصیص‬
“
◇‫تجزیه‬(Decomposition)
The process of dividing a computation into smaller parts, some
or all of which may potentially be executed in parallel
‫پروسه‬‫تقسیم‬‫محاسبات‬‫به‬‫بخشهای‬‫کوچکتر‬،‫بطوریکه‬‫همه‬‫آنها‬‫یا‬‫تع‬‫دادی‬‫از‬
‫آنها‬‫به‬‫طور‬‫کارآمد‬‫بصورت‬‫موازی‬‫اجرا‬‫شوند‬.
◇‫وظیفه‬(Task)
programmer-defined units of computation into which the main
computation is subdivided by means of decomposition
‫واحدهای‬‫محاسباتی‬‫که‬‫توسط‬‫تجزیه‬‫بدست‬‫آمده‬،‫اند‬‫بطوریکه‬‫هرکدام‬‫از‬‫ا‬‫ین‬
‫بخشها‬‫محاسبه‬‫ای‬‫را‬‫انجام‬‫می‬‫دهند‬‫و‬‫توسط‬‫برنامه‬‫نویس‬‫تعریف‬‫می‬‫شون‬‫د‬.
‫مثال‬1:‫ماتری‬ ‫ضرب‬ ‫مسئله‬ ‫تجزیه‬‫متراکم‬ ‫س‬‫بردار‬ ‫در‬
◇‫از‬‫حاصلضرب‬‫ماتریس‬𝑨 𝒏∗𝒏‫در‬‫بردار‬b‫بردار‬y‫حاصل‬‫شود‬‫می‬‫که‬‫های‬‫درایه‬‫آن‬‫از‬
‫مجموع‬‫حاصلضرب‬A[i,j]‫در‬b[i]‫به‬‫دست‬‫آید‬‫می‬:
𝒀 𝒊 =
𝒋=𝟏
𝒏
𝑨 𝒊, 𝒋 . 𝒃[𝒋]
◇‫محاسبه‬‫آیتم‬ ‫هر‬y[i]‫یک‬ ‫به‬ ‫تواند‬ ‫می‬Task‫شود‬ ‫واگذار‬.
“
◇ Task Dependency Graphs
An abstraction used to express such dependencies among
tasks and their relative order of execution
‫گرافی‬‫که‬‫وابستگی‬‫بین‬task‫ها‬‫و‬‫ترتیب‬‫اجرای‬‫نسبی‬‫آن‬‫ها‬‫را‬‫نشان‬‫دهد‬‫می‬.
‫درخت‬‫دار‬‫جهت‬‫و‬‫وزن‬‫دار‬
‫نودها‬‫نشان‬‫دهنده‬‫وظایف‬
‫ها‬‫یال‬‫ی‬‫نماینده‬‫وابستگی‬‫بین‬task‫ها‬
Task‫های‬‫متناظر‬‫یک‬node،‫زمانی‬‫می‬‫توانند‬‫اجرا‬‫شوند‬‫که‬‫همه‬
Task‫هایی‬‫که‬‫خروجی‬‫آن‬‫ها‬‫ورودی‬node‫جاری‬‫است‬‫به‬‫اتمام‬‫برسد‬.
‫وزن‬‫ها‬‫گره‬‫نشان‬‫دهنده‬‫حجم‬‫کار‬
‫وزن‬‫ها‬‫یال‬‫نشان‬‫دهنده‬‫حجم‬‫های‬‫داده‬‫تبادلی‬‫بین‬task‫ها‬
‫مثال‬2:‫پردازش‬Query‫داده‬ ‫پایگاه‬ ‫در‬
‫یک‬‫پایگ‬‫اه‬
‫داده‬‫رابطه‬
‫ای‬‫مربوط‬
‫به‬‫وسایل‬
‫نقلیه‬
Query:
Model= “Civic” AND YEAR=“2001” AND (COLOR=“Green” OR COLOR=“White”)
‫وابستگی‬ ‫گراف‬ ‫و‬ ‫میانی‬ ‫جداول‬ ‫رسم‬
‫وابستگی‬ ‫گراف‬ ‫و‬ ‫میانی‬ ‫جداول‬ ‫رسم‬
“
◇‫دانه‬‫بندی‬(Granularity)
The number and size of tasks into which a problem is
decomposed determines the granularity of the decomposition
‫تعداد‬‫و‬‫سایز‬Task‫تجزیه‬ ‫از‬ ‫حاصل‬ ‫ی‬ ‫ها‬
◇‫دانه‬ ‫درشت‬(Coarse-grained)
A decomposition into a small
number of large tasks
‫کمی‬ ‫تعداد‬ ‫به‬ ‫مسئله‬ ‫تجزیه‬task‫بزرگ‬.
◇‫ریزدانه‬(Fine-grained)
A decomposition into a large
number of small tasks
‫تجزیه‬‫زیادی‬ ‫تعداد‬ ‫به‬ ‫مسئله‬task‫کوچک‬.
“
◇‫مسیر‬‫بحرانی‬(critical path)
The longest directed path between any pair of start and finish
nodes
‫طوالنی‬‫گوییم‬ ‫را‬ ‫پایان‬ ‫نود‬ ‫و‬ ‫شروع‬ ‫نود‬ ‫بین‬ ‫دار‬ ‫جهت‬ ‫مسیر‬ ‫ترین‬.
○‫آغاز‬ ‫نود‬:‫بدون‬ ‫نودهای‬‫یال‬‫را‬ ‫ورودی‬‫گوییم‬.
○‫نود‬‫پایان‬:‫نودهای‬‫بدون‬‫یال‬‫گوییم‬ ‫را‬ ‫خروجی‬.
◇‫طول‬‫مسیر‬‫بحرانی‬(critical path length)
The sum of the weights of nodes along this path
‫می‬ ‫شناخته‬ ‫بحرانی‬ ‫مسیر‬ ‫طول‬ ‫عنوان‬ ‫به‬ ‫مسیر‬ ‫این‬ ‫در‬ ‫نودها‬ ‫وزن‬ ‫مجموع‬‫شو‬‫د‬
“
◇‫درجه‬‫همزمانی‬(Degree Of Concurrency)
‫به‬‫معنای‬‫تعداد‬task‫هایی‬‫است‬‫که‬‫به‬‫طور‬‫همزمان‬‫در‬‫یک‬‫برنامه‬‫موازی‬‫اجرا‬
‫می‬‫شوند‬.
◇Maximum degree of concurrency
‫ماکسیمم‬‫تعداد‬Task‫هایی‬‫که‬‫می‬‫توانند‬‫بصورت‬‫همزمان‬‫در‬‫یک‬‫برنامه‬،‫موازی‬
‫در‬‫هر‬‫زمان‬‫داده‬‫شده‬‫اجرا‬،‫شوند‬‫به‬‫عنوان‬‫باالترین‬‫درجه‬‫همزمانی‬‫شناخته‬‫می‬
‫شوند‬.
◇Average degree of concurrency
‫چون‬‫در‬‫هر‬،‫مرحله‬‫تعدادی‬‫از‬task‫ها‬‫با‬‫هم‬‫به‬‫صورت‬‫موازی‬‫اجرا‬‫می‬،‫شوند‬
‫باید‬‫برای‬‫کل‬‫کار‬‫میانگین‬‫گرفت‬.
‫فرمول‬:‫نسبت‬‫حجم‬‫کل‬‫کار‬‫به‬‫طول‬‫مسیر‬‫بحرانی‬
◇‫ماکسیمم‬‫همزمانی‬ ‫درجه‬=4
◇‫بحرانی‬ ‫مسیر‬ ‫طول‬=27
◇‫کار‬ ‫کل‬ ‫حجم‬=63
◇‫میانگین‬‫درجه‬‫همزمانی‬=2.33
◇‫ماکسیمم‬‫همزمانی‬ ‫درجه‬=4
◇‫بحرانی‬ ‫مسیر‬ ‫طول‬=34
◇‫کار‬ ‫کل‬ ‫حجم‬=64
◇‫میانگین‬‫همزمانی‬ ‫درجه‬=1.88
‫گراف‬‫تعامل‬‫وظیفه‬(Task Interaction Graph)
◇‫گرچه‬‫است‬ ‫و‬ ‫بندی‬ ‫دانه‬ ‫افزایش‬ ‫با‬ ‫را‬ ‫مسئله‬ ‫حل‬ ‫زمان‬ ‫توان‬ ‫می‬ ‫که‬ ‫برسد‬ ‫نظر‬ ‫به‬ ‫است‬ ‫ممکن‬‫از‬ ‫فاده‬
‫که‬ ‫ای‬ ‫گونه‬ ‫به‬ ‫همزمانی‬Task‫چنین‬ ‫عمل‬ ‫در‬ ‫اما‬ ‫داد‬ ‫کاهش‬ ،‫شوند‬ ‫اجرا‬ ‫موازی‬ ‫طور‬ ‫به‬ ‫بیشتری‬ ‫های‬
‫ندارد‬ ‫وجود‬ ‫حالتی‬.
‫معموال‬‫روی‬‫دانه‬‫بندی‬‫ریز‬‫مسئله‬‫محدودیت‬‫هایی‬‫وجود‬،‫دارد‬‫برای‬‫نمونه‬‫در‬‫مسئله‬‫ضرب‬
‫ماتریس‬‫در‬‫آرایه‬،‫تعداد‬𝑛2‫عمل‬‫ضرب‬‫و‬‫جمع‬‫وجود‬‫دارد‬‫و‬‫حتی‬‫با‬‫استفاده‬‫از‬‫تجزیه‬‫های‬
‫ریز‬‫دانه‬‫بیشتری‬‫مسئله‬‫نمی‬‫تواند‬‫به‬‫بیش‬‫از‬(𝑛2)Task ,O‫تجزیه‬‫شود‬.
‫حتی‬‫اگر‬‫شرایط‬‫دانه‬‫بندی‬‫و‬‫درجه‬‫همزمانی‬‫را‬‫بدون‬‫محدودیت‬‫در‬‫نظر‬،‫بگیریم‬‫فاکتو‬‫ر‬
‫عملی‬‫مهم‬‫دیگری‬‫وجود‬‫دارد‬‫که‬‫ما‬‫را‬‫محدود‬‫می‬‫نماید‬‫و‬‫این‬‫فاکتور‬‫تعامل‬
(Interaction)‫میان‬Task‫های‬‫در‬‫حال‬‫اجرا‬‫روی‬‫پروسسورهای‬‫فیزیکی‬‫مختلف‬‫می‬
‫باشد‬.
‫گراف‬‫تعامل‬‫وظیفه‬(Task Interaction Graph)
◇The pattern of interaction among tasks is captured by what is
known as a task-interaction graph.
◇‫ارتباط‬‫بین‬task‫هستند‬ ‫بایکدیگر‬ ‫تعامل‬ ‫در‬ ‫که‬ ‫هایی‬‫را‬‫دهد‬ ‫می‬ ‫نشان‬.
■‫کارها‬ ‫ارتباط‬:‫ورودی‬ ‫یکی‬ ‫خروجی‬‫دیگری‬
■‫گره‬:‫کار‬
■‫یال‬:‫کارهای‬ ‫اتصال‬‫مرتبط‬
■‫گره‬ ‫وزن‬:‫حجم‬‫کار‬
■‫یال‬ ‫وزن‬:‫ارتباط‬ ‫میزان‬
‫گراف‬‫ضرب‬ ‫تعامل‬‫ماتریس‬sparse‫بردار‬ ‫در‬
◇‫داریم‬ ‫زیر‬ ‫شکل‬ ‫در‬ ‫مثال‬ ‫برای‬:
Y[0]= A[0,0].b[0]+ A[0,1].b[1]+ A[0,4].b[4]+ A[0,8].b[8]
“
◇Task‫های‬‫حاصل‬‫از‬‫تجزیه‬‫مسئله‬،‫روی‬‫پروسسورهای‬‫فیزیکی‬‫اجرا‬
‫می‬‫شوند‬.
o‫اصطالح‬‫پروسس‬‫در‬‫مباحث‬‫الگوریتم‬،‫موازی‬‫یعنی‬‫عاملی‬‫که‬‫محاسبات‬
Task‫ها‬‫را‬‫انجام‬‫می‬‫دهد‬.
o‫برای‬‫اینکه‬‫سرعتی‬‫باالتر‬‫از‬‫اجرای‬‫ترتیبی‬‫داشته‬،‫باشیم‬‫یک‬‫برنامه‬
‫موازی‬‫باید‬‫چندین‬‫پروسس‬‫داشته‬‫باشد‬‫که‬‫بصورت‬‫همزمان‬‫فعال‬‫ب‬‫وده‬‫و‬
Task‫های‬‫مختلف‬‫را‬‫انجام‬‫دهند‬.
Processes and Mapping
“
◇Mapping(‫نگاشت‬):‫مکانیسمی‬‫که‬Task‫ها‬‫را‬‫برای‬‫اجرا‬‫به‬
‫پروسس‬‫ها‬‫تخصیص‬‫می‬‫دهد‬‫را‬‫گوییم‬.
The mechanism by which tasks are assigned to processes
for execution is called mapping
◇‫اهداف‬mapping:
1.‫همزمانی‬‫را‬‫افزایش‬‫دهد‬.
2.‫کل‬‫زمان‬‫اجرا‬‫را‬‫کاهش‬‫دهد‬.
3.‫کم‬‫کردن‬‫تعامل‬‫میان‬‫پروسه‬‫ها‬.
Processes and Mapping
‫تخصیص‬task‫به‬ ‫ها‬‫ها‬‫پروسس‬
“
Processes versus Processors
◇‫ها‬‫پروسس‬‫عامل‬‫محاسبات‬‫منطقی‬‫بوده‬‫که‬task‫ها‬‫را‬‫انجام‬‫دهند‬‫می‬.
◇‫پروسسورها‬‫واحدهای‬‫سخت‬‫افزاری‬‫هستند‬‫که‬‫به‬‫طور‬‫فیزیکی‬
‫محاسبات‬‫را‬‫انجام‬‫دهند‬‫می‬.
○‫یک‬‫تناظر‬‫یک‬‫به‬‫یک‬‫بین‬‫پروسس‬‫و‬‫پروسسور‬‫وجود‬‫دارد‬‫که‬‫بهت‬‫ر‬‫است‬
‫فرض‬‫کنیم‬‫تعداد‬CPU‫های‬‫فیزیکی‬‫در‬‫کامپیوترهای‬‫موازی‬‫به‬‫اندازه‬
‫تعداد‬‫ها‬‫پروسس‬‫است‬.
‫های‬ ‫تکنیک‬‫تجزیه‬
◇ Recursive
Decomposition
◇ Speculative
Decomposition
◇ Data
Decomposition
◇ Exploratory
Decomposition
Recursive Decomposition
(‫بازگشتی‬ ‫تجزیه‬)
‫این‬‫تکنیک‬‫برای‬‫مسائلی‬‫به‬‫کار‬‫میرودکه‬‫می‬‫توانند‬‫با‬‫استراتژی‬‫تقسیم‬‫وغلبه‬‫حل‬‫ش‬‫وند‬
‫در‬‫ابتدا‬‫مساله‬‫به‬‫تعدادی‬‫زیرمساله‬‫تقسیم‬‫می‬‫شود‬‫و‬‫سپس‬‫هرکدام‬‫از‬‫این‬‫زیرمساله‬‫ها‬‫ب‬‫ه‬‫بخش‬
‫های‬‫کوچکتر‬‫تقسیم‬‫شده‬‫و‬‫به‬‫صورت‬‫بازگشتی‬‫حل‬‫می‬‫شوند‬‫و‬‫در‬‫پایان‬‫نتایج‬‫بدست‬‫آمده‬‫با‬‫یکدیگر‬
‫ترکیب‬‫خواهند‬‫شد‬.
Quicksort
‫یک‬ ‫مینیمم‬ ‫کردن‬ ‫پیدا‬‫آرایه‬
◇ A serial program for finding the minimum in an array of numbers A of length n.
‫نمودار‬task-dependency‫برای‬‫آرایه‬ ‫در‬ ‫مینیمم‬ ‫عنصر‬ ‫کردن‬ ‫پیدا‬‫زیر‬::
{4,9,1,7,8,11,2,12}
‫یک‬ ‫مینیمم‬ ‫کردن‬ ‫پیدا‬‫آرایه‬
◇ A recursive program for finding the minimum in an array of numbers A of
length n.
Data Decomposition
‫روشی‬‫است‬،‫قدرتمند‬‫جهت‬‫اجرای‬‫همروندی‬‫در‬‫الگوریتم‬‫هایی‬‫که‬‫بر‬‫روی‬‫ساختارهای‬‫داده‬‫ای‬
‫بزرگ‬‫کار‬‫می‬‫کنند‬.‫از‬2‫گام‬‫تشکیل‬‫شده‬:
.i‫تقسیم‬‫و‬‫پارتیشن‬‫بندی‬‫داده‬‫ها‬‫یی‬‫که‬‫در‬‫محاسبات‬‫به‬‫کار‬‫می‬‫روند‬
.ii‫اختصاص‬‫هر‬‫بخش‬‫داده‬‫به‬‫یک‬task
‫روش‬‫های‬‫تجزیه‬‫اطالعات‬
1. Partitioning Output Data
2. Partitioning Input Data
3. Partitioning both Input and Output Data
4. Partitioning Intermediate Data
(‫اطالعات‬ ‫تجزیه‬)
Partitioning Output Data
◇‫برای‬‫یک‬‫سری‬‫از‬‫محاسبات‬‫عددی‬‫خروجی‬‫قابل‬‫حدس‬‫زدن‬‫است‬.‫بنابراین‬‫با‬‫توجه‬‫به‬‫شکل‬‫داده‬
‫های‬‫خروجی‬‫نقسیم‬‫بندی‬‫را‬‫به‬‫شکلی‬‫انجام‬‫می‬‫دهیم‬‫که‬‫خروجی‬‫ها‬‫به‬‫صورت‬‫موازی‬‫تولید‬‫گ‬‫ردند‬.
Matrix
multiplication
◇‫تجزیه‬‫بر‬‫مبنای‬‫داده‬‫متفاوت‬‫از‬‫تجزیه‬‫بر‬‫مبنای‬Task‫می‬،‫باشد‬‫اگر‬‫چه‬‫این‬‫دو‬‫با‬‫یکدیگر‬
‫در‬‫ارتباط‬‫اند‬.
◇‫می‬‫توان‬‫داده‬‫ها‬‫را‬‫به‬‫صورت‬‫یکسان‬‫تجزیه‬‫نمود‬‫ولی‬‫آنها‬‫را‬‫به‬‫تعداد‬Task‫های‬‫متفاوت‬‫و‬
‫یا‬‫داده‬‫های‬‫مختلف‬‫را‬‫به‬‫تعدادی‬‫یکسان‬‫از‬Task‫ها‬‫نسبت‬‫داد‬.
‫داد‬ ‫مجموعه‬ ‫یک‬ ‫در‬ ‫الگو‬ ‫سری‬ ‫یک‬ ‫تکرار‬ ‫تعداد‬ ‫محاسبه‬‫ه‬
Partitioning Input Data
◇‫تولید‬‫جواب‬‫محلی‬‫توسط‬‫هر‬task(‫و‬‫نه‬‫جواب‬‫کلی‬‫مسئله‬)‫و‬‫سپس‬‫ترکیب‬‫همه‬‫های‬‫جواب‬
‫محلی‬‫برای‬‫رسیدن‬‫به‬‫جواب‬‫کلی‬.
‫داد‬ ‫مجموعه‬ ‫یک‬ ‫در‬ ‫الگو‬ ‫سری‬ ‫یک‬ ‫تکرار‬ ‫تعداد‬ ‫محاسبه‬‫ه‬
Partitioning both Input and
Output Data
◇‫چنانچه‬‫امکان‬‫تقسیم‬‫داده‬‫های‬‫خروجی‬‫به‬‫صورت‬‫مستقل‬‫وجود‬‫داشته‬،‫باشد‬‫داده‬‫های‬‫ورودی‬
‫هم‬‫تقسیم‬‫می‬‫شوند‬‫با‬‫هدف‬‫رسیدن‬‫به‬‫همزمانی‬‫بیشتر‬.
‫داد‬ ‫مجموعه‬ ‫یک‬ ‫در‬ ‫الگو‬ ‫سری‬ ‫یک‬ ‫تکرار‬ ‫تعداد‬ ‫محاسبه‬‫ه‬
Partitioning Intermediate
Data
◇‫مناسب‬‫برای‬‫محاسبات‬‫چند‬‫ای‬‫مرحله‬
◇‫تقسیم‬‫های‬‫داده‬‫ورودی‬‫یا‬‫خروجی‬‫در‬‫هر‬‫مرحله‬
◇‫احتمال‬‫دستیابی‬‫به‬‫همزمانی‬‫بیشتر‬‫نسبت‬‫به‬‫سایر‬‫روشها‬‫البته‬‫در‬‫بعضی‬‫از‬‫مسائل‬
‫محدودیت‬:‫آگاهی‬‫از‬‫الگوریتم‬‫سریال‬‫و‬‫چگونگی‬‫ایجاد‬‫داده‬‫های‬‫میانی‬
‫ضرب‬‫ماتریس‬
‫ضرب‬‫ماتریس‬
“
◇‫قانون‬owner computes
‫در‬‫تجزیه‬‫داده‬‫به‬‫بخش‬‫های‬،‫مختلف‬‫محاسبات‬Task‫فقط‬‫روی‬‫داده‬‫های‬‫اختصاصی‬
‫و‬‫محلی‬‫همان‬Task،‫انجام‬‫می‬‫گیرد‬.
‫با‬‫توجه‬‫به‬‫ماهیت‬‫داده‬‫و‬‫روش‬‫تجزیه‬‫داده‬،‫ها‬‫این‬‫قانون‬‫می‬‫تواند‬‫متفاوت‬‫عمل‬‫کند‬.
-‫روش‬‫تقسیم‬‫ها‬‫ورودی‬:Task‫روی‬‫داده‬‫های‬‫ورودی‬‫که‬‫به‬‫خودش‬‫اختصاص‬
،‫دارد‬‫محاسبه‬‫انجام‬‫می‬‫دهد‬.
-‫روش‬‫تقسیم‬‫ها‬‫خروجی‬:Task‫تنها‬‫به‬‫محاسبه‬‫خروجی‬‫هایی‬‫که‬‫باید‬‫تولید‬
،‫کند‬‫می‬‫پردازد‬.
Thanks!
You can find me at:
◇ @kvnmahdavi
◇ kvnmahdavi@yahoo.com

More Related Content

PDF
PDF
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
PDF
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
PDF
داده های گرافی
PDF
دیتابیس های گرافی
PDF
Big Data Processing in Cloud Computing Environments
PPT
Introduction to matlab
PPTX
data base 3 dade paygah va azmayesh.pptx
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
داده های گرافی
دیتابیس های گرافی
Big Data Processing in Cloud Computing Environments
Introduction to matlab
data base 3 dade paygah va azmayesh.pptx
Ad

Parallel computing ch3