دانلود کتاب برنامه نویسی برای سیستم های هیبریدی چند هسته ای MPP بعد از پرداخت مقدور خواهد بود
توضیحات کتاب در بخش جزئیات آمده است و می توانید موارد را مشاهده فرمایید
نام کتاب : Programming for Hybrid Multi/Manycore MPP Systems
ویرایش : 1
عنوان ترجمه شده به فارسی : برنامه نویسی برای سیستم های هیبریدی چند هسته ای MPP
سری : Chapman & Hall/CRC Computational Science
نویسندگان : John Levesque, Aaron Vose
ناشر : Chapman and Hall/CRC
سال نشر : 2018
تعداد صفحات : 343
ISBN (شابک) : 1439873712 , 9781439873717
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 5 مگابایت
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
"نپرسید که کامپایلر شما چه کاری می تواند برای شما انجام دهد، بپرسید که چه کاری می توانید برای کامپایلر خود انجام دهید."
--John Levesque، مدیر مراکز عالی ابررایانه Cray
< /P>
Tدهه بعدی محاسبات محاسباتی شدید با گره های چند هسته ای قدرتمندتر است که در آن پردازنده ها فضای حافظه بزرگی را به اشتراک می گذارند. این گرهها بلوک ساختمانی برای سیستمهایی خواهند بود که از یک ایستگاه کاری واحد تا سیستمهایی که به رژیم exaflop نزدیک میشوند، هستند. خود گره شامل 10 تا 100 واحد پردازش MIMD (دستورالعمل های متعدد، داده های متعدد) با دستورالعمل های موازی SIMD (دستورالعمل تک، داده های متعدد) خواهد بود. از آنجایی که معماری حافظه استاندارد و مقرون به صرفه قادر به تامین پهنای باند مورد نیاز این هسته ها نخواهد بود، سازمان های حافظه جدیدی معرفی خواهند شد. این معماریهای نود جدید چالش مهمی را برای توسعهدهندگان برنامهها نشان میدهند.
برنامهنویسی برای سیستمهای MPP ترکیبی چند هستهای تلاش میکند به طور خلاصه وضعیت فعلی را توصیف کند. پیشرفته در برنامه نویسی این سیستم ها، و رویکردی را برای توسعه یک برنامه کاربردی قابل حمل با عملکرد پیشنهاد می کند که می تواند به طور موثر از همه این سیستم ها از یک برنامه واحد استفاده کند. کتاب با یک استراتژی برای بهینه سازی یک برنامه کاربردی برای معماری های چند هسته ای شروع می شود. سپس به سه معماری معمولی نگاه میکند و مزایا و معایب آنها را پوشش میدهد.
بخش بعدی کتاب، مؤلفه مهم دیگر هدف - کامپایلر را بررسی میکند. کامپایلر در نهایت زبان ورودی را به کد اجرایی روی هدف تبدیل میکند، و این کتاب به بررسی چگونگی وادار کردن کامپایلر به انجام آنچه میخواهیم میپردازد. سپس کتاب در مورد جمعآوری آمار زمان اجرا از اجرای برنامه بر روی مجموعههای مشکلات مهمی که قبلاً مورد بحث قرار گرفت صحبت میکند.
در ادامه نحوه بهترین استفاده از پهنای باند حافظه موجود و مجازیسازی، همراه با ترکیبسازی پوشش داده میشود. از یک برنامه بخش آخر کتاب شامل چندین برنامه کاربردی اصلی است و پیشرفتهای سختافزاری آینده و چگونگی آمادهسازی توسعهدهنده برنامه برای این پیشرفتها را بررسی میکند.
"Ask not what your compiler can do for you, ask what you can do for your compiler."
--John Levesque, Director of Cray’s Supercomputing Centers of Excellence
The next decade of computationally intense computing lies with more powerful multi/manycore nodes where processors share a large memory space. These nodes will be the building block for systems that range from a single node workstation up to systems approaching the exaflop regime. The node itself will consist of 10’s to 100’s of MIMD (multiple instruction, multiple data) processing units with SIMD (single instruction, multiple data) parallel instructions. Since a standard, affordable memory architecture will not be able to supply the bandwidth required by these cores, new memory organizations will be introduced. These new node architectures will represent a significant challenge to application developers.
Programming for Hybrid Multi/Manycore MPP Systems attempts to briefly describe the current state-of-the-art in programming these systems, and proposes an approach for developing a performance-portable application that can effectively utilize all of these systems from a single application. The book starts with a strategy for optimizing an application for multi/manycore architectures. It then looks at the three typical architectures, covering their advantages and disadvantages.
The next section of the book explores the other important component of the target―the compiler. The compiler will ultimately convert the input language to executable code on the target, and the book explores how to make the compiler do what we want. The book then talks about gathering runtime statistics from running the application on the important problem sets previously discussed.
How best to utilize available memory bandwidth and virtualization is covered next, along with hybridization of a program. The last part of the book includes several major applications, and examines future hardware advancements and how the application developer may prepare for those advancements.