دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 1
نویسندگان: John Levesque. Aaron Vose
سری: Chapman & Hall/CRC Computational Science
ISBN (شابک) : 1439873712, 9781439873717
ناشر: Chapman and Hall/CRC
سال نشر: 2018
تعداد صفحات: 343
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 5 مگابایت
در صورت تبدیل فایل کتاب Programming for Hybrid Multi/Manycore MPP Systems به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب برنامه نویسی برای سیستم های هیبریدی چند هسته ای MPP نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
\"نپرسید که کامپایلر شما چه کاری می تواند برای شما انجام دهد،
بپرسید که چه کاری می توانید برای کامپایلر خود انجام
دهید."
--John Levesque، مدیر مراکز عالی ابررایانه Cray
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.
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