پردازنده هاي چند هسته اي

Slides:



Advertisements
Similar presentations
Queue theory.
Advertisements

Logic Block Architectures. 2 Crosspoint Solution  Requires the use of large amounts of programmable interconnect −  suffer from area-inefficiency 
سازگاري فرايندهاي يادگيري Consistency of Learning Processes ارائه دهنده : الهام باوفای حقیقی استاد درس : آقای دکتر شيري دانشگاه امير كبير دانشكده ‌ مهندسي.
1 آزمايشگاه سيستم های هوشمند ( Domain-specific Architecture.
طراحي و مدل کردن مؤلفه ها فصل 7 معماري نرم افزار هاي بزرگ دانيال مؤذن استاد : دکتر عبدالله زاده.
Computer Programming برنامه سازی کامپيوتر1 طراحی الگوريتم ها Algorithm Design.
مهندسی نرم افزار مبتنی بر عامل
ارائه روشي براي شناسايي کاراکترهاي دستنويس، برپايه شبکه LVQ.
بنام خدا معرفي روشهاي اصلاح شده در بهينه سازي کولوني مورچه ها و پيشنهاد يک local optimization.
ارائه درس روباتيکز Extended Kalman Filter فريد ملازم استاد مربوطه دکتر شيري دانشگاه امير کبير – دانشکده کامپيوتر و فناوري اطلاعات.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه ارتباط بين component ها.
طراحي و ساخت سيستم‌هاي تجارت الکترونيک ساخت سيستم‌هاي تجارت الکترونيک ECSE.
1 فصل 8 - طراحي زيرسيستم ها برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony فرنوش گلشن آزمايشگاه سيستم هاي هوشمند بهار.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
1 تدوين راهبرد برای يک برنامه جلب حمايت همه جانبه Mohsen Shams, MD. PhD Candidate in Health Education, School of Public Health, Tehran University of Medical.
مقدمه فصل 1 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
1 آزمايشگاه سيستم های هوشمند ( ارزيابي معماري نرم افزار.
فصل 5 - مرور سريع UML برگرفته از کتاب
1 آزمايشگاه سيستم های هوشمند ( انواع Architectural Styles.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
تعميم در يادگيري مبتني بر نمونه ها
مراحل مختلف اجرای يک برنامه
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تعيين تقدم و تاخر انجام فعاليت‌هاي پروژه.
نقشه‌برداري و مكان‌يابي همزمان به کمک الگوريتم ژنتيک
برنامه نويسي پيشرفته مقدمه By: Ali Bazghandi. C++ Programming: Ali Bazghandi2 نکات مهم مراجع C++ FOR DUMMIES 5TH EDITION by Stephen Randy Davis PROGRAMMING.
شرط و تصميم اصول كامپيوتر 1. 2 الگوريتم اقليدس E1: [find remainder] Divide m by n and let r be the remainder. Clearly, 0
1/19 Informed search algorithms Chapter 4 Modified by Vali Derhami.
1 فصل سوم سينماتيك مستقيم. 2 محتواي فصل   تعريف مجموعه فازي   تابع عضويت   نمايش مجموعه هاي فازي   برش آلفا   متغيرهاي زباني   ساخت مجموعه.
Image Enhancement in the
[c.
Frameworks And Patterns
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
اصول کامپيوتر 1 – معرفي درس
مرتب سازي مقايسه اي مرتب سازي خطي
دانلود جدیدترین مقالات برق الکترونیک و کامپیوتر
ANOVA: Analysis Of Variance
ارائه دهندگان : محسن قلعه نوئي سيد مجتبي شاکري
ANOVA: Analysis Of Variance
وحید حقيقت دوست دانشکده فنی و مهندسی دانشگاه شاهد
Quick Sort مرتب سازي سريع.
دستورات کنترل و تکرار- 2 اصول كامپيوتر 1.
آشنايي با برنامه نويسي به زبان C++
تکنیک دیماتل DEMATEL: decision making trial and evaluation laboratory.
معرفي درس ساختمان داده ها و الگوريتمها
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
فصل 1: مفاهيم پايه.
مقدمه اي بر داده کاوي و اکتشاف دانش
به نام خدا برنامه ارزيابي خارجي کيفيت (هماتولوژی- سرولوژی)
انواع Architectural Styles
سيستمهاي اطلاعات مديريت
مدلسازي تجربي – تخمين پارامتر
هیدرولیک جریان در کانالهای باز
فيلتر كالمن معرفي : فيلتر كالمن تخمين بهينه حالت‌ها است كه براي سيستم‌هاي ديناميكي با اختلال تصادفي در سال 1960 بزاي سيستم‌هاي گسسته و در سال 1961 براي.
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
وبلاگ جامع مهندسی برق و الکترونیک
Test آزمون نرم افزار Mansooreh Jalalyazdi.
به نام خدا برنامه ارزيابي خارجي کيفيت (هماتولوژی- سرولوژی)
با تشکر از دکتر جواد سلیمی
فصل ششم مدارهای ترتیبی.
آشنايي با نرم افزار.
نرم افزار عملي دوره كارداني كامپيوتر دانشگاه کردستان دانشكده فني
مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد
Petri Nets: Properties, Analysis and Application
آزمايشگاه مهندسي نرم افزار
گزارش کار آزمايشگاه مکانيک خاک
گروه كارشناسي ارشد مديريت فنآوري اطلاعات(واحد الكترونيكي تهران)
Presentation transcript:

پردازنده هاي چند هسته اي استاد: دکتر سعيد پارسا ارائه دهنده: محمد حمزه ئي

بخش اول تاريخچه

Prof. Arvind Dream!! A time when Freshmen will be taught sequential programming as a special case of parallel programming

بحران نرم افزاري اول زمان: 1960-70 مشکل: برنامه نويسي به زبان اسمبلي نياز به تجريد و قابليت جابه جايي بدون از دست دادن کارايي برنامه ها راه حل: زبان هاي سطح بالا مانند فرترن و c

بحران نرم افزاري دوم زمان: 1980-90 مشکل: ناتواني در ساخت و نگهداري برنامه هاي کاربردي پيچيده که به صورت گروهي ايجاد مي شوند کامپيوترها مي توانستند برنامه هايي با پيچيدگي بالاتر را اجرا کنند نياز به قابليت انعطاف و قابليت نگهداري براي برنامه ها کارايي بالا مطرح نبود با توجه به قانون مور (Moor) بدست مي آمد

بحران نرم افزاري دوم راه حل: برنامه نويسي شي گرا متدولوژي هاي نرم افزاري بهتر ابزارهاي بهتر براي ايجاد برنامه ها

امروزه: برنامه نويسان و پردازنده ها!! برنامه نويسان چيزي در مورد پردازنده نمي دانند! زبانهاي سطح بالا به صورت انتزاعي پردازنده ها را مخفي مي کنند بايت کد جاوا مستقل از ماشين است بر مبناي قانون مور به منظور بدست آوردن سرعت بالاتر نيازي نيست برنامه نويسان چيزي در مورد پردازنده ها بدانند برنامه اي که 30 سال پيش به زبان c نوشته شده است همچنان کار مي کند و بر روي کامپيوترهاي امروزي بسيار سريعتر اجرا مي شود

منشا بحران سوم زمان: 2005-… مشکل: کارايي برنامه هاي ترتيبي!! (قانون مور!) نياز به بهبود کارايي منطقي و پيوسته براي برنامه ها براي پشتيباني جنبه هاي جديد و حجم بالا و در حال رشد داده ها پردازنده هاي چند هسته اي! مدل هاي برنامه نويسي موازي تبديل برنامه هاي بازمانده ترتيبي به موازي

موازي سازي

برنامه نويسي همروند و موازي برنامه همرند مجمرعه اي از نخ هاي ترتيبي که به صورت موازي (منطقي) اجرا مي شوند پياده سازي چند برنامگي اجراي نخ ها بر روي يک پردازنده با تعويض اجراي آنها چند پردازنده اي اجراي نخ ها بر روي يک سيستم چند پردازنده اي يا چند هسته اي پردازش توزيع شده اجراي نخ ها بر روي چند ماشين مختلف

برنامه هاي همروند و موازي همروندي فقط اجراي موازي نيست! همروندي به صورت اجراي interleaved پردازش همزمان منطقي اجرا بر روي يک پردازنده اجراي موازي پردازش همزمان فيزيکي اجرا بر روي چند پردازنده

همگام سازي تمامي حالات اجرايي نخ ها، اجراي صحيح و قابل قبول نيستند مکانيسم هاي همگام سازي براي محدود کردن حالات مختلف اجرايي همگام سازي با دو هدف صورت مي گيرد امن بودن برنامه در به روز رساني هاي مشترک جلوگيري از شرايط مسابقه! (race conditions) هماهنگي اعمال نخ ها

امن بودن دسترسي همزمان چند نخ به منبع مشترک امن اگر: تمامي دسترسي ها اثري بر منبع نداشته باشند خواندن يک متغير يا دسترسي ها خنثي (idempotent) باشند Y=sign(a); , a=a*2; يا تنها يک دسترسي در هر زمان انحصار متقابل (mutual exclusion)

کارايي برنامه هاي موازي پوشش (coverage) يا ميزان بخش هاي موازي دانه بندي (granularity) بخش ها ميان پردازنده ها محلي بودن (locality) محاسبات و ارتباطات

پوشش قانون آمدال (Amdahl) بهبود کارايي حاصل از استفاده از مقداري مد سريعتر اجرايي در برنامه (بخش هاي موازي)، محدود به ميزان زماني از برنامه دارد که مد سريعتر مي تواند استفاده شود Speedup = 100/60 = 1.67

دانه بندي دانه بندي يک معيار کيفي از ميزان محاسبات به ارتباطات دارد انواع دانه بندي دانه ريز (fine-grain) دانه درشت (course-grain)

دانه بندي موازي سازي دانه ريز موازي سازي دانه درشت نسبت کم محاسبات به ارتباطات سربار ارتباطي بالا شانس کمتر براي افزايش کارايي موازي سازي دانه درشت نسبت بالاي محاسبات به ارتباطات شانس بالا براي افزايش کارايي سخت بودن توازن بار پردازنده ها (load balancing) توازن بار ايستا توازن بار پويا

دانه بندي و کارايي توازن بار کاري همگام سازي ارتباطات ميزان و نحوه توزيع بار ميان هسته ها همگام سازي وجود محدوديت در ترتيب اجرا ارتباطات وجود هزينه ارتباطي

محلي بودن

بخش دوم بررسي يکي از روش هاي موازي سازي خودکار بخش دوم بررسي يکي از روش هاي موازي سازي خودکار

مقدمه موازي سازي درسطح نخ براي اجرا بر روي سيستم هاي چند هسته اي به منظور افزايش کارايي موازي سازي دانه ريز استفاده از سخت افزار براي برقراري ارتباطات کم هزينه مکانيسم سخت افزاري براي ارتباط بين هسته ها آرايه هاي همگام سازي: ارسال و دريافت مقادير از طريق يک صف produce, consume

استخراج توازي بخش بندي محاسبات به تعدادي نخ در نظر گرفتن معيارهاي کارايي مورد نظر اضافه کردن دستورات ارتباطي براي برقراري ارتباطات بين نخي

استخراج توازي زمانبندي دستورات چند نخي عمومي وابستگي هاي بين دستورات زمانبندي همزمان دستورات يک ناحيه عمومي از برنامه در نخهاي مختلف وابستگي هاي بين دستورات وابستگي کنترلي وابستگي داده اي حافظه رجيستر

زمانبندي دستورات چندنخي عمومي Program Dependence Graph(PDG) همانند گراف وظايف مشخص کننده وابستگي ها دستوراتي که بر روي نخ هاي مختلف زمانبندي مي شوند اضافه کردن دستورات ارتباطي و همگام سازي

توليد کد چند نخي استفاده ازنمايش سطح پائين کد PDG قابليت استفاده براي هر بخش بندي برنامه توليد کد موثر زمانبندي محلي و عمومي! کاهش تکرار کپي کردن جريان کنترلي برنامه مدل Fork/Join

الگوريتم MTCG(Multi-Threaded Code Generation) الگوريتم به منظور توليد کد چند نخي استفاده مي شود ورودي هاي الگوريتم گراف جريان کنترلي برنامه (CFG) گراف وابستگي(PDG) بخش بندي مورد نظر (Partitioning) خروجي الگوريتم برنامه چند نخي اين الگوريتم از چهار مرحله تشکيل شده است که در ادامه بيان شده است

الگوريتم MTCG مرحله 1: ايجاد بلاک هاي اوليه (Basic Block) براي گراف هاي جريان کنترلي جديد به ازاي هر نخ Ti يک گراف جريان کنترلي جديد CFGi ايجاد مي شود که شامل يک بلاک اوليه به ازاي هر بلاک اوليه مرتبط با Ti در CFG اصلي است بلاک هاي اوليه مرتبط: يک بلاک اوليه B با نخ Ti مرتبط است اگر B شامل يک دستور زمانبندي شده در Ti باشد يا يک دستور که دستوري از Ti به آن بستگي دارد باشد يا يک دستور انشعاب که يک بلاک مرتبط با Ti را کنترل مي کند باشد

الگوريتم MTCG مرحله 2 : انتقال دستورات به گراف هاي جريان کنترلي جديد دستورات هر Ti در بلاک اوليه مربوطه در CFGi به همان ترتيبي که در CFG اصلي وجود دارند وارد مي شوند مرحله 3 : اضافه کردن دستورات ارتباطي و همگام سازي بين نخ ها دستورات ارتباطي در مکاني معادل مکان منبع وابستگي، به گراف هاي جريان کنترلي جديد اضافه مي شوند اگر وابستگي رجيستر باشد مقدار رجيستر مربوطه در منبع توليد (دستور produce) و در مقصد مصرف (دستور consume)مي شود اگر وابستگي حافظه باشد دستورات همگام سازي براي حفظ ترتيب درست اجرايي اضافه مي شود اگر وابستگي کنترلي باشد ابتدا مقادير مربوط به شرط انشعاب از مبدا به مقصد منتقل مي شود و پس از آن دستور انشعاب مربوطه عيناً اضافه مي شود

الگوريتم MTCG مرحله 4 : ايجاد لبه هاي بين بلاک هاي اوليه در گراف هاي جريان کنترلي جديد از آنجا که تمامي بلاک ها در هر CFGi وجود ندارد در نتيجه بايد لبه ها به نحوي مناسب اضافه شود که پرش ها و انشعابات به درستي پياده سازي شود شرط صحيح بودن: تضمين اينکه هر بلاک در هر CFGi شرايط اجراي يکسان با بلاک معادل خود در CFG اصلي داشته باشد در نتيجه بايد وابستگي هاي کنترلي که خود از طريق روابط پس تسلط بدست مي آيند حفظ شوند در نتيجه براي هر CFGi مقصد هر پرش و انشعاب در صورت نبودن بلاک مربوطه در CFGi نزديکترين بلاک اوليه اي است که بر آن پس تسلط دارد و در CFGi وجود دارد

الگوريتم خوشه بندي (GREMIO) زمانبندي بر مبناي PDG هدف: کمينه کردن مسير بحراني در گراف مشکل: وجود حلقه در PDG راه حل: رويکرد ساده سازي مسئله و تبديل به گراف بدون حلقه هر حلقه تبديل به يک گره شود! بدست آوردن زمان تقريبي اجراي حلقه و انتساب آن به عنوان وزن گره در نظر گرفتن وابستگي هاي بين حلقه اي در صورتي که خود کد در حلقه باشد بدست آمدن PDG بدون حلقه: HPDG

خوشه بندي در نظر گرفتن سربار ارتباطي در برابر ميزان موازي سازي در خوشه بندي الگوريتم خوشه بندي Dominant Sequence Clustering (DSC) خوشه بندي به منظورتخصيص دستورات به خوشه ها صورت مي گيرد سپس زمانبندي خوشه ها به منظورتخصيص خوشه ها به نخ ها (پردازنده ها) صورت مي گيرد

خوشه بندي افرازبندي HPDG با هدف حداکثر سازي بخش هاي موازي با در نظر گرفتن ميزان وابستگي بدون درنظر گرفتن تعداد هسته ها صورت مي گيرد براي افرازبندي، ابتدا به هر گره HPDG وزني معادل زمان تقريبي اجراي آن انتساب داده مي شود و با استفاده از يک الگوريتم heuristic به نام DSC افرازبندي با در نظر گرفتن هزينه ارتباطي صورت مي گيرد در مرحله بعد(زمانبندي) با توجه به تعداد هسته ها تعدادي از اين بخش ها ممکن است با هم ادغام شوند

زمانبندي دستورات در نظر گرفتن روابط کنترلي بين گره هاي PDG بدون حلقه هم ارز: دو دستور x و y هم ارز کنترلي هستند اگر داراي شرايط اجرايي يکسان باشند(اگر x اجرا شود y هم اجرا مي شود و بالعکس) انحصاري: دو دستور x و y از نظر کنترلي انحصاري هستند اگر x اجرا شود y اجرا نشود و بالعکس داراي برخورد: در غير اينصورت

زمانبندي دستورات استفاده از الگوريتم هاي زمانبندي ليست با محدوديت تخصيص اولويت به گره ها و زمانبندي گره ها بر مبناي ترتيب توپولوژيک داراي اولويت اولويت هر گره: بيشترين فاصله آن گره تا يک برگ است در هر مرحله بهترين نخ براي هر خوشه انتخاب مي شود انتخاب هر نخ با توجه به معيارهاي زير صورت مي گيرد سربار ارتباطات سربار برخورد (conflict) سربار حاصل از اجراي خوشه در هر نخ

مثال

مثال(ادامه...)

تمرين!!! بررسي ابزارهاي موجود براي تحليل کد اسمبلي و ارائه گزارش بدست آوردن گراف جريان کنترلي بدست آوردن گراف وظايف

منبع Guilherme de Lima Ottoni, “Global Instruction Scheduling for Multi-Threaded Architectures ”, Ph.D. Thesis, Department of Computer Science, Princeton University, September 2008.