دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: Second نویسندگان: Avik Sengupta, Alan Edelman سری: ISBN (شابک) : 9781788292306, 1788292308 ناشر: سال نشر: 2019 تعداد صفحات: 210 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 4 مگابایت
در صورت تبدیل فایل کتاب Julia high performance : optimizations, distributed computing, multithreading, and GPU programming with Julia 1.0 and beyond به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب Julia با کارایی بالا: بهینه سازی ها، محاسبات توزیع شده، چند رشته ای و برنامه نویسی GPU با Julia 1.0 و بالاتر نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
طراحی و توسعه برنامههای با کارایی بالا در Julia 1.0 ویژگیهای کلیدی یادگیری ویژگیهای کد جولیا با کارایی بالا استفاده از قدرت GPU برای نوشتن کدهای عددی کارآمد سرعت محاسبات خود را با کمک چند رشتهای حافظه مشترک تازه معرفیشده در Julia 1.0Book Description Julia یک زبان برنامه نویسی پویا سطح بالا و با کارایی بالا برای محاسبات عددی است. اگر می خواهید بدانید که چگونه از تنگناها جلوگیری کنید و برنامه های خود را برای بالاترین عملکرد ممکن طراحی کنید، پس این کتاب برای شما مناسب است. این کتاب با نحوه استفاده جولیا از اطلاعات نوع برای دستیابی به اهداف عملکرد خود و نحوه استفاده از چندین ارسال برای کمک به کامپایلر در انتشار کد ماشین با کارایی بالا شروع میشود. پس از آن، نحوه تجزیه و تحلیل برنامه های جولیا و شناسایی مسائل مربوط به زمان و مصرف حافظه را یاد خواهید گرفت. ما به شما آموزش می دهیم که چگونه از امکانات تایپ جولیا به طور دقیق برای نوشتن کدهای با کارایی بالا استفاده کنید و توضیح می دهیم که چگونه کامپایلر جولیا از اطلاعات نوع برای ایجاد کد سریع ماشین استفاده می کند. با حرکت رو به جلو، بر محدودیت های طراحی مسلط خواهید شد و یاد خواهید گرفت که چگونه از قدرت GPU در کد جولیا خود استفاده کنید و کد جولیا را مستقیماً در GPU کامپایل کنید. سپس، یاد خواهید گرفت که چگونه وظایف و IO ناهمزمان به شما در ایجاد برنامههای پاسخگو و نحوه استفاده از چند رشتهای حافظه مشترک در جولیا کمک میکنند. در پایان، طعمی از قابلیتهای محاسباتی توزیعشده جولیا و نحوه اجرای برنامههای جولیا در یک خوشه توزیعشده بزرگ را خواهید دید. تا پایان این کتاب، شما توانایی ساخت اپلیکیشن های جولیا در مقیاس بزرگ و با کارایی بالا، طراحی سیستم هایی با تمرکز بر سرعت و بهبود عملکرد برنامه های موجود را خواهید داشت. آنچه یاد خواهید گرفت درک نحوه تبدیل کد جولیا به کد ماشین اندازه گیری زمان و حافظه مصرف شده توسط برنامه های جولیا ایجاد کد سریع ماشین با استفاده از اطلاعات نوع جولیا تعریف و فراخوانی توابع بدون به خطر انداختن عملکرد جولیا تسریع کد خود از طریق وظایف GPUUse و IO ناهمزمان برای برنامه های پاسخگوRun Julia این کتاب برای برنامه نویسان مبتدی و متوسط جولیا است که به برنامه نویسی فنی با کارایی بالا علاقه مند هستند. دانش اولیه برنامه نویسی جولیا فرض می شود.
Design and develop high-performance programs in Julia 1.0 Key FeaturesLearn the characteristics of high-performance Julia codeUse the power of the GPU to write efficient numerical codeSpeed up your computation with the help of newly introduced shared memory multi-threading in Julia 1.0Book Description Julia is a high-level, high-performance dynamic programming language for numerical computing. If you want to understand how to avoid bottlenecks and design your programs for the highest possible performance, then this book is for you. The book starts with how Julia uses type information to achieve its performance goals, and how to use multiple dispatches to help the compiler emit high-performance machine code. After that, you will learn how to analyze Julia programs and identify issues with time and memory consumption. We teach you how to use Julia's typing facilities accurately to write high-performance code and describe how the Julia compiler uses type information to create fast machine code. Moving ahead, you'll master design constraints and learn how to use the power of the GPU in your Julia code and compile Julia code directly to the GPU. Then, you'll learn how tasks and asynchronous IO help you create responsive programs and how to use shared memory multithreading in Julia. Toward the end, you will get a flavor of Julia's distributed computing capabilities and how to run Julia programs on a large distributed cluster. By the end of this book, you will have the ability to build large-scale, high-performance Julia applications, design systems with a focus on speed, and improve the performance of existing programs. What you will learnUnderstand how Julia code is transformed into machine codeMeasure the time and memory taken by Julia programs Create fast machine code using Julia's type information Define and call functions without compromising Julia's performance Accelerate your code via the GPUUse tasks and asynchronous IO for responsive programsRun Julia programs on large distributed clustersWho this book is for This book is for beginners and intermediate Julia programmers who are interested in high-performance technical programming. A basic knowledge of Julia programming is assumed.
Cover Title Page Copyright and Credits Dedication About Packt Foreword Contributors Table of Contents Preface Chapter 1: Julia is Fast Julia – fast and dynamic Designed for speed JIT and LLVM Types, type inference, and code specialization How fast can Julia be? Summary Chapter 2: Analyzing Performance Timing Julia functions The @time macro Other time macros The Julia profiler Using the profiler ProfileView Using Juno for profiling Using TimerOutputs Analyzing memory allocation Using the memory allocation tracker Statistically accurate benchmarking Using BenchmarkTools.jl Summary Chapter 3: Types, Type Inference, and Stability The Julia type system Using types Multiple dispatch Abstract types Julia's type hierarchy Composite and immutable types Type parameters Type inference Type-stability Definitions Fixing type instability The performance pitfalls Identifying type stability Loop variables Kernel methods and function barriers Types in storage locations Arrays Composite types Parametric composite types Summary Chapter 4: Making Fast Function Calls Using globals The trouble with globals Fixing performance issues with globals Inlining Default inlining Controlling inlining Disabling inlining Constant propagation Using macros for performance The Julia compilation process Using macros Evaluating a polynomial Horner's method The Horner macro Generated functions Using generated functions Using generated functions for performance Using keyword arguments Summary Chapter 5: Fast Numbers Numbers in Julia, their layout, and storage Integers Integer overflow BigInt The floating point Floating point accuracy Unsigned integers Trading performance for accuracy The @fastmath macro The K-B-N summation Subnormal numbers Subnormal numbers to zero Summary Chapter 6: Using Arrays Array internals in Julia Array representation and storage Column-wise storage Adjoints Array initialization Bounds checking Removing the cost of bounds checking Configuring bound checks at startup Allocations and in-place operations Preallocating function output sizehint! Mutating functions Broadcasting Array views SIMD parallelization (AVX2, AVX512) SIMD.jl Specialized array types Static arrays Structs of arrays Yeppp! Writing generic library functions with arrays Summary Chapter 7: Accelerating Code with the GPU Technical requirements Getting started with GPUs CUDA and Julia CuArrays Monte Carlo simulation on the GPU Writing your own kernels Measuring GPU performance Performance tips Scalar iteration Combining kernels Processing more data Deep learning on the GPU ArrayFire Summary Chapter 8: Concurrent Programming with Tasks Tasks Using tasks The task life cycle task_local_storage Communicating between tasks Task iteration High-performance I/O Port sharing for high-performance web serving Summary Chapter 9: Threads Threads Measuring CPU cores Hwloc Starting threads The @threads macro Prefix sum Thread safety and synchronization primitives Multithreaded Monte Carlo simulation Atomics Synchronization primitives Threads and GC Threaded libraries Over-subscription The future of threading Summary Chapter 10: Distributed Computing with Julia Creating Julia clusters Starting a cluster Cluster managers SSHManager SLURM Communication between Julia processes Programming parallel tasks The @everywhere macro The @spawn macro The @spawnat macro Parallel for loops Parallel map Distributed Monte Carlo Distributed arrays Conway's Game of Life Shared arrays Parallel prefix sum with shared arrays Summary Licences Other Books You May Enjoy Index