اپن ام‌پی

اُپن‌اِم‌پی  یک رابط برنامه‌نویسی است که از برنامه‌نویسی چندسکویی و چندپردازشی با حافظه اشتراکی در زبان‌های سی، سی++ و فرترن روی اکثر معماری‌های پردازنده و سیستم عامل‌های گوناگون نظیر لینوکس، ویندوز، مک اواس، سولاریس، AIX و HP-UX پشتیبانی می‌کند.

طراحی 

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

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

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

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

منابع یادگیری برخط 

 ویدئوهای آموزشی در یوتیوب 
 منابع آموزشی  روی وبگاه آزمایشگاه ملی لارنس لیورمور

جستارهای وابسته 
 هم‌روندی
 MPI
 محاسبات همه‌منظوره بر روی واحد پردازش گرافیکی
 CUDA
 OpenCL

منابع 

واسط‌های برنامه‌نویسی کاربردی
رایانش موازی
زبان‌های برنامه‌نویسی خانواده سی
فورترن