رفتن به مطلب

پردازش موازی


ارسال های توصیه شده

سلام

نوروز مبارک

دراین تاپیک اکثرا طبق اموزش های دکتر محمود اشرفی زاده از اساتید گرامی وممتاز دانشکده مکانیک دانشگاه صنعتی اصفهان به اموزش درس پردازش موازی میپردازیم.

دوستان اگر بحث تکمیلی یا مطلبی برای افزودن داشتند درهمین تاپیک مطرح کنند.

با توجه به اینکه مبحث پردازش موازی منحصر به رشته مهندسی مکانیک نیست مناسب دیدم تاپیک این مبحث در صفحه ی اصلی تالار مکانیک باشد.

لینک به دیدگاه

تا چند دهه قبل دانش بشری بر پایه دو ستون آزمایش های تجربی و آنالیزهای تحلیلی استوار بوده است. محدودیت های موجود در استفاده از این دو روش باعث شده است كه دانشمندان و متخصصین به بهره برداری از روشها ی عددی برای حل معادلات حاكم بر پدیده های فیزیكی رو آورند. بدین ترتیب شبیه سازی های رایانه ای و روش های عددی به عنوان ستون سوم علم و دانش بشری وارد عرصه شده و امروزه از جایگاه ویژه ای برخوردار هستند. با توجه به این واقعیت كه ابزار اصلی در انجام محاسبات و شبیه سازی های عددی،‌ماشین های حساب و رایانه های دیجیتالی می باشند، همواره توان پردازشی سخت افزاری یكی از عوامل اصلی محدود كننده در بهره برداری از روش های عددی در حل مسائل علمی و صنعتی بوده است. بدین جهت ارتقای توان محاسباتی و حجم حافظه سامانه های سخت افزاری همواره مد نظر بوده است. با پیشرفت تكنولوژی و دستیابی محققین به رایانه های پرسرعت و با حافظه بیشتر،‌ رفته رفته امكان انجام محاسبات حجیم ارتقاء یافته است. از طرفی تمایل و نیاز محققین در علوم و صنایع به حل مسائل پیچیده تر و با لحاظ نمودن فیزیك واقعی تر،‌محرك اصلی برای ساخت رایانه های پرقدرت تر بوده است. بدین صورت در یك حلقه افزاینده،‌ از یك طرف بر پیچیدگی محاسبات عددی افزوده شده و دانش بشری در روش های عددی و شبیه سازی های رایانه ای ارتقاء یافته و از طرف دیگر تكنولوژی سخت افزار رایانه ای مرتباً در حال تكامل و ارتقاء به سمت طراحی و ساخت ابررایانه های پرقدرت تر حركت نموده است.

دانشمندان علوم رایانه از همان ابتدا متوجه محدودیت های مختلف برای ساخت یك پردازشگر بسیار سریع بوده و بدین جهت،‌استفاده همزمان از چندین پردازشگر برای انجام محاسبات مورد توجه بوده است. امروزه با نزدیك شدن تكنولوژی ساخت پردازشگرها به برخی محدودیت های فیزیكی، استفاده از پردازش موازی را تقریباًدر تمامی انواع پردازشگرها تبدیل به یك ضرورت نموده است. در نتیجه برنامه نویسی و تدوین روش های عددی موازی برای حل مسائل علمی یك ضرورت می باشد.

در این درس،‌ دانشجویان با مفاهیم و اصطلاحات كلی پردازش موازی آشنا شده و یك دید کاربردی از سخت و نرم افزارهای مورد استفاده برای انجام محاسبات موازی بدست می آورند. اهداف اصلی از ارائه این درس عبارتند از:

  • معرفی مفاهیم كلی پردازش موازی و ضرورت استفاده از پردازش موازی
  • آشنا نمودن دانشجویان با مدل های مختلف سخت و نرم افزاری پردازش موازی
  • معرفی سخت و نرم افزارهای متداول و در دسترس برای انجام محاسبات موازی
  • زمینه سازی برای ایجاد مهارت های عملی برای انجام محاسبات و برنامه نویسی موازی

شایان ذكر است كه تسلط كامل علمی و عملی بر پردازش موازی مستلزم موارد زیر می باشد:

  • آشنایی كامل با مدل های مختلف سخت افزارهای موازی
  • آشنایی كامل با مدل های مختلف برنامه نویسی های موازی
  • آشنایی با الگوریتم های موازی برای حل مسائل مختلف
  • آشنایی با زبان ها و ابزارهای برنامه نویسی موازی

بدیهی است كه دستیابی به دانش همه جانبه در زمینه پردازش موازی از طریق گذراندن صرفاً یك درس به تنهایی امكان پذیر نبوده و نیازمند مطالعات بیشتر و كسب تجربه عملی در پردازش موازی می باشد. انتظار می رود كه دانشجویان پس از گذراندن این درس با مفاهیم و ابزارهای سخت و نرم افزاری لازم برای انجام پردازش موازی آشنایی های لازم را پیدا نموده به گونه ای كه بتوانند مستقلاً به مطالعات خود ادامه داده و دانش های علمی و عملی برای انجام محاسبات موازی در تحقیقات خود را كسب نمایند.

لینک به دیدگاه

مقدمات و مفاهیم کلی

فهرست مندرجات [نهفتن]

۱ کلیات

۱.۱ پردازش موازی چیست؟

۱.۲ چرا از پردازش موازی استفاده کنیم؟

۲ مفاهیم و اصطلاحات

۲.۱ ساختار رایانه ون‌نویمان[۶]

۲.۲ دسته‌بندی فلین[۱۰]

۲.۳ برخی مفاهیم و اصطلاحات عام در پردازش موازی

۳ ساختار حافظه در رایانه‌های موازی

۳.۱ حافظه مشترک

۳.۲ حافظه توزیع‌شده

۳.۳ حافظه ترکیبی[۱۶]

۴ مدلهای برنامه‌نویسی موازی

۴.۱ کلیات مدلهای برنامه‌نویسی موازی

۴.۲ مدل برنامه‌نویسی برای حافظه مشترک

۴.۳ مدل برنامه‌نویسی با استفاده از نخها

۴.۴ مدل برنامه‌نویسی با استفاده از تبادل پیغامها

۴.۵ مدل برنامه‌نویسی برای داده‌های موازی

۴.۶ سایر مدلهای برنامه‌نویسی موازی

۵ طراحی برنامه‌های موازی

۵.۱ موازی‌سازی دستی در مقابل موازی‌سازی خودکار

