بخشی از پاورپوینت
اسلاید 1 :
پردازنده هاي چند هسته اي
اسلاید 2 :
بخش اول تاريخچه
اسلاید 3 :
Prof. Arvind Dream!!
A time when Freshmen will be taught
sequential programming
as a special case of
parallel programming
اسلاید 4 :
بحران نرم افزاري اول
زمان: 1960-70
مشکل: برنامه نويسي به زبان اسمبلي
نياز به تجريد و قابليت جابه جايي بدون از دست دادن کارايي برنامه ها
راه حل: زبان هاي سطح بالا مانند فرترن و c
اسلاید 5 :
بحران نرم افزاري دوم
زمان: 1980-90
مشکل: ناتواني در ساخت و نگهداري برنامه هاي کاربردي پيچيده که به صورت گروهي ايجاد مي شوند
کامپيوترها مي توانستند برنامه هايي با پيچيدگي بالاتر را اجرا کنند
نياز به قابليت انعطاف و قابليت نگهداري براي برنامه ها
کارايي بالا مطرح نبود با توجه به قانون مور (Moor) بدست مي آمد
اسلاید 6 :
بحران نرم افزاري دوم
راه حل:
برنامه نويسي شي گرا
متدولوژي هاي نرم افزاري بهتر
ابزارهاي بهتر براي ايجاد برنامه ها
اسلاید 7 :
امروزه: برنامه نويسان و پردازنده ها!!
برنامه نويسان چيزي در مورد پردازنده نمي دانند!
زبانهاي سطح بالا به صورت انتزاعي پردازنده ها را مخفي مي کنند
بايت کد جاوا مستقل از ماشين است
بر مبناي قانون مور به منظور بدست آوردن سرعت بالاتر نيازي نيست برنامه نويسان چيزي در مورد پردازنده ها بدانند
برنامه اي که 30 سال پيش به زبان c نوشته شده است همچنان کار مي کند و بر روي کامپيوترهاي امروزي بسيار سريعتر اجرا مي شود
اسلاید 8 :
منشا بحران سوم
زمان: 2005-…
مشکل: کارايي برنامه هاي ترتيبي!! (قانون مور!)
نياز به بهبود کارايي منطقي و پيوسته براي برنامه ها
براي پشتيباني جنبه هاي جديد و حجم بالا و در حال رشد داده ها
پردازنده هاي چند هسته اي!
مدل هاي برنامه نويسي موازي
تبديل برنامه هاي بازمانده ترتيبي به موازي
اسلاید 9 :
موازي سازي
اسلاید 10 :
برنامه نويسي همروند و موازي
برنامه همرند
مجمرعه اي از نخ هاي ترتيبي که به صورت موازي (منطقي) اجرا مي شوند
پياده سازي
چند برنامگي
اجراي نخ ها بر روي يک پردازنده با تعويض اجراي آنها
چند پردازنده اي
اجراي نخ ها بر روي يک سيستم چند پردازنده اي يا چند هسته اي
پردازش توزيع شده
اجراي نخ ها بر روي چند ماشين مختلف
اسلاید 11 :
برنامه هاي همروند و موازي
همروندي فقط اجراي موازي نيست!
همروندي به صورت اجراي interleaved
پردازش همزمان منطقي
اجرا بر روي يک پردازنده
اجراي موازي
پردازش همزمان فيزيکي
اجرا بر روي چند پردازنده
اسلاید 12 :
همگام سازي
تمامي حالات اجرايي نخ ها، اجراي صحيح و قابل قبول نيستند
مکانيسم هاي همگام سازي براي محدود کردن حالات مختلف اجرايي
همگام سازي با دو هدف صورت مي گيرد
امن بودن برنامه در به روز رساني هاي مشترک
جلوگيري از شرايط مسابقه! (race conditions)
هماهنگي اعمال نخ ها
اسلاید 13 :
امن بودن
دسترسي همزمان چند نخ به منبع مشترک
امن اگر:
تمامي دسترسي ها اثري بر منبع نداشته باشند
خواندن يک متغير
يا دسترسي ها خنثي (idempotent) باشند
Y=sign(a); , a=a*2;
يا تنها يک دسترسي در هر زمان
انحصار متقابل (mutual exclusion)
اسلاید 14 :
کارايي برنامه هاي موازي
پوشش (coverage) يا ميزان بخش هاي موازي
دانه بندي (granularity) بخش ها ميان پردازنده ها
محلي بودن (locality) محاسبات و ارتباطات
اسلاید 15 :
پوشش
قانون آمدال (Amdahl)
بهبود کارايي حاصل از استفاده از مقداري مد سريعتر اجرايي در برنامه (بخش هاي موازي)، محدود به ميزان زماني از برنامه دارد که مد سريعتر مي تواند استفاده شود
Speedup = 100/60 = 1.67
اسلاید 16 :
دانه بندي
دانه بندي يک معيار کيفي از ميزان محاسبات به ارتباطات دارد
انواع دانه بندي
دانه ريز (fine-grain)
دانه درشت (course-grain)
اسلاید 17 :
دانه بندي
موازي سازي دانه ريز
نسبت کم محاسبات به ارتباطات
سربار ارتباطي بالا
شانس کمتر براي افزايش کارايي
موازي سازي دانه درشت
نسبت بالاي محاسبات به ارتباطات
شانس بالا براي افزايش کارايي
سخت بودن توازن بار پردازنده ها (load balancing)
توازن بار ايستا
توازن بار پويا
اسلاید 18 :
دانه بندي و کارايي
توازن بار کاري
ميزان و نحوه توزيع بار ميان هسته ها
همگام سازي
وجود محدوديت در ترتيب اجرا
ارتباطات
وجود هزينه ارتباطي
اسلاید 19 :
محلي بودن
اسلاید 20 :
بخش دوم بررسي يکي از روش هاي موازي سازي خودکار