.\" Man page generated from reStructuredText. . .TH "OMPI-WRAPPER-COMPILER" "1" "Feb 23, 2026" "" "Open MPI" . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp mpicc, mpic++, mpicxx, mpifort, mpijavac — کامپایلرهای پوششی Open MPI .SH "سینتکس (SYNTAX)" .sp \fBmpicc [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .sp \fBmpic++ [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .sp \fBmpicxx [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .sp \fBmpifort [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .sp \fBmpijavac [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .sp دستورهای منسوخ‌شدهٔ زیر نیز در دسترس هستند — اما باید به جای آن‌ها از \fBmpifort\fP استفاده شود: .sp \fBmpif77 [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .sp \fBmpif90 [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .sp در سیستم‌های فایل حساس به حروف بزرگ و کوچک، دستور زیر نیز در دسترس خواهد بود: .sp \fBmpiCC [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP .SH "گزینه‌ها (OPTIONS)" .sp گزینه‌های زیر برای همهٔ کامپایلرهای پوششی اعمال می‌شوند: .INDENT 0.0 .IP \(bu 2 \fB\-\-showme\fP: این گزینه دارای چندین شکل مختلف است (پایین را ببینید). هیچ‌یک از این شکل‌ها کامپایلر زیرین را فراخوانی نمی‌کنند؛ همهٔ آن‌ها اطلاعاتی دربارهٔ نحوهٔ فراخوانی کامپایلر زیرین در صورتی که از \fB\-\-showme\fP استفاده نمی‌شد ارائه می‌دهند. گزینهٔ اصلی \fB\-\-showme\fP خط فرمانی را که برای کامپایل برنامه اجرا می‌شد در خروجی نمایش می‌دهد. .sp \fBنکته:\fP .INDENT 2.0 .INDENT 3.5 اگر یک آرگومان غیر از نام فایل در خط فرمان ارسال شود، گزینهٔ \fB\-\-showme\fP هیچ پرچم اضافی را نمایش \fIنخواهد داد\fP. برای نمونه، هر دو دستور \fB"mpicc \-\-showme\fP و \fBmpicc \-\-showme my_source.c\fP تمام پرچم‌های ارائه‌شده توسط پوشش را نمایش خواهند داد. اما دستور \fBmpicc \-\-showme \-v\fP فقط نام کامپایلر زیرین و \fB\-v\fP را نمایش خواهد داد\&. .UNINDENT .UNINDENT .IP \(bu 2 \fB\-\-showme:compile\fP: پرچم‌های کامپایلری را که به کامپایلر زیرین ارائه می‌شد در خروجی نمایش می‌دهد. .IP \(bu 2 \fB\-\-showme:link\fP: پرچم‌های پیونددهنده‌ای را که به کامپایلر زیرین ارائه می‌شد در خروجی نمایش می‌دهد. .IP \(bu 2 \fB\-\-showme:command\fP: فرمان کامپایلر زیرین (که ممکن است یک یا چند نشانه باشد) را در خروجی نمایش می‌دهد. .IP \(bu 2 \fB\-\-showme:incdirs\fP: فهرستی جداشده با فاصله (اما در غیر این صورت ساده و بدون قالب‌بندی اضافی) از دایرکتوری‌هایی که کامپایلر پوششی برای مشخص کردن محل فایل‌های سرایند مربوطه به کامپایلر زیرین ارائه می‌داد را در خروجی نمایش می‌دهد. .IP \(bu 2 \fB\-\-showme:libdirs\fP: فهرستی جداشده با فاصله (اما در غیر این صورت ساده و بدون قالب‌بندی اضافی) از دایرکتوری‌هایی که کامپایلر پوششی برای مشخص کردن محل کتابخانه‌های مربوطه به پیونددهندهٔ زیرین ارائه می‌داد را در خروجی نمایش می‌دهد. .IP \(bu 2 \fB\-\-showme:libs\fP فهرستی جداشده با فاصله (اما در غیر این صورت ساده و بدون قالب‌بندی اضافی) از نام کتابخانه‌هایی که کامپایلر پوششی برای پیوند دادن یک برنامه به کار می‌برد را در خروجی نمایش می‌دهد. برای مثال: \fBmpi open\-pal util\fP\&. .IP \(bu 2 \fB\-\-showme:version\fP: شمارهٔ نسخهٔ Open MPI را در خروجی نمایش می‌دهد. .IP \(bu 2 \fB\-\-showme:help\fP: یک پیام راهنمای خلاصه از نحوهٔ استفاده را در خروجی نمایش می‌دهد. .UNINDENT .sp برای سایر گزینه‌هایی که می‌توانند از طریق mpicc ارسال شوند، به صفحهٔ راهنمای کامپایلر زیرین خود مراجعه کنید. .SH "توضیحات (DESCRIPTION)" .sp از نظر مفهومی، نقش این دستورها کاملاً ساده است: افزودن شفاف پرچم‌های مرتبط کامپایلر و پیونددهنده به خط فرمان کاربر که برای کامپایل / پیوند برنامه‌های Open MPI ضروری هستند، و سپس فراخوانی کامپایلر زیرین برای اجرای واقعی فرمان. .sp به همین دلیل، از این دستورها مکرراً با عنوان کامپایلرهای «پوششی» (wrapper) یاد می‌شود زیرا خود آن‌ها برنامه‌ها را کامپایل یا پیوند نمی‌زنند؛ آن‌ها صرفاً پرچم‌های خط فرمان را افزوده و کامپایلر پشتی (back\-end) را فراخوانی می‌کنند. .SH "پیش‌زمینه (BACKGROUND)" .sp پروژهٔ Open MPI کامپایلرهای پوششی را برای چندین زبان ارائه می‌دهد: .INDENT 0.0 .IP \(bu 2 \fBmpicc\fP: زبان C .IP \(bu 2 \fBmpic++\fP، \fBmpicxx\fP (و در سیستم‌های دارای سیستم فایل حساس به حروف بزرگ و کوچک، \fBmpiCC\fP): زبان C++ .sp \fBنکته:\fP .INDENT 2.0 .INDENT 3.5 دستورهای \fBmpic++\fP، \fBmpicxx\fP و \fBmpiCC\fP همگی همان کامپایلر زیرین C++ را با همان گزینه‌ها فراخوانی می‌کنند. همگی صرفاً جهت سازگاری با سایر پیاده‌سازی‌های MPI ارائه شده‌اند. .UNINDENT .UNINDENT .IP \(bu 2 \fBmpifort\fP (و نام‌های مستعار موروثی/منسوخ آن \fBmpif77\fP و \fBmpif90\fP): زبان Fortran .IP \(bu 2 \fBmpijavac\fP: زبان Java .UNINDENT .sp کامپایلرهای پوششی برای هر یک از زبان‌ها یکسان هستند؛ می‌توان از آن‌ها به‌جای یکدیگر استفاده کرد. نام‌های مختلف صرفاً جهت سازگاری رو به عقب ارائه شده‌اند. .SH "نکات فورترن (FORTRAN NOTES)" .sp کامپایلر پوششی Fortran برای MPI (\fBmpifort\fP و نام‌های موروثی/منسوخ آن \fBmpif77\fP و \fBmpif90\fP) می‌تواند برنامه‌های MPI را که از هرکدام/همهٔ انقیادهای (bindings) فورترن MPI استفاده می‌کنند کامپایل و پیوند کند: \fBmpif.h\fP، ماژول \fBmpi\fP و ماژول \fBmpi_f08\fP (به این فرض که Open MPI با پشتیبانی از هر یک از این انقیادهای Fortran نصب شده باشد). به‌طور مشخص: دیگر نیازی به استفاده از کامپایلرهای پوششی متفاوت برای برنامه‌هایی که از \fBmpif.h\fP استفاده می‌کنند در مقایسه با برنامه‌هایی که از ماژول \fBmpi\fP استفاده می‌کنند نیست — فقط از \fBmpifort\fP برای تمام برنامه‌های Fortran MPI استفاده کنید. .sp با این حال، توجه داشته باشید که کامپایلر Fortran ممکن است به گزینه‌های خط فرمان اضافی برای اعمال یک گویش خاص از Fortran نیاز داشته باشد. برای مثال، در برخی از نسخه‌های کامپایلر IBM XLF، اگر \fBxlf90\fP کامپایلر زیرین Fortran باشد، ممکن است برای کامپایل فایل‌های منبع Fortran با قالب ثابت (fixed\-format)، گزینهٔ \fB\-qfixed\fP ضروری باشد. .sp در نهایت، دقت داشته باشید که اگر پشتیبانی از Fortran در لایهٔ MPI ساخته نشده باشد، \fBmpifort\fP غیرفعال خواهد بود و در صورت استفاده خطا بازمی‌گرداند. .SH "نمای کلی (OVERVIEW)" .sp دستور \fBmpicc\fP یک پوشش تسهیل‌کننده برای کامپایلر زیرین C است. ترجمهٔ یک برنامهٔ Open MPI نیازمند پیوند دادن کتابخانه‌های ویژهٔ Open MPI است که ممکن است در یکی از دایرکتوری‌های استاندارد جستجوی \fBld(1)\fP قرار نداشته باشند\&. این امر همچنین اغلب مستلزم گنجاندن فایل‌های سرایندی است که ممکن است در یک مکان استاندارد یافت نشوند. .sp دستور \fBmpicc\fP آرگومان‌های خود را همراه با گزینه‌های \fB\-I\fP، \fB\-L\fP و \fB\-l\fP که برای برنامه‌های Open MPI الزامی هستند، به کامپایلر زیرین C منتقل می‌کند. .sp این موضوع برای تمام کامپایلرهای پوششی سایر زبان‌ها نیز صدق می‌کند. .sp تیم Open MPI \fIاکیداً\fP توصیه می‌کند که به جای تلاش برای پیوند دستی به کتابخانه‌های Open MPI، از کامپایلرهای پوششی استفاده کنید. این رویکرد به پیاده‌سازی خاص Open MPI اجازه می‌دهد تا بدون تحمیل تغییرات به دستورالعمل‌های پیونددهنده در Makefile کاربران تغییر کند. در واقع، مجموعهٔ خاص پرچم‌ها و کتابخانه‌های مورد استفاده توسط کامپایلرهای پوششی به نحوهٔ پیکربندی و ساخت Open MPI بستگی دارد؛ این مقادیر می‌توانند بین نصب‌های مختلف از یک نسخه از Open MPI تغییر کنند. .sp در واقع، از آنجا که این پوشش‌ها صرفاً پوسته‌های نازکی بر فراز یک کامپایلر زیرین هستند، دلایل قانع‌کنندهٔ بسیار بسیار کمی برای \fIعدم\fP استفاده از کامپایلرهای پوششی Open MPI وجود دارد. هنگامی که استفادهٔ مستقیم از پوشش‌ها امکان‌پذیر نیست، باید از گزینه‌های \fB\-\-showme:compile\fP و \fB\-\-showme:link\fP برای تعیین اینکه پوشش‌ها از چه پرچم‌هایی استفاده می‌کردند، بهره گرفت. برای مثال: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C shell$ cc \-c file1.c \(gampicc \-\-showme:compile\(ga shell$ cc \-c file2.c \(gampicc \-\-showme:compile\(ga shell$ cc file1.o file2.o \(gampicc \-\-showme:link\(ga \-o my_mpi_program .ft P .fi .UNINDENT .UNINDENT .SH "نکات (NOTES)" .sp امکان دارد که کامپایلرهای پوششی با قابلیت آگاهی از چندکتابخانه‌ای (multi\-lib) پیکربندی شوند. بدین معنا که کتابخانه‌ها و فایل‌های سرایند گنجانده‌شده ممکن است بر اساس پرچم‌های تعیین‌شده برای کامپایلر متفاوت باشند (برای مثال، با کامپایلرهای GNU در لینوکس، در صورت مشاهدهٔ \fB\-m32\fP در مقایسه با مشاهدهٔ \fB\-m64\fP ممکن است مسیر متفاوتی برای کتابخانه‌ها استفاده شود). این رفتار پیش‌فرض در ساخت استاندارد نیست، اما می‌تواند فعال شود (برای مثال، در یک بستهٔ باینری که پشتیبانی از هر دو حالت ۳۲ و ۶۴ بیتی را ارائه می‌دهد). \fI\%اطلاعات بیشتر را می‌توانید در اینجا بیابید\fP\&. .SH "فایل‌ها (FILES)" .sp رشته‌هایی که کامپایلرهای پوششی پیش از فراخوانی کامپایلر زیرین در خط فرمان درج می‌کنند، در یک فایل متنی ذخیره شده‌اند که توسط Open MPI ایجاد و در \fB$pkgdata/NAME\-wrapper\-data.txt\fP نصب می‌شود، که در آن: .INDENT 0.0 .IP \(bu 2 \fB$pkgdata\fP معمولاً \fB$prefix/share/openmpi\fP است .IP \(bu 2 \fB$prefix\fP دایرکتوری اصلی و سطح بالای نصب Open MPI است .IP \(bu 2 \fBNAME\fP نام کامپایلر پوششی است (برای مثال، \fB$pkgdata/mpicc\-wrapper\-data.txt\fP) .UNINDENT .sp به‌ندرت ویرایش این فایل‌ها ضرورت پیدا می‌کند، اما می‌توان آن‌ها را بررسی کرد تا مشخص شود چه پرچم‌هایی توسط پوشش‌ها در خط فرمان قرار داده می‌شوند. .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .sp به‌طور پیش‌فرض، پوشش‌ها از کامپایلرهایی استفاده می‌کنند که هنگام پیکربندی Open MPI انتخاب شده بودند. این کامپایلرها یا به‌طور خودکار توسط اسکریپت «configure» مربوط به Open MPI پیدا شده بودند، یا پیش از فراخوانی \fBconfigure\fP توسط کاربر در متغیرهای محیطی \fBCC\fP، \fBCXX\fP و/یا \fBFC\fP تعیین گردیده بودند. علاوه بر این، آرگومان‌های دیگری مختص کامپایلر ممکن است توسط configure انتخاب شده باشند. .sp این مقادیر را می‌توان با ویرایش فایل‌های متنی حاوی اطلاعات این پیکربندی (بخش \fI\%فایل‌ها (FILES)\fP را ببینید) یا با تعیین متغیرهای محیطی انتخابی به صورت \fBompi_value\fP، به‌صورت گزینشی بازنویسی کرد. .sp نام‌های معتبر مقادیر عبارتند از: .INDENT 0.0 .IP \(bu 2 \fBCPPFLAGS\fP: پرچم‌های افزوده‌شده هنگام فراخوانی پیش‌پردازنده (C یا C++) .IP \(bu 2 \fBLDFLAGS\fP: پرچم‌های افزوده‌شده هنگام فراخوانی پیونددهنده (C، C++ یا Fortran) .IP \(bu 2 \fBLIBS\fP: کتابخانه‌های افزوده‌شده هنگام فراخوانی پیونددهنده (C، C++ یا Fortran) .IP \(bu 2 \fBCC\fP: کامپایلر C .IP \(bu 2 \fBCFLAGS\fP: پرچم‌های کامپایلر C .IP \(bu 2 \fBCXX\fP: کامپایلر C++ .IP \(bu 2 \fBCXXFLAGS\fP: پرچم‌های کامپایلر C++ .IP \(bu 2 \fBFC\fP: کامپایلر Fortran .IP \(bu 2 \fBFCFLAGS\fP: پرچم‌های کامپایلر Fortran .UNINDENT .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2003-2026, The Open MPI Community .\" Generated by docutils manpage writer. .