Abstract
Thanks to programming approaches like actor-based models, message passing is regaining popularity outside large-scale scientific computing for building scalable distributed applications in multi-core processors. Unfortunately, the mismatch between message passing models and today’s shared-memory hardware provided by commercial vendors results in suboptimal performance and a waste of energy. This paper presents a set of architectural extensions to reduce the overheads incurred by message passing workloads running on shared memory multi-core architectures. It describes the instruction set extensions and the hardware implementation. In order to facilitate programmability, the proposed extensions are used by a message passing library, allowing programs to take advantage of them transparently. As a proof-of-concept, we use modified MPI libraries and unmodified MPI programs to evaluate the proposal. Experimental results show that a best-effort design can eliminate over 60% of cache accesses caused by message data transmission and reduce the cycles spent in such task by 75%, while the addition of a simple coprocessor can completely off-load data movement from the CPU to avoid up to 92% of cache accesses, and a reduction of 12% of network traffic on average. The design achieves an improvement of 11%–12% in the energy-delay product of on-chip caches
چکیده
به لطف روش های برنامه نویسی مانند مدل های مبتنی بر actor، تبادل پیام علاوه بر پردازش های علمی بزرگ، برای ساخت اپلیکیشن های توزیع شده و مقیاس پذیر در پردازنده های چند هسته ای نیز دوباره محبوبیت پیدا کرده است. متاسفانه عدم تطابق بین مدل های تبادل پیام و سخت افزارهای امروزیِ اشتراک حافظه که توسط فروشندگان عرضه می شوند، باعث کاهش کارایی و اتلاف انرژی می شود. در این مقاله، یک مجموعه توسعه ی سخت افزاری برای کاهش سربار تبادل پیام در معماری پردازنده های چند هسته ای با حافظه مشترک ارائه می شود. ما توسعه مجموعه دستور العمل ها و پیاده سازی سخت افزاری را توضیح می دهیم. برای تسهیل برنامه نویسی، توسعه های ارائه شده از طریق یک کتابخانه تبادل پیام انجام می شوند. برنامه ها می توانند به صورت شفاف از این کتابخانه استفاده کنند. ما برای اثبات مفاهیم ارائه شده از کتابخانه های اصلاح شده ی MPI و برنامه های تغییر نیافته ی MPI برای ارزیابی موارد پیشنهادی استفاده می کنیم. نتایج آزمایشات نشان می دهد که یک طراحی خوب می تواند دسترسی به حافظه پنهان را که ناشی از تبادل پیام است، تا 60 درصد، و چرخه های صرف شده برای این کار را را تا 75 درصد کاهش دهد. اضافه کردن یک کمک پردازنده ساده می تواند انتقال داده از CPU را کاملاً حذف کند تا دسترسی به حافظه پنهان تا 92 درصد، و ترافیک شبکه به صورت میانگین 12 درصد کاهش یابد. این طراحی تاخیر-انرژی حافظه پنهانِ روی تراشه را 11-12 درصد بهبود می دهد.
1-مقدمه
تبادل پیام (MP) برای مدت زیادی استفاده شده، و رایج ترین مدل برنامه نویسی برای اپلیکیشن های پردازشی با کارایی بالا (HPC) است که روی سیستم هایی با حافظه مشترک و تعداد زیادی گره، اجرا می شوند. اخیراً زبان های برنامه نویسی مبتنی بر actor و کتابخانه هایی مانند Erlang [1] و Akka/scala [10] باعث محبوبیت مدل MP در زمینه هایی غیر از حوزه ی سنتی آن (HPC) شده اند، و آن را به عنوان یک روش مناسب برای ساخت اپلیکیشن های موازی مطرح کرده اند که از تعداد زیادی از هسته های موجود در تراشه های چند پردازنده ی امروزی و آتی، استفاده می کند...