۵.۲ ضرورت درک صحیح از مسئله و برنامه

۵.۳ تقسیم‌بندی

۵.۴ ارتباطات

۵.۵ همزمان‌سازی

۵.۶ وابستگی داده‌ها

۵.۷ موازنه محاسبات

۵.۸ دانه‌بندی محاسبات

۵.۹ ورودی و خروجی

۵.۱۰ محدوده و هزینه‌های برنامه‌نویسی موازی

۵.۱۱ آنالیز عملکرد و بهینه‌سازی محاسبات موازی

لینک به دیدگاه

کلیات

پردازش موازی چیست؟

 

اجرای برنامه و محاسبات بصورت سریال

  • اجرای محاسبات بر روی یک پردازشگر
  • تقسیم محاسبات به یک سری محاسبات مجزا
  • اجرا ی عملیات بصورت جداگانه و پشت سر هم
  • اجرای فقط یک عملیات در هر لحظه زمانی

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

اجرای محاسبات بصورت همزمان

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
یا موازی
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • اجرای همزمان یا موازی مستلزم استفاده از بیش از یک پردازنده میباشد
  • محاسبات ابتدا به یک سری محاسبات مجزا تقسیم شده که میتوان آنها را مستقلا انجام داد
  • محاسبات هر قسمت بر روی یک پردازشگر مجزا بصورت همزمان یا موازی انجام میشوند

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

سخت‌افزار موازی میتواند شامل موارد زیر باشد:

  • یک رایانه با چندین پردازنده
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    محاسباتی
  • یک رایانه با پردازنده چند هسته‌ای
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • چندین رایانه که از طریق یک شبکه ارتباطی
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    به یکدیگر متصل باشند
  • ترکیبی از موارد فوق

ماهیت محاسبات یا عملیات بایستی قابلیت اجرا بصورت همزمان را داشته باشد

مثال:

  • چینش تعدادی جعبه بر روی یکدیگر (عملیات سری)

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

  • چینش تعدادی جعبه در کنار یکدیگر (عملیات موازی)

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

به محاسبات زیر توجه فرمایید. به نظر شما کدام یک از این محاسبات قابلیت اجرا بصورت موازی را دارد؟

 

[TABLE=class: notice notice-note noprint, width: 1]

[TR]

[TD]

sum=0. DO 10 i=1,1000 sum=sum+i10 CONTINUE

[/TD]

[/TR]

[/TABLE]

 

 

[TABLE=class: notice notice-note noprint, width: 1]

[TR]

[TD]

x(1)=100. DO 10 i=2,1000 x(i)=sin(x(i-1))10 CONTINUE

[/TD]

[/TR]

[/TABLE]

لینک به دیدگاه

[TABLE=class: notice notice-note noprint, width: 1]

[TR]

[TD]نکته:

 

ما از پردازش موازی در زندگی روزمره به دفعات استفاده کرده و یا مشاهده‌گر آن هستیم!

[/TD]

[/TR]

[/TABLE]

بعنوان مثال:

  • انجام کارها در یک خط تولید صنعتی
  • انجام کار در آشپزخانه یک رستوران یا هتل بزرگ
  • تدوین یک برنامه کامپیوتری توسط یک تیم برنامه‌نویسی
  • تمیز کردن و خانه‌تکانی توسط تمامی اعضای خانواده

با اندکی دقت در این مثالها میتوان دریافت که در پردازش موازی عملا انجام یک سری از فعالیتهای مورد نظر با استفاده از منابع و ابزارهای در دسترس بگونه‌ای مدیریت شده که هم تمامی منابع و ابزارها بنحو احسن استفاده شده و هم فعالیتهای مورد نظر در کمترین زمان به انجام برسند.

موارد استفاده پردازش موازی در علوم و مهندسی

علاوه بر موارد استفاده متعدد پردازش موازی در فعالیتهای روزمره، این موضوع در علوم و مهندسی نیز کاربردهای فراوانی دارد. برخی از موارد کاربرد پردازش موازی در علوم و مهندسی که معمولا از آنها بعنوان محاسبات پیشرفته یاد میشود، عبارتند از:

  • محاسبات هواشناسی و محیط زیست
  • فیزیک محاسباتی (کاربردی، هسته‌ای، ذره‌ای، ماده چگال و ...)
  • علوم زیستی، بیو تکنولوژی و ژنتیک
  • شیمی محاسباتی (دینامیک مولکولی و ....)
  • محاسبات زمین شناسی و زلزله‌سنجی
  • محاسبات در مهندسی مکانیک (دینامیک سیالات محاسباتی، مکانیک محاسباتی و ....)
  • محاسبات در مهندسی برق و الکترونیک (طراحی مدار، میکروالکترونیک و ...)
  • گرافیک کامپیوتری و انیمیشن
  • ریاضیات محاسباتی و رمز‌نگاری

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

سایت

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
مشخصات پرقدرتترین ۵۰۰ ابررایانه جهان را معرفی کرده و آمارهایی از کاربرد و کاربران آنها ارائه داده است. بر اساس آمارهای ارائه شده در این سایت تقسیم بندی کاربران و کاربردهای این قبیل سامانه‌ها عبارت است از:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

لینک به دیدگاه

[h=3]چرا از پردازش موازی استفاده کنیم؟[/h]عمده دلایل استفاده از پردازش موازی عبارتند از:

  • کاهش زمان (و هزینه) اجرای محاسبات
  • انجام محاسبات بزرگتر و حل مسائل با مقیاس بزرگتر
  • فراهم نمودن امکان انجام همزمان محاسبات
  • استفاده از منابع از راه دور (بعنوان مثال به دو پروژه زیر توجه فرمایید:)

  • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    uses over 330,000 computers for a compute power over 528 TeraFLOPS (as of August 04, 2008)
  • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    uses over 340,000 computers for a compute power of 4.2 PetaFLOPS (as of November 4, 2008)

  • رسیدن به محدودیتهای پردازش سریال
    • سرعت حدی انتقال داده (سرعت نور)
    • محدودیت در ساخت و مینیاتوری کردن بوردها
    • محدودیتهای مالی و اقتصادی

[h=2]مفاهیم و اصطلاحات[/h][h=3]ساختار رایانه ون‌نویمان

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
[/h]در سال ۱۹۴۵ میلادی جان ون‌نویمان، ریاضیدان مجارستانی مشخصات کلی یک رایانه الکترونیکی را توصیف نمود. تقریبا تمامی رایانه‌ها بر اساس این طراحی ساخته شده‌اند.

