کلمه جو
صفحه اصلی

یک برنامه چند داده

دانشنامه عمومی

یک برنامه چند داده (انگلیسی: SPMD) در علم رایانش یکی از تکنیک هایی است که برای دستیابی به رایانش موازی از آن استفاده می شود. این روش زیر مجموعه روش چند دستور چند داده (MIMD)است. در این روش، کارها تقسیم شده و به صورت موازی در چندین پردازنده با ورودی های موازی برای دستیابی به نتیجه سریعتر اجرا می گردند. تکنیک SPMD متداول ترین روش در پردازش موازی می باشد. این روش همچنین پیشنیاز مفاهیم تحقیقاتی نظیر پیام فعال و حافظه توزیعی به اشتراک گذاشته شده می باشد.
در تکنیک SPMD، چندین پروسه اتوماتیک به صورت هم زمان یک برنامه را در نقاط مختلف اجرا می نمایند، بر خلاف روش SIMD که هر برنامه در مرحله قفل قرار می گیرد. با استفاده از SPMD وظایف می توانند بر روی کامپیوترهای با کاربرد عمومی اجرا شوند. روش SIMD برای تغییر جریان های داده، نیازمند پردازنده های برداری می باشند.
تکنیک SPMD معمولاً به روش انتقال پیام های برنامه در یک معماری کامپیوتر با استفاده از حافظه توزیع شده اطلاق می شود، یک کامپیوتر با معماری توزیع شده از تعدادی کامپیوتر مستقل تشکیل شده که هر یک از آن ها را گره (Node) می نامیم. هر گره برنامه خود را آغاز می کند و از طریق ارسال و دریافت پیام با دیگر گره ها ارتباط برقرار می نماید. با استفاده از فراخوانی های ارسال/دریافت. امکان پیاده سازی دستوراتی نظیر عدم امکان همگام سازی (Barrier Synchronization) نیز با پیام ها وجود دارد. این پیام ها با روش های انتقال اطلاعات مختلف مانند TCP/IP بر روی اترنت یا روش های اختصاصی بسیار پرسرعت مانند Myrinet و اتصالات داخلی ابر کامپیوترها قابل پیاده سازی هستند. بخش Serial برنامه از طریق محاسبه گر کاملاً مشابه در تمامی گره ها پیاده سازی شده است و عملاً از روش هایی نظیر محاسبه نتیجه در یک گره و ارسال نتیجه به گره های دیگر استفاده نمی کند.
در یک ماشین با حافظه اشتراکی، می توان به یک پیام با ارسال مجدد محتویات آن در یک فضای آدرس اشتراکی دسترسی پیدا نمود. این روش معمولاً بهینه ترین روش در برنامه ریزی کامپیوترهای با فضای آدرس اشتراکی و تعداد پردازنده بالا می باشد. بخصوص در ماشین های NUMA که حافظه متعلق به هر پردازنده است و دسترسی به حافظه دیگر پردازنده ها به زمان بیشتری نیاز دارد. تکنیک SPMD در ماشین های حافظه اشتراکی معمولاً به وسیلهٔ پروسه های استاندارد بسیار سنگین پیاده سازی می گردد.


کلمات دیگر: