مقدمه
MPI چیست؟
ویژگیهای کلیدی MPI
- MPI_Send / MPI_Recv (مسدودکننده)
- MPI_Isend / MPI_Irecv (غیرمسدودکننده برای همپوشانی محاسبه و ارتباط)
- MPI_Sendrecv (ارسال و دریافت همزمان)
- MPI_Bcast: پخش یک داده از یک فرآیند به همه
- MPI_Scatter / MPI_Gather: توزیع و جمعآوری داده
- MPI_Reduce / MPI_Allreduce: عملیات کاهش ( مانند جمع، میانگین، حداکثر، حداقل) روی همه فرآیندها
- MPI_Alltoall: ارسال داده از یک فرآیند به همه فرآیندهای دیگر
- MPI_Barrier: همگامسازی همه فرآیندها (همه منتظر میمانند تا همه برسند)
تاخیر و پهنای باند شبکهها در MPI
پیادهسازی عملی
یک برنامه ساده MPI در C
#include // کتابخانه اصلی MPI
#include // برای printf
int main(int argc, char** argv) {
// خط ۱: شروع محیط MPI
MPI_Init(&argc, &argv);
// خط ۲: گرفتن شماره فرآیند (rank) و تعداد کل فرآیندها (size)
int rank, size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank); // rank من چند است؟
MPI_Comm_size(MPI_COMM_WORLD, &size); // کل چند فرآیند داریم؟
// خط ۳: هر فرآیند خودش را معرفی میکند
printf("سلام از فرآیند شماره %d از %d فرآیند\n", rank, size);
// خط ۴: یک مثال کوچک عملیات جمعی (Reduce)
int local_value = rank * 10; // هر فرآیند یک عدد محلی دارد
int global_sum = 0; // متغیر برای جمع نهایی
// خط ۵: همه فرآیندها عدد محلی خود را جمع میکنند و نتیجه به فرآیند ۰ میرود
MPI_Reduce(&local_value, &global_sum, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
// خط ۶: فقط فرآیند ۰ (معمولاً root) نتیجه را چاپ میکند
if (rank == 0) {
printf("جمع کل: %d\n", global_sum);
}
// خط ۷: پایان محیط MPI
MPI_Finalize();
return 0;
}
سلام از فرآیند شماره 0 از 4 فرآیند
سلام از فرآیند شماره 1 از 4 فرآیند
سلام از فرآیند شماره 2 از 4 فرآیند
سلام از فرآیند شماره 3 از 4 فرآیند
جمع کل: 60
ترتیب چاپ سلامها ممکن است متفاوت باشد چون فرآیندها همزمان اجرا میشوندجمعبندی
MPI در سال ۲۰۲۵، نه فقط یک کتابخانه، بلکه زبان مشترک ابررایانهها است. زبانی که میلیونها هسته را هماهنگ میکند، شبیهسازیهای علمی را ممکن میسازد و پایه آموزش مدلهای بزرگ هوش مصنوعی است. از پیامرسانی نقطهبهنقطه تا عملیات جمعی پیشرفته، MPI عملکرد، قابلیت حمل و مقیاسپذیری را به برنامههای موازی میبخشد. برای دانشجویان دکترا، MPI دریچهای به تحقیق در ارتباطات کمتأخیر، GPU-aware MPI و hybrid MPI+OpenMP است. حالا شروع کنید: یک برنامه ساده MPI بنویسید، آن را روی چند هسته اجرا کنید و ببینید چگونه قدرت موازیسازی را حس میکنید. آینده محاسبات با عملکرد بالا، موازی و MPI است.
سوالات متداول
-
MPI چیست؟
- تفاوت MPI با OpenMP؟
- چالش اصلی MPI چیست؟

اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
ثبت نظر