Programming for Hybrid Multi/Manycore MPP Systems

دانلود کتاب Programming for Hybrid Multi/Manycore MPP Systems

48000 تومان موجود

کتاب برنامه نویسی برای سیستم های هیبریدی چند هسته ای MPP نسخه زبان اصلی

دانلود کتاب برنامه نویسی برای سیستم های هیبریدی چند هسته ای MPP بعد از پرداخت مقدور خواهد بود
توضیحات کتاب در بخش جزئیات آمده است و می توانید موارد را مشاهده فرمایید


این کتاب نسخه اصلی می باشد و به زبان فارسی نیست.


امتیاز شما به این کتاب (حداقل 1 و حداکثر 5):

امتیاز کاربران به این کتاب:        تعداد رای دهنده ها: 7


توضیحاتی در مورد کتاب Programming for Hybrid Multi/Manycore MPP Systems

نام کتاب : Programming for Hybrid Multi/Manycore MPP Systems
ویرایش : 1
عنوان ترجمه شده به فارسی : برنامه نویسی برای سیستم های هیبریدی چند هسته ای MPP
سری : Chapman & Hall/CRC Computational Science
نویسندگان : ,
ناشر : Chapman and Hall/CRC
سال نشر : 2018
تعداد صفحات : 343
ISBN (شابک) : 1439873712 , 9781439873717
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 5 مگابایت



بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.

توضیحاتی در مورد کتاب :




"نپرسید که کامپایلر شما چه کاری می تواند برای شما انجام دهد، بپرسید که چه کاری می توانید برای کامپایلر خود انجام دهید."
--John Levesque، مدیر مراکز عالی ابررایانه Cray

< /P>

Tدهه بعدی محاسبات محاسباتی شدید با گره های چند هسته ای قدرتمندتر است که در آن پردازنده ها فضای حافظه بزرگی را به اشتراک می گذارند. این گره‌ها بلوک ساختمانی برای سیستم‌هایی خواهند بود که از یک ایستگاه کاری واحد تا سیستم‌هایی که به رژیم exaflop نزدیک می‌شوند، هستند. خود گره شامل 10 تا 100 واحد پردازش MIMD (دستورالعمل های متعدد، داده های متعدد) با دستورالعمل های موازی SIMD (دستورالعمل تک، داده های متعدد) خواهد بود. از آنجایی که معماری حافظه استاندارد و مقرون به صرفه قادر به تامین پهنای باند مورد نیاز این هسته ها نخواهد بود، سازمان های حافظه جدیدی معرفی خواهند شد. این معماری‌های نود جدید چالش مهمی را برای توسعه‌دهندگان برنامه‌ها نشان می‌دهند.

برنامه‌نویسی برای سیستم‌های MPP ترکیبی چند هسته‌ای تلاش می‌کند به طور خلاصه وضعیت فعلی را توصیف کند. پیشرفته در برنامه نویسی این سیستم ها، و رویکردی را برای توسعه یک برنامه کاربردی قابل حمل با عملکرد پیشنهاد می کند که می تواند به طور موثر از همه این سیستم ها از یک برنامه واحد استفاده کند. کتاب با یک استراتژی برای بهینه سازی یک برنامه کاربردی برای معماری های چند هسته ای شروع می شود. سپس به سه معماری معمولی نگاه می‌کند و مزایا و معایب آنها را پوشش می‌دهد.

بخش بعدی کتاب، مؤلفه مهم دیگر هدف - کامپایلر را بررسی می‌کند. کامپایلر در نهایت زبان ورودی را به کد اجرایی روی هدف تبدیل می‌کند، و این کتاب به بررسی چگونگی وادار کردن کامپایلر به انجام آنچه می‌خواهیم می‌پردازد. سپس کتاب در مورد جمع‌آوری آمار زمان اجرا از اجرای برنامه بر روی مجموعه‌های مشکلات مهمی که قبلاً مورد بحث قرار گرفت صحبت می‌کند.

در ادامه نحوه بهترین استفاده از پهنای باند حافظه موجود و مجازی‌سازی، همراه با ترکیب‌سازی پوشش داده می‌شود. از یک برنامه بخش آخر کتاب شامل چندین برنامه کاربردی اصلی است و پیشرفت‌های سخت‌افزاری آینده و چگونگی آماده‌سازی توسعه‌دهنده برنامه برای این پیشرفت‌ها را بررسی می‌کند.


فهرست مطالب :


Content: Introduction Introduction Chapter Overviews Determining an Exaflop Strategy Foreword By John Levesque Introduction Looking At The Application Degree Of Hybridization Required Decomposition And I/O Parallel And Vector Lengths Productivity And Performance Portability Conclusion Target Hybrid Multi/Many Core SystemForeword By John Levesque Understanding The Architecture Cache Architectures Memory Hierarchy Knl Clustering Modes Knl Mcdram Modes Importance Of Vectorization Alignment For Vectorization How Compilers Optimize Programs Foreword By John Levesque Introduction Memory Allocation Memory Alignment Comment-Line Directive Interprocedural Analysis Compiler Switches Fortran 2003 And Inefficiencies Compiler Scalar Optimizations Gathering Runtime Statistics for Optimizing Foreword By John Levesque Introduction What's Important To Profile Conclusion Utilization of Available Memory Bandwidth Foreword By John Levesque Introduction Importance Of Cache Optimization Variable Analysis In Multiple Loops Optimizing For The Cache Hierarchy Combining Multiple Loops Conclusion VectorizationForeword By John Levesque Introduction Vectorization Inhibitors Vectorization Rejection From Inefficiencies Striding Versus Contiguous Accessing Wrap-Around Scalar Loops Saving Maxima And Minima Multi-Nested Loop Structures There's Matmul And Then There's Matmul Decision Processes In Loops Handling Function Calls Within Loops Rank Expansion Outer Loop Vectorization Hybridization of an Application Foreword By John Levesque Introduction The Node's Numa Architecture First Touch In The Himeno Benchmark Identifying Which Loops To Thread Spmd Openmp Porting Entire Applications Foreword By John Levesque Introduction Spec Openmp Benchmarks Nasa Parallel Benchmark (Npb) - Bt Refactoring Vh-1 Refactoring Leslie3d Refactoring S3d - 2016 Production Version Performance Portable - S3d On Titan Future Hardware Advancements Introduction Future X86 Cpus Future Arm Cpus Future Memory TechnologiesFuture Hardware Conclusions AppendicesSupercomputer Cache Architectures The Translation Look-Aside Buffer Command Line Options / Compiler Directives Previously Used Optimizations I/O Optimization Terminology 12-Step Process

توضیحاتی در مورد کتاب به زبان اصلی :


"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.




پست ها تصادفی