اپن ام‌پی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو
OpenMP
OpenMP logo
نویسنده(های) اصلیOpenMP Architecture Review Board[۱]
توسعه‌دهنده(ها)OpenMP Architecture Review Board[۱]
نسخهٔ پایدار
4.5 / ۱۵ نوامبر ۲۰۱۵؛ ۴ سال پیش (۲۰۱۵-۱۱-15)
سیستم‌عاملچندسکویی
سکوچندسکویی
گونهگسترشی برای سی, سی++, و فورترن; رابط برنامه‌نویسی نرم‌افزار
پروانهگوناگون[۲]
وبگاهopenmp.org

اُپن‌اِم‌پی (به انگلیسی: Open Multi-Processing) یک رابط برنامه‌نویسی است که از برنامه‌نویسی چندسکویی و چندپردازشی با حافظه اشتراکی در زبان‌های سی، سی++ و فرترن روی اکثر معماری‌های پردازنده و سیستم عامل‌های گوناگون نظیر لینوکس، ویندوز، مک اواس، سولاریس، AIX و HP-UX پشتیبانی می‌کند.[۳]

طراحی

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

قسمت کد که به معنای به صورت موازی اجرا می‌شود، براساس آن، با دستورالعمل کامپایلر مشخص می‌شود که باعث می‌شود تا موضوعات قبل از اجرای بخش اجرا شود. [3] هر موضوع دارای شناسه متصل به آن است که می‌تواند با استفاده از یک تابع (به نام omp_get_thread_num ()) بدست آید. شناسه رشته یک عدد صحیح است، و موضوع اصلی دارای عدد صفر است. پس از اجرای کدهای parallelized، رشته‌ها به موضوع master متصل می‌شوند، که به سمت پایان برنامه ادامه می یابد.

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

محیط زمان اجرا موضوعات را به پردازنده‌ها بسته به نوع استفاده، بارگذاری دستگاه و سایر عوامل اختصاص می‌دهد. محیط زمان اجرا می‌تواند تعداد موضوعات را بر اساس متغیرهای محیطی اختصاص دهد یا کد می‌تواند با استفاده از توابع انجام دهد. توابع OpenMP در یک فایل هدر با برچسب omp.h در C / C ++ قرار گرفته‌ است.

منابع یادگیری برخط[ویرایش]

جستارهای وابسته[ویرایش]

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا. «OpenMP». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۵ ژوئن ۲۰۱۵.

  1. ۱٫۰ ۱٫۱ "About the OpenMP ARB and". OpenMP.org. 2015-11-15. Archived from the original on 9 August 2013. Retrieved 2013-08-14.
  2. "OpenMP Compilers". OpenMP.org. 2013-04-10. Retrieved 2013-08-14.
  3. OpenMP Tutorial at Supercomputing 2008