امروز ما سخنرانی عملی ۲.۱ خود را دربارهی درک واقعی مبادلات پیام MPI (مبادلات نقطه به نقطه در MPI) انجام خواهیم داد. MPI، یا رابط پیام نمای پیام (Message Passing Interface)، یکی از مهمترین مکانیزمهای برنامهنویسی موازی است که در برنامهنویسی برای محاسبات موازی بسیار کاربرد دارد.
در این سخنرانی، به بررسی عمیق تر مفاهیم و روشهای MPI میپردازیم. MPI به برنامهنویسان این امکان را میدهد که اطلاعات را بین چندین پردازنده انتقال دهند و در محاسبات موازی بهینهسازی کنند. در ادامه، با استفاده از مثالهای کاربردی، نحوه استفاده از این تکنولوژی را نشان خواهیم داد.
برای شروع، مفاهیم اساسی MPIرا مورد بررسی قرار میدهیم و سپس به مباحث پیشرفتهتر پرداخته و نمونههای کاربردی برای حل مسائل مختلف موازی را مورد بررسی قرار میدهیم. همچنین، مباحثی از قبیل ارسال و دریافت پیامها، مکانیزمهای کاهش و توزیع داده را نیز بررسی خواهیم کرد.
ما از شما دعوت میکنیم تا در این سخنرانی عملی با ما همراه باشید تا با دقت به جزئیات و کدهای مختلف MPI پی ببرید و مفاهیم را به طور کامل درک کنید.
کل پردازندههای موجود در دنیای MPI یا فرآیندههای واقعی را میدهد و سپس همیشه میتوانید رتبهی منحصر به فرد خود را تعیین کنید. این رتبه منحصر به فرد بسیار مهم است که در طول سخنرانی امروز، در چگونگی استفاده از این تبادل پیام و منطق برنامه با آن مفید است. بنابراین، محیط MPI به شما این امکان را میدهد و با انجام این کار، قدرتمند و مؤثر است.
بنابراین، اساساً باید در یک زمان نهایی این را مشخص کنیم. میتوانید متوجه شوید که محاسبات موازی واقعی با MPI بین این `MPI_Init` و `MPI_Finalize` ممکن است انجام شود.
و با انجام این مثال حداقل علاوه بر دنیای "Hello"، که اساساً هر یک از برنامهها انجام دادند، درست SPMD همان برنامه با چندین داده است. این به این معنی است که رتبهها به طور متفاوتی توسط محیط MPI پر میشوند.
و به این ترتیب، حداقل آخرین بار بتوانیم کمی از دنیای "Hello World" نشان دهیم که من یکی از این تعداد را میشناسم. پردازندهها واقعاً امروز وقتی به این موضوع فکر میکنیم این کار را انجام خواهیم داد و مثالی برای شما خواهیم زد.
ما همچنین در مورد اینکه این دنیای جالب MPIچیست و این همان ارتباط دهنده است، همانطور که میگوییم، فضایی است که شما در آن یک ارتباط MPI انجام میدهید. و اساساً شما میتوانید دنیای MPIرا در هر برنامه MPI داشته باشید، زیرا این یک ارتباط دهنده اساسی است که شامل تمام فرآیندههای برنامه میشود.
وقتی نمونههای پیچیدهتری دارید، میتوانید گروهی از فرآیندههای خود را ایجاد کنید و با انجام این کار، میتوانید گروهی از فرآیندههای خود را مجدداً با رتبههای جدید در این ارتباط دهنده شروع کنید. بنابراین، رتبهی خاصی که انتخاب میکنید، معتبر است و فاکتور مهمی است که در اینجا از 0 تا 9 همه رتبههای مختلف این 10 فرآیند را میبینید.
همچنین براساس این رتبهها، آنها را به دو گروه تقسیم میکنید و ارتباط دهنده جدیدی میسازید که واقعاً ممکن است و ما در یکی از سخنرانیهای بعدی انجام خواهیم داد. بنابراین، شما رتبههای جدیدی دارید که البته در ارتباطاتی که به شما کمک میکند و مثالهای بیشتری را در اختیار شما قرار میدهد.
زمانی که امروز برای پینگ پنگ به عنوان مثال برای استفاده از پیامها واقعاً استفاده کنیم، این رتبه فوقالعاده مهم میشود و اگر به سخنرانیهای بعدی بروید، به اصطلاح خواهیم داشت ارتباط دهنده دکارتی که البته سیستماتیک بسیار جالبی نیز برای آن دارد، همانطور که نام دکارتی به عنوان یک ایده شبکه نشان میدهد که در واقع تبادل پیام را سادهتر میکند، به عنوان مثال زمانی که میخواهید در اینجا امواج و غیره را شبیهسازی کنید.
با این حال، ما هنوز یک سخنرانی مفهومی داشتیم که دفعه قبل هیچ نمونهای از حرفهای را نشان ندادم و بسیاری از شما میدانید که تکلیف یک واقعاً مستقیماً با آن مرتبط است. به همین دلیل است که امروز ما یک سخنرانی عملی داریم که یک عنصر اضافی برای آن دارد. آن چیزی است که آخرین بار دیدهاید که چند مثال جالب را در اختیار شما قرار دهم و این چند مثال در مورد رتبه MPIآغاز میشود و نشان میدهد که چگونه میتوان از یک برنامه ساده C به یک برنامه MPI رسید.