رایانه ون‌نویمان از چهار مولفه اصلی تشکیل شده است که در شکل زیر نمایش داده شده‌اند:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

  • حافظه
  • واحد کنترل
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • واحد محاسبات منطقی
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • ورودی/خروجی
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • هم برنامه و هم داده‌ها در یک حافظه با قابلیت خواندن و نوشتن تصادفی ذخیره میشوند.
  • واحد کنترل عملا دستورات و داده‌ها را از حافظه خوانده و سپس اجرای عملیات را بصورت سری مدیریت میکند.
  • واحد محاسبات عملیات ریاضی را انجام میدهد.
  • ورودی/خروجی رابط رایانه با کاربر میباشد.

لینک به دیدگاه

قوی ترین ابر رایانه های جهان

1-Jaguar: ابر رایانه جگوار که توسط شرکت Cray Inc ساخته شده و هم اکنون در ایالات متحده قرار دارد. این ابر رایانه که لقب قویترین غول محاسباتی دنیا را یدک می کشد دارای توان محاسباتی 1759ترافلاپ است که این رقم با بروز کردن ریزپردازنده های موجود در آن می تواند به 2331ترافلاپ هم برسد.این ابر رایانه متشکل از 224162 هسته محاسباتی Opteron 2.6GHz می باشد که با توجه به 6 هسته ای بودن این سری از پردازنده های AMD در عمل دارای 37360 پردازنده می باشد.در آخر باید از میزان اشتهای مصرف برق این غول هم گفت که 6950.6KW میباشد.

 

 

2-Roadrunner: ابر رایانه رودرانر توسط شرکت معروف IBM ساخته شده و محل فعالیت آن نیز ایالات متحده است.این ابر رایانه دارای توان محاسباتی 1042ترافلاپ است که این رقم با بروز کردن ریزپردازنده های موجود در آن می تواند به 1375.78ترافلاپ هم برسد.این ابر رایانه متشکل از 122400 هسته محاسباتی Opteron 1.8GHz و پردازنده های موسوم به IBM Cell می باشد.میزان مصرف این ماشین محاسباتی 2345.5KW است.

 

 

3-Kraken XT5: ابررایانه کراکن نیز توسط کمپانی Cray Inc سازنده قویترین ابر رایانه جهان ساخته شده و در ایالات متحده قرار دارد.این ابر رایانه دارای توان محاسباتی 831.7ترافلاپ است که این رقم با بروز کردن ریزپردازنده های موجود در آن می تواند به 1028.85ترافلاپ هم برسد.این ابر رایانه متشکل از 98928 هسته محاسباتی Opteron 2.6GHz می باشد که با توجه به 6 هسته ای بودن این سری از پردازنده های AMD در عمل دارای 16488 پردازنده می باشد.

 

 

4-JUGENE: این ابر رایانه توسط شرکت معروف IBM ساخته شده و محل فعالیت آن در کشور اروپایی آلمان قرار دارد.این ابر رایانه دارای توان محاسباتی 825.5ترافلاپ است که این رقم با بروز کردن ریزپردازنده های موجود در آن می تواند به 1002.7ترافلاپ هم برسد همچنین این ابر رایانه دارای 294912 هسته محاسباتی می باشد.

 

 

5-Tianhe-1: این ابر رایانه توسط شرکت NUDT ساخته شده و هم اکنون در شهر تیانجین چین قرار دارد.این ابر رایانه دارای توان محاسباتی 563.1ترافلاپ است که این رقم با بروز کردن ریزپردازنده های موجود در آن می تواند به 1206.19ترافلاپ هم برسد.همچنین این ابر رایانه دارای 71680 هسته محاسباتی می باشد.نکته جالب توجه در مورد این ابر رایانه آن است که علاوه بر استفاده از پردازنده های محاسباتی Xeon شرکت Intel در آن, از پردازنده های گرافیکی ساخت شرکت ATI/AMD نیز استفاده شده که این یعنی استفاده همزمان از تکنولوژی نوظهور GPGPU و روشهای محاسباتی مرسوم.برای پی بردن به قدرت بالای این غول های محاسباتی مقایسه ای(البته بدون منظور) بین آنها با ابر رایانه دانشگاه امیرکبیر داشته باشیم.قدرت محاسباتی این ابر رایانه کشومان حدودا 0.86ترافلاپ می باشد که در مقایسه با ارقام بالا بیشتر حکم یک اسباب بازی را دارد.

منبع:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

[h=3]دسته‌بندی فلین

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
[/h]زایانه‌های موازی را به شیوه‌های مختلفی دسته‌بندی مینمایند. یکی از متداولترین روشها، دسته‌بندی موسوم به دسته‌بندی فلین بوده که از سال ۱۹۶۶ میلادی مورد استفاده بوده است.

در دسته‌بندی فلین رایانه‌های موازی بر اساس دو شاخص عملیات

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
و داده
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
دسته‌بندی میشوند. بر این اساس چهار نوع رایانه موازی قابل تصور میباشد که عبارتند از:

  • Single Instruction, Single Data (SISD)

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

  • یک رایانه سریال
  • در هر سیکل ساعت پردازنده فقط یک عملیات انجام میشود
  • فقط از یک داده در هر سیکل ساعت پردازنده استفاده میشود
  • اجرای قابل پیش بینی
  • رایجترین مدل سخت‌افزاری

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

لینک به دیدگاه

[h=2]ساختار حافظه در رایانه‌های موازی[/h][h=3]حافظه مشترک[/h]

  • مشخصات کلی:
  • تمامی پردازنده‌ها دسترسی به حافظه بعنوان یک فضای یکپارچه و آدرس‌دهی یکسان دارند.
  • پردازنده‌های مختلف مستقلا عمل کرده ولی از حافظه مشترک استفاده میکنند.
  • هر تغییر در حافظه توسط یک پردازنده، بلافاصله توسط تمامی پردازنده‌ها قابل رویت میباشد.
  • بطور کلی رایانه‌های با حافظه مشترک را میتوان به دو دسته کلی بر مبنای دسترسی به حافظه تقسیم نمود:
    • ۱- دسترسی یکنواخت به حافظه
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    • ۲- دسترسی غیر یکنواخت به حافظه
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • دسترسی یکنواخت به حافظه
  • عمدتا در رایانه‌های SMP بکار میرود
  • پردازنده‌های یکسان
  • دسترسی و زمان دسترسی برابر به حافظه
  • از این نوع بعضا بعنوان Cache Coherent UMA (CC-UMA)‎ نیز یاد میشود بدین معنی که اگر یک پردازنده مقدار یک آدرس خانه حافظه را تغییر دهد، تمامی پردازنده‌ها بلافاصله از آن باخبر میشوند و این امر بصورت سخت‌افزاری انجام شده است.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

Shared Memory ‎(UMA)‎

  • دسترسی غیر یکنواخت به حافظه
  • معمولا با اتصال فیزیکی دو یا چند رایانه SMP ساخته میشوند
  • هر SMP میتواند مستقیما به حافظه SMP دیگر دسترسی داشته باشد
  • پردازنده‌ها زمان دسترسی یکسان به تمامی حافظه ندارند
  • دسترسی به حافظه از طریق لینک ارتباطی کندتر است
  • در صورتیکه یکپارچگی حافظه کش حفظ شود به آن CC-NUMA گفته میشود

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

Shared Memory ‎(NUMA)‎

  • مزایا
  • حافظه و آدرس‌دهی یکپارچه برنامه‌نویسی موازی را آسان‌تر مینماید
  • سرعت انتقال داده‌ها بین پردازنده‌ها و عملیات محاسباتی سریع میباشد

  • معایب
  • از نظر سخت‌افزاری افزودن تعداد پردازنده‌ها دشوار است
  • مسئولیت همزمانی و ترتیب صحیح دسترسی به حافظه مستقیما متوجه برنامه‌نویس میباشد
  • هزینه ساخت رایانه‌های با حافظه مشترک و تعداد بالای پردازنده بسیار زیاد است

[h=3]حافظه توزیع‌شده[/h]

  • مشخصات کلی
  • سامانه‌های با حافظه توزیع‌شده به یک شبکه ارتباطی نیاز داشته تا حافظه‌های بین پردازنده‌ها را به هم اتصال دهد

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

Distributed Memory

  • هر پردازنده دارای حافظه مستقل میباشد. آدرس‌دهی حافظه‌ها نیز مستقل بوده و بدین جهت حافظه عمومی
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    در این سامانه‌ها معنا ندارد.
  • پردازنده‌ها مستقل عمل کرده و تغییراتی که در حافظه مستقل صورت میپذیرد تاثیری بر حافظه پردازنده‌های دیگر ندارد
  • در صورتیکه یک پردازنده به حافظه یک پردازنده دیگر نیاز داشته باشد، برنامه‌نویس بایستی بصورت مشخص زمان و نحوه ارتباط و اخذ داده را معین نماید. همچنین سنکرون نموده عملیات دسترسی به حافظه‌ها از مسئولیتهای برنامه‌نویس میباشد.
  • شبکه ارتباطی بین پردازنده‌ها از تنوع بسیار زیادی برخوردار است ولی میتواند به سادگی شبکه اترنت باشد.

  • مزایا
  • میزان حافظه قابل افزایش با افزایش تعداد پردازنده‌ها میباشد.
  • هر پردازنده به راحتی و با سرعت بالا به حافظه اختصاصی خود دسترسی داشته و این دسترسی متاثر از فعالیت دیگر پردازنده‌ها نمیباشد
  • از نظر اقتصادی مقرون به صرفه بوده و میتوان با اتصال رایانه‌های معمولی یک رایانه موازی ایجاد نمود

  • معایب
  • مسئولیت برنامه‌نویس زیاد است
  • در برخی حالات، تصویر نمودن فضای عمومی حافظه بر روی این نوع از حافظه دشوار است
  • دسترسی غیر‌یکنواخت به حافظه از نظر زمان

[h=3]حافظه ترکیبی

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
[/h]

  • پرقدرتترین رایانه‌های جهان از ترکیبی از حافظه مشترک و حافظه توزیع شده استفاده مینمایند.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

Hybrid Distributed-Shared Memory

  • این نوع رایانه‌ها دارای ترکیبی از مشخصات رایانه‌های با حافظه مشترک و حافظه توزیع‌شده میباشند و مزایا و معایب هر دو نوع را بهمراه دارند.
  • هم روند رشد رایانه‌ها و هم گرایش کاربران حاکی از استفاده بیشتر از این نوع رایانه‌ها بوده و به نظر میرسد که در آینده قابل پیش‌بینی این روند ادامه داشته باشد.

لینک به دیدگاه

[h=2]مدلهای برنامه‌نویسی موازی[/h][h=3]کلیات مدلهای برنامه‌نویسی موازی[/h]

  • مدلهای مختلفی برای برنامه‌نویسی موازی وجود دارد که اهم آنها عبارت است از:
    • حافظه مشترک
    • نخها
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    • تبادل پیغام
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    • داده‌های موازی
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    • ترکیبی
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • مدلهای برنامه‌نویسی بعنوان مفاهیم مجرد فراتر از ساختارهای حافظه و سخت‌افزار سیستمها تعریف میشوند و در تئوری هر کدام از مدلهای برنامه‌نویسی را میتوان بر روی هر سخت‌افزاری پیاده‌سازی نمود (البته بازدهی و عملکرد ایده‌آل همواره بستگی جدی به سخت‌افزار خواهد داشت).
  • مدلهای مختلف برنامه‌نویسی را میتوان عملا بر روی هر سخت‌افزاری پیاده‌سازی نمود هر جند که عملکرد آنها بر روی دسته‌ای از سخت‌افزارها بهتر میباشد
  • انتخاب مدل برنامه‌نویسی مناسب برای یک مسئله عمدتا به امکانات موجود، محاسبات مورد نیاز و نهایتا ترجیح شخصی بستگی دارد.

[h=3]مدل برنامه‌نویسی برای حافظه مشترک[/h]

  • در برنامه‌نویسی حافظه مشترک، برنامه‌های اجرایی از یک فضای آدرس دهی مشترک برای حافظه استفاده کرده و بصورت غیر‌هماهنگ و غیر‌همزمان عملیات خواندن و نوشتن را در حافظه انجام میدهند.
  • برای کنترل دسترسی به حافظه و عدم تداخل دسترسی‌ها بایستی از مکانیزمهای مختلفی نظیر انواع قفلها
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    و سمافرها
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    استفاده نمود.
  • با توجه به اینکه در این مدل برنامه‌نویسی تملک اختصاصی داده‌ها مطرح نمیباشد، نیازی به تعیین انتقال صریح داده‌ها بین برنامه‌های اجرایی نبوده و برنامه‌نویسی راحتتر میباشد.
  • یکی از معایب عمده این مدل برنامه‌نویسی فهم و مدیریت خاصیت وابستگی محلی داده‌ها به پردازنده‌ها میباشد.

  • انواع پیاده‌سازی
    • در سخت‌افزارهای موازی با حافظه مشترک، عملا کمپایلرها متغیرهای موجود در برنامه‌های کاربران را تفسیر نموده و بصورت آدرس‌های حقیقی حافظه مشخص مینمایند.
    • هنوز هیچ پیاده‌سازی متداولی از این مدل برای سخت‌افزارهای با حافظه توزیع شده ارائه نشده است. در عین حال برخی تلاشها برای اینکار صورت پذیرفته است.

[h=3]مدل برنامه‌نویسی با استفاده از نخها[/h]

  • در مدل برنامه‌نویسی موازی با استفاده از نخها، یک برنامه اجرایی عملا چندین زیربرنامه اجرایی را ایجاد نموده که بصورت همزمان اجرا میشوند.
  • بصورت ساده، نخهای اجرایی یک برنامه را میتوان بعنوان زیربرنامه‌های
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    آن دانسته که بصورت همزمان اجرا شوند. به شکل زیر توجه فرمایید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

Thread Programming Model

  • برنامه اجرایی a.out توسط سیستم عامل اجرا میشود. این برنامه برای اجرا تمامی منابع لازمه سیستمی و کاربر را برای اجرا در اختیار میگیرد.
  • این برنامه قسمتی از عملیات را بصورت سری انجام داده و در عین حال چندین زیربرنامه اجرایی دیگر ایجاد نموده که توسط سیستم عامل بایستی بصورت همزمان اجرا شوند (زیربرنامه‌های sub2، sub1، ... تا sub4 در این شکل).
  • هر نخ اجرایی داده‌های اختصاصی
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    داشته و در عین حال دسترسی به منابع عمومی نیز دارد. این امر سبب صرفه‌جویی در منابع سیستم میشود و نیازی به ایجاد کپی‌های متعدد برای هر نخ اجرایی نیست.
  • نخهای اجرایی از طریق حافظه عمومی با یکدیگر ارتباط دارند. این امر مستلزم استفاده از مکانیزمهایی است که از عدم تغییر و به‌روزرسانی مقدار متغیرها بصورت همزمان توسط نخهای مختلف جلوگیری نماید.
  • نخهای اجرایی در حین اجرای یک برنامه میتوانند ایجاد شده و به اتمام برسند، اما برنامه اصلی همواره از ابتدا تا انتها بایستی در حال اجرا باشد.
  • مدل برنامه‌نویسی نخها عموما بر روی سخت‌افزارها و سیستم عاملهای با حافظه مشترک پیاده‌سازی میگردد.

  • انواع پیاده‌سازی
    • از دید برنامه‌نویسی، پیاده‌سازی این مدل برنامه‌نویسی همراه با موارد زیر است:
      • فراخوانی کتابخانه‌ای از توابع مورد نیاز در درون برنامه
      • یک سری از دستورات مشخص و توابع کمپایلر که در منبع برنامه آورده میشوند.

  • در هر دو حالت، برنامه‌نویس مسئول تمامی عملیات لازم برای موازی سازی دستورات را دارد.
  • پیاده‌سازی‌های مختلفی از نخها از زمانهای قبل توسط سازندگان مختلف سخت‌افزاری وجود داشته است که عملا برنامه‌نویسی موازی را محدود به اجرای برنامه در همان سخت‌افزارها مینمود.
  • تا کنون دو استاندارد مختلف و مجزا برای پیاده‌سازی نخها ارائه شده است:
    • POSIX Threads
      • مبتنی بر کتابخانه‌های مشخص و نیازمند به برنامه‌نویسی موازی
      • مبتنی بر استاندارد IEEE POSIX 1003.1c standard (1995)
      • فقط قابل استفاده در زبان برنامه‌نویسی C
      • معمولا با نام PThreads شناخته میشود
      • اکثر سازندگان سخت‌افزاری علاوه بر پیاده‌سازیهای اختصاصی خود از PThreads نیز حمایت میکنند.
      • نیاز به برنامه نویسی صریح موازی توسط برنامه‌نویس داشته که بایستی با دقت زیاد همراه باشد.

      [*]OpenMP

      • مبتنی بر دستورات خاص کمپایلر و میتواند در کد سریال نیز استفاده شود
      • استاندارد تعریف شده و مورد حمایت و پشتیبانی مشترک تعداد زیادی از سازندگان سخت‌افزاری
      • مجموعه Fortran API در ۲۸ اکتبر ۱۹۹۷ و مجموعه C/C++ API در اواخر ۱۹۹۸ ارايه شدند.
      • از سیستم عاملهای مختلف پشتیبانی میکند
      • قابل استفاده در زبانهای برنامه‌نویسی Fortran و C و C++‎
      • استفاده بسیار راحتتر در مقایسه با سایر مدلها

  • شرکت مایکروسافت نیز پیاده‌سازی خود را از نخها داشته که مستقل از POSIX Threads و OpenMP میباشد.

لینک به دیدگاه

[h=3]مدل برنامه‌نویسی با استفاده از تبادل پیغامها[/h]مشخصات کلی یک برنامه موازی بر اساس مدل برنامه‌نویسی با استفاده از تبادل پیغامها به شرح زیر میباشد:

  • هر برنامه موازی از تعدادی زیربرنامه که دارای حافظه محلی هستند تشکیل شده است. چند زیربرنامه میتوانند بر روی یک یا چند پردازنده یا رایانه اجرا شوند.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

Message Passing Programming Model

  • زیربرنامه‌ها از طریق ارسال و دریافت پیغام داده‌ها را انتقال میدهند.
  • انتقال و تبادل داده‌ها معمولا مستلزم همکاری ارسال کننده و دریافت کننده پیغام میباشد.
  • پیاده‌سازی
  • از دید برنامه‌نویس، پیاده‌سازی این مدل مستلزم فراخوانی یک مجموعه از کتابخانه‌های لازمه بوده و موازی‌سازی کد تماما بر عهده برنامه‌نویس میباشد.
  • در ابتدا تعداد زیادی کتابخانه‌های تبادل پیغامها وجود داشت که هر کدام برای سخت‌افزار خاصی تهیه شده بود. این امر انتقال برنامه‌ها را از یک رایانه به رایانه‌ای دیگر مشکل مینمود.
  • ویرایش اول پروتکل MPI-1 در سال ۱۹۹۴ میلادی توسط گروه زیادی از متخصصین و شرکتهای بزرگ سخت و نرم‌افزاری ارائه شد و متعاقبا ویرایش MPI-2 در سال ۱۹۹۶ عرضه گردید. این پروتکلها در شبکه اینترنت در دسترس عموم قرار دارند.
  • در حال حاضر پروتکل MPI بعنوان استاندارد صنعتی برای برنامه‌نویسی با استفاده از تبادل پیغامها شناخته میشود. مجموعه‌های مختلفی این پروتکل را را پیاده‌سازی کرده و عرضه نموده‌اند.
  • برای اجرا بر روی سخت‌افزارهای با حافظه مشترک، پیاده‌سازیهای مختلف MPI از شبکه ارتباطی برای تبادل داده‌ها استفاده ننموده و بلکه بدلایل عملکردی از حافظه مشترک و کپی داده‌ها در حافظه استفاده مینمایند.

لینک به دیدگاه
  • 3 هفته بعد...

مدل برنامه‌نویسی برای داده‌های موازی

 

مشخصات مدل برنامه‌نویسی برای داده‌های موازی عبارتند از:

  • عمده محاسبات موازی متوجه اجرای عملیات بر روی یک ساختار داده نظیر آرایه‌ها و یا ماتریسها میباشد.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

Message Passing Programming Model

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

  • در سخت‌افزارهای با حافظه مشترک تمامی زیربرنامه‌ها به ساختار داده از طریق حافظه مشترک دسترسی دارند. در سخت‌افزارهای با حافظه توزیع شده، ساختار داده به قسمتهایی تقسیم شده و هر قسمت در حافظه محلی یک پردازنده قرار دارد.

  • پیاده‌سازی
    • برنامه‌نویسی بر مبنای مدل داده‌های موازی شامل وارد نمودن دستورات خاصی در برنامه موازی میباشد. این دستورات بعضا فراخوانی توابع موازی از یک کتابخانه خاص و یا استفاده از دستورات خاصی در برنامه موازی بوده که قابل تشخیص برای کمپایلر میباشند.
    • Fortran 90 and 95 (F90, F95)‎
    • High Performance Fortran (HPF)‎
    • Compiler Directives

  • پیاده‌سازی این مدل برای سخت‌افزارهای با حافظه توزیع شده بگونه‌ایست که عملا کمپایلر برنامه موازی را بگونه‌ای تبدیل و تفسیر مینماید که فراخوانی لازم از توابع تبادل داده‌ها بصورت خودکار صورت پذیرند.

لینک به دیدگاه
  • 1 ماه بعد...

سایر مدلهای برنامه‌نویسی موازی

 

مدلهای برنامه‌نویسی موازی متعدد بوده و هر روز بر تعداد آنها افزوده میشود. علاوه بر مدلهای متداول یاد شده در بالا، میتوان به سه مدل دیگر نیز اشاره نمود:

  • مدلهای ترکیبی
    • هر ترکیبی از مدلهای یاد شده بالا میتواند بعنوان یک مدل ترکیبی مورد استفاده قرار گیرد.
    • یکی از مدلهای ترکیبی متداول از ترکیب مدل MPI و OpenMP و یا MPI و PThreads استفاده مینماید که برای استفاده بر روی شبکه و یا کلاستری از رایانه‌های SMP بسیار مناسب است.
    • یکی دیگر از مدلهای ترکیبی از تلفیق مدل MPI با مدل Data Parallel ایجاد میشود.

  • Single Program Multiple Data (SPMD)‎
    • این مدل در عمل یک مدل مرتبه بالاتر
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
      بوده که میتوان آنرا بر روی هر کدام از مدلهای قبلی سوار نمود.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

Single Program Multiple Data Model

  • Multiple Program Multiple Data (MPMD)‎
    • این مدل نیز در عمل یک مدل مرتبه بالاتر
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
      بوده که میتوان آنرا بر روی هر کدام از مدلهای قبلی سوار نمود.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

Multiple Program Multiple Data Model

لینک به دیدگاه
  • 3 هفته بعد...

[h=2]طراحی برنامه‌های موازی[/h][h=3]موازی‌سازی دستی در مقابل موازی‌سازی خودکار[/h]

  • موازی سازی برنامه‌های محاسباتی عمدتا یک کار دستی است که در آن برنامه‌نویس مسئولیت شناسایی پتانسیلهای محاسبات موازی و عملا پیاده‌سازی و برنامه‌نویسی آنها را بعهده دارد.
  • عموما، برنامه‌نویسی موازی یک فرآیند پیچیده، زمان‌بر و در معرض اشتباه و خطا بوده که به صورت تکراری انجام میشود.
  • از ابتدای پیدایش برنامه‌نویسی موازی ایده تدوین ابزارهایی که برنامه‌نویسان را در موازی سازی برنامه‌ها یاری دهند وجود داشته که نتیجه آن تدوین کمپایلرها و پیش‌پردازنده‌های موازی‌ساز
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    بوده است.
  • یک کمپایلر موازی‌ساز معمولا به دو صورت میتواند کار کند:
    • ۱- عملکرد کاملا خودکار
      • کمپایلر با بررسی خودکار کد برنامه، موقعیتهای موجود برای موازی سازی را شناسایی میکند.
      • در این بررسی، معمولا موانع موازی‌سازی نیز شناسایی شده و یک برآورد از بهبود عملکرد و سرعت اجرای محاسبات تخمین زده میشود تا توجیه مناسبی برای موازی‌سازی بدست آید.
      • کمپایلرها عمدتا موازی‌سازی حلقه‌های محاسباتی را مد نظر قرار میدهند.

      [*]۲- عملکرد با هدایت برنامه‌نویس

      • با استفاده از دستورات کمپایلر
        برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
        و یا علائم خاص
        برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
        برنامه‌نویس به کمپایلر چگونگی موازی‌سازی را دیکته مینماید.
      • در این حالت، برنامه‌نویس معمولا میتواند از امکانات موازی‌سازی خودکار کمپایلر نیز بهره‌برداری نماید.

  • معمولا به مبتدیها و افرادی که برنامه‌نویسی موازی را شروع مینمایند، استفاده از ابزارهای موازی‌سازی خودکار توصیه میشود. با این حال توجه به نکات زیر بسیار ضروری میباشد:
    • موازی‌سازی خودکار ممکن است که اساسا به نتایج و جوابهای عددی اشتباه منجر شود!
    • عملکرد و سرعت اجرای محاسبات ممکن است که حتی نسبت به برنامه سریال بدتر باشد!
    • این روش انعطاف‌پذیری بسیار کمتری نسبت به روش دستی دارد.
    • موازی‌سازی معمولا به قسمتهای خاصی از کدها (عمدتا حلقه‌های محاسباتی) محدود میشود.
    • ممکن است که در شرایطی و به تشخیص کمپایلر، اساسا موازی‌سازی انجام نگرفته و بررسی کمپایلر مزیتی را برای موازی‌سازی تشخیص ندهد!

[TABLE=class: notice notice-note noprint, width: 866]

[TR]

[TD]! توجه :

در ادامه، به ملاحظات مربوط به موازی‌سازی دستی برنامه‌ها پرداخته میشود.[/TD]

[/TR]

[/TABLE]

[h=3]ضرورت درک صحیح از مسئله و برنامه[/h]

  • بدون تردید اولین مرحله موازی‌سازی یک برنامه، شناخت دقیق و کامل محاسبات مورد نظر و برنامه سریال این محاسبات میباشد.
  • قبل از صرف هرگونه وقت برای موازی‌سازی یک برنامه بهتر است که امکان موازی شدن آن اطمینان حاصل نماییم. بعنوان نمونه به دو مثال زیر توجه فرمایید:

[TABLE=class: notice notice-note noprint, width: 866]

[TR]

[TD]صورت مسئله:

محاسبه انرژی پتانسیل تعداد زیادی ذره مستقل از یکدیگر و سپس تعیین ذره‌ای که بیشترین انرژی را دارد.

[/TD]

[/TR]

[/TABLE]

[TABLE=class: notice notice-note noprint, width: 866]

[TR]

[TD]! توجه :

این محاسبات قابلیت موازی‌ شدن را داشته و میتوان با عملکرد بالا آنرا موازی‌سازی نمود. محاسبه انرژی پتانسیل برای هر ذره مستقل از محاسبه آن برای ذرات دیگر بوده و بدین ترتیب میتواند بصورت کامل موازی‌سازی شود. برای موازی‌سازی تعیین ذره‌ای که بیشترین انرژی را دارد بایستی از روش مناسبی استفاده نمود.

[/TD]

[/TR]

[/TABLE]

[TABLE=class: notice notice-note noprint, width: 866]

[TR]

[TD]صورت مسئله:

پیدا کردن جملات سری فیبوناچی که بعنوان مثال شامل اعداد ۱، ۱، ۲، ۳، ۵، ۸، ۱۳ و غیره میباشد. فرمول محاسبه اعداد سری فیبوناچی بصورت زیر تعریف میشود.

[/TD]

[/TR]

[/TABLE]

F(n)=F(n-1)+F(n-2)

[TABLE=class: notice notice-note noprint, width: 866]

[TR]

[TD]! توجه :

با توجه به این نکته که محاسبه هر جمله سری فیبوناچی به مقدار دو جمله قبلی آن بستگی دارد، این محاسبات بایستی بصورت سری انجام شده و قابلیت موازی‌سازی ندارد.

[/TD]

[/TR]

[/TABLE]

  • تعیین قسمتهایی از برنامه که دربرگیرنده قسمت عمده محاسبات میباشند.
    • معمولا برنامه‌های محاسباتی دارای قسمتهایی بوده که عمده محاسبات در آن قسمتها صورت میپذیرند که به آنها نقاط داغ
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
      اطلاق میشود.
    • استفاده از زمانگیری
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
      و نرم‌افزارهای مربوطه برای تعیین نقاط داغ برنامه
    • برای موازی‌سازی توصیه میشود که در ابتدا بر روی موازی‌سازی نقاط داغ تمرکز شود.

    [*]تشخیص و تعیین گلوگاههای

    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    اجرای موازی محاسبات

    • شناسایی قسمتهایی از برنامه که در اجرا کند بوده و از سرعت اجرای برنامه میکاهند از مسائل مهم در موازی‌سازی بحساب میآید. بعنوان مثال خواندن و نوشتن اطلاعات بر روی دیسک سخت بمراتب از انجام محاسبات کندتر بوده و اجرای برنامه را کند میکند.
    • پس از تشخیص گلوگاهها، بایستی دنبال راه حلهایی بود تا اثر آنها را کاهش داده و یا به روشهای مناسبی آنها را حذف نمود، که این امر به ماهیت گلوگاهها برمیگردد.

    [*]تشخیص و تعیین موانع موازی‌سازی محاسبات

    • یکی دیگر از موارد مهم در شناسایی دقیق محاسبات، شناخت موانع موازی‌سازی نظیر وابستگی داده‌ها
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
      میباشد.

    [*]بررسی الگوریتمهای دیگر برای موازی‌سازی

    • یکی از مهمترین ملاحظات در موازی‌سازی بررسی و تحلیل الگوریتمها متنوع برای موازی‌سازی میباشد، چه اینکه ممکن است که برای اجرای نوع خاصی از محاسبات، بهره‌گیری از روشهای جدیدتر و متفاوت موازی‌سازی بسیار موثرتر باشد.

لینک به دیدگاه

[h=3]تقسیم‌بندی[/h]

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

لینک به دیدگاه
  • 2 هفته بعد...

[h=3]ارتباطات[/h]

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

[h=3]همزمان‌سازی[/h][h=3]وابستگی داده‌ها[/h][h=3]موازنه محاسبات[/h]

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

[h=3]دانه‌بندی محاسبات[/h]

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

[h=3]ورودی و خروجی[/h][h=3]محدوده و هزینه‌های برنامه‌نویسی موازی[/h]

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

لینک به دیدگاه

[h=1]برنامه‌نویسی موازی با استفاده از تبادل پیغام[/h]

  • برای برنامه‌نویسی با استفاده از تبادل پیغام معمولا از دو استاندارد استفاده میشود:
    • ۱- استاندارد ام‌پی‌آی (Message Passing Interface, MPI)
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    • ۲- استاندارد پی‌وی‌ام (Parallel Virtual Machine, PVM)
      برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

هر چند که این دو استاندارد دارای وجوه تشابه فراوانی بوده اما دارای تفاوتهای اصولی نیز میباشند. برای آگاهی بیشتر از مقایسه فنی این دو استاندارد میتوانید به مقالات زیر مراجعه فرمایید:

  • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

[TABLE=class: notice notice-note noprint, width: 696]

[TR]

[TD]نکته:

در این درس فقط استاندارد ام‌پی‌آی مورد بررسی قرار گرفته و تدریس میشود.

[/TD]

[/TR]

[/TABLE]

 


  • ام‌پی‌آی یک تعریف استاندارد از توابع کتابخانه‌ای لازم برای تبادل پیغامها بوده که توسط یک تیم متخصص متشکل از شرکتهای معتبر سخت و نرم‌افزاری و خبرگان تعریف شده و در دسترس عموم قرار گرفته است.
  • اطلاعات جامع و کامل در باره این استاندارد را میتوان در
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    بدست آورد.
  • استاندارد ام‌پی‌آی توسط شرکتها و موسسات (دانشگاهی) مختلفی پیاده‌سازی شده
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    و در اختیار کاربران قرار گرفت است. این مجموعه‌ها عمدتا بصورت آزاد در اختیار عموم قرار دارند و در عین حال ویرایشهای تجاری آن نیز وجود داشته که توسط شرکتهای معتبر نرم‌افزاری تهیه شده و به بازار عرضه میشوند.
لینک به دیدگاه
  • 1 ماه بعد...


  • ام‌پی‌آی یک تعریف استاندارد از توابع کتابخانه‌ای لازم برای تبادل پیغامها بوده که توسط یک تیم متخصص متشکل از شرکتهای معتبر سخت و نرم‌افزاری و خبرگان تعریف شده و در دسترس عموم قرار گرفته است.
  • اطلاعات جامع و کامل در باره این استاندارد را میتوان در
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    بدست آورد.
  • استاندارد ام‌پی‌آی توسط شرکتها و موسسات (دانشگاهی) مختلفی پیاده‌سازی شده
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    و در اختیار کاربران قرار گرفت است. این مجموعه‌ها عمدتا بصورت آزاد در اختیار عموم قرار دارند و در عین حال ویرایشهای تجاری آن نیز وجود داشته که توسط شرکتهای معتبر نرم‌افزاری تهیه شده و به بازار عرضه میشوند.
  • تاریخچه مختصری از چگونگی پیدایش و تکامل استاندارد ام‌پی‌آی در زیر آورده شده است:

  • Version 2.2: September 4, 2009. This document contains mostly corrections and clarifications to the MPI 2.1 document. A few extensions have been added; however all correct MPI 2.1 programs are correct MPI 2.2 programs. New features were adopted only when there were compelling needs for users, open source implementations, and minor impact on existing MPI implementations.

  • Version 2.1: June 23, 2008. This document combines the previous documents MPI-1.3 (May 30, 2008) and MPI-2.0 (July 18, 1997). Certain parts of MPI-2.0, such as some sections of Chapter 4, Miscellany, and Chapter 7, Extended Collective Operations have been merged into the Chapters of MPI-1.3. Additional errata and clarifications collected by the MPI Forum are also included in this document.

  • Version 1.3: May 30, 2008. This document combines the previous documents MPI-1.1 (June 12, 1995) and the MPI-1.2 Chapter in MPI-2 (July 18, 1997). Additional errata collected by the MPI Forum referring to MPI-1.1 and MPI-1.2 are also included in this document.

  • Version 2.0: July 18, 1997. Beginning after the release of MPI-1.1, the MPI Forum began meeting to consider corrections and extensions. MPI-2 has been focused on process creation and management, one-sided communications, extended collective communications, external interfaces and parallel I/O. A miscellany chapter discusses items that don't fit elsewhere, in particular language interoperability.

  • Version 1.2: July 18, 1997. The MPI-2 Forum introduced MPI-1.2 as Chapter 3 in the standard " MPI-2: Extensions to the Message-Passing Interface", July 18, 1997. This section contains clarifications and minor corrections to Version 1.1 of the MPI Standard. The only new function in MPI-1.2 is one for identifying to which version of the MPI Standard the implementation conforms. There are small differences between MPI-1 and MPI-1.1. There are very few differences between MPI-1.1 and MPI-1.2, but large differences between MPI-1.2 and MPI-2.

  • Version 1.1: June, 1995. Beginning in March, 1995, the Message-Passing Interface Forum reconvened to correct errors and make clarifications in the MPI document of May 5, 1994, referred to below as Version 1.0. These discussions resulted in Version 1.1, which is this document. The changes from Version 1.0 are minor. A version of this document with all changes marked is available. This paragraph is an example of a change.

[TABLE=class: notice notice-note noprint, width: 696]

[TR]

[TD]! توجه :

با توجه به اینکه همچنان استفاده از ویرایشهای مختلف استاندارد ام‌پی‌آی متداول بوده، کاربران بایستی دقت نمایند که از کدام ویرایش استفاده نموده و نرم‌افزار مناسب را در اختیار گیرند.

[/TD]

[/TR]

[/TABLE]

  • برخی از ویرایشهای پیاده‌سازی شده معتبر استاندارد ام‌پی‌آی عبارتند از:
    • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

    [*]این ویرایشها در پیاده‌سازی استاندارد یکسان بوده اما در نحوه‌ی اجرای برنامه‌های موازی ممکن است که با یکدیگر تفاتهایی داشته باشند.

    [*]شرکتهای بزرگ نرم‌افزاری نظیر Intel، Portland Group و Microsoft هر کدام ویرایشهایی از استاندارد ام‌پی‌آی را در محصولات خود وارد نموده و به کاربران عرضه نموده‌اند.

    [*]

    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    را میتوان از این
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    بدست آورد.

    [*]لیستی از ابزارها و نرم‌افزارهای معتبری که از استاندارد ام‌پی‌آی استفاده کرده‌اند را در

    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    میتوان ملاحظه نمود.

[TABLE=class: notice notice-note noprint, width: 696]

[TR]

[TD]نکته:

برای نصب OpenMPI به

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
مراجعه فرمایید.

[/TD]

[/TR]

[/TABLE]

  • مرجع مورد استفاده برای مطالب این درس در این فایل پی‌دی‌اف قابل دسترس میباشند.
  • برای فراگیری شیوه نگارش، کمپایل کردن و اجرای برنامه‌های موازی در سیستم عامل لینوکس به این
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    مراجعه نمایید.

  • یک
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.


  • لیستی از توابع ام‌پی‌آی در
    برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    در دسترس میباشد.


مطالب این فصل عمدتا از سایت
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
اتخاذ شده و در
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
ارائه شده‌اند.


[h=2]پانویسها[/h]

  • برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
    MPI Implementations

لینک به دیدگاه

[h=1]برنامه‌نویسی موازی برای رایانه‌های موازی با حافظه مشترک[/h]


مطالب این فصل عمدتا از سایت
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
اتخاذ شده و در
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
ارائه شده‌اند.

 

 

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

پایان

لینک به دیدگاه
  • 3 سال بعد...

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...