
۴۴٬۰۰۰تومان
نوع فایل دانلود: EPUB
پس از خرید، یک فایل EPUB دریافت میکنید.
این فایل با Calibre، Apple Books و سایر کتابخوانهای دیجیتال مناسب است.
جلد -- حق نشر -- امتیازات -- درباره نویسنده -- درباره ارزیاب -- www.PacktPub.com -- بازخورد مشتریان -- فهرست مطالب -- مقدمه -- فصل ۱: محکزنی و پروفایلکردن -- طراحی برنامه -- نوشتن آزمونها و محکها -- اندازهگیری زمان محک -- آزمونها و محکهای بهتر با pytest-benchmark -- یافتن گلوگاهها با cProfile -- پروفایل خطبهخط با line_profiler -- بهینهسازی کدهایمان -- ماژول dis -- پروفایل مصرف حافظه با memory_profiler -- خلاصه -- فصل ۲: بهینهسازیهای خالص پایتون -- الگوریتمها و ساختارهای داده مفید -- فهرستها و صفهای دوطرفه -- لغتنامهها -- ساخت یک نمایه جستجوی درون حافظه با استفاده از جدول هش -- مجموعهها -- پشتهها و صفهای اولویتدار -- درختهای پسوند (Trie) -- کش کردن و یادسپاری نتایج (Memoization) -- Joblib -- درک مطلب و مولدها (Comprehensions and generators) -- خلاصه -- فصل ۳: عملیات سریع آرایه با NumPy و Pandas -- شروع کار با NumPy -- ایجاد آرایهها -- دسترسی به آرایهها -- پخش (Broadcasting) -- عملیات ریاضی -- محاسبه نرم -- بازنویسی شبیهساز ذرات در NumPy -- دستیابی به عملکرد بهینه با numexpr -- پانداس (Pandas) -- اصول پایه پانداس -- ایندکس کردن اشیاء Series و DataFrame -- عملیات پایگاهدادهای با پانداس -- نگاشت (Mapping) -- گروهبندی، تجمعها و تبدیلها -- پیوستن (Joining) -- خلاصه -- فصل ۴: عملکرد زبان C با Cython -- کامپایل افزونههای Cython -- افزودن انواع ایستا -- متغیرها -- توابع -- کلاسها -- اشتراکگذاری اعلانها -- کار با آرایهها -- آرایهها و اشارهگرهای C -- آرایههای NumPy -- نماهای حافظه نوعدار (Typed memoryviews) -- شبیهساز ذرات در Cython -- پروفایلکردن Cython -- استفاده از Cython با Jupyter -- خلاصه -- فصل ۵: بررسی کامپایلرها -- Numba -- گامهای نخست با Numba -- تخصیصهای نوع -- حالت شیء در برابر حالت بومی -- Numba و NumPy -- توابع جهانی با Numba -- توابع جهانی تعمیمیافته -- کلاسهای JIT -- محدودیتهای Numba -- پروژه PyPy و راهاندازی PyPy -- اجرای شبیهساز ذرات در PyPy -- پروژههای جذاب دیگر -- خلاصه -- فصل ۶: پیادهسازی همگامی (Concurrency) -- برنامهنویسی ناهمگام -- انتظار برای ورودی/خروجی -- همگامی -- بازخوردها (Callbacks) -- آیندهها (Futures) -- حلقههای رویداد -- چهارچوب asyncio -- روتینهای مشارکتی (Coroutines) -- تبدیل کد مسدودکننده به کد غیرمسدودکننده -- برنامهنویسی واکنشی (Reactive) -- اقلام قابل مشاهده (Observables) -- عملگرهای مفید -- اقلام قابل مشاهده داغ و سرد -- ساخت یک مانیتور CPU -- خلاصه -- فصل ۷: پردازش موازی -- مقدمهای بر برنامهنویسی موازی -- واحدهای پردازش گرافیکی -- استفاده از چند پردازه -- کلاسهای Process و Pool -- رابط Executor -- تقریب مونت کارلو برای عدد پی -- همگامسازی و قفلها -- سایسون موازی با OpenMP -- موازیسازی خودکار -- شروع کار با Theano -- پروفایلکردن Theano -- تنسورفلو (Tensorflow) -- اجرای کد روی پردازنده گرافیکی (GPU) -- خلاصه -- فصل ۸: پردازش توزیعشده -- مقدمهای بر رایانش توزیعشده -- مقدمهای بر MapReduce -- داسک (Dask) -- گرافهای جهتدار غیرمدور (DAG) -- آرایههای Dask -- داسک باگ و دیتافریم -- داسک توزیعشده -- راهاندازی دستی کلاستر -- استفاده از PySpark -- راهاندازی Spark و PySpark -- معماری اسپارک -- مجموعه دادههای توزیعشده مقاوم (RDD) -- دیتابیس و دیتافریم اسپارک -- رایانش علمی با mpi4py -- خلاصه -- فصل ۹: طراحی برای عملکرد بالا -- انتخاب استراتژی مناسب -- برنامههای عمومی -- کد عددی -- دادههای کلان -- سازماندهی سورس کدهای برنامه -- جداسازی، محیطهای مجازی و کانتینرها -- استفاده از محیطهای conda -- مجازیسازی و کانتینرها -- ایجاد ایمیجهای داکر -- یکپارچهسازی مداوم -- خلاصه -- نمایه بیشتر بخوانید...
Cover -- Copyright -- Credits -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Benchmarking and Profiling -- Designing your application -- Writing tests and benchmarks -- Timing your benchmark -- Better tests and benchmarks with pytest-benchmark -- Finding bottlenecks with cProfile -- Profile line by line with line_profiler -- Optimizing our code -- The dis module -- Profiling memory usage with memory_profiler -- Summary -- Chapter 2: Pure Python Optimizations -- Useful algorithms and data structures -- Lists and deques -- Dictionaries -- Building an in-memory search index using a hash map -- Sets -- Heaps -- Tries -- Caching and memoization -- Joblib -- Comprehensions and generators -- Summary -- Chapter 3: Fast Array Operations with NumPy and Pandas -- Getting started with NumPy -- Creating arrays -- Accessing arrays -- Broadcasting -- Mathematical operations -- Calculating the norm -- Rewriting the particle simulator in NumPy -- Reaching optimal performance with numexpr -- Pandas -- Pandas fundamentals -- Indexing Series and DataFrame objects -- Database-style operations with Pandas -- Mapping -- Grouping, aggregations, and transforms -- Joining -- Summary -- Chapter 4: C Performance with Cython -- Compiling Cython extensions -- Adding static types -- Variables -- Functions -- Classes -- Sharing declarations -- Working with arrays -- C arrays and pointers -- NumPy arrays -- Typed memoryviews -- Particle simulator in Cython -- Profiling Cython -- Using Cython with Jupyter -- Summary -- Chapter 5: Exploring Compilers -- Numba -- First steps with Numba -- Type specializations -- Object mode versus native mode -- Numba and NumPy -- Universal functions with Numba -- Generalized universal functions -- JIT classes -- Limitations in Numba -- The PyPy project Setting up PyPy -- Running a particle simulator in PyPy -- Other interesting projects -- Summary -- Chapter 6: Implementing Concurrency -- Asynchronous programming -- Waiting for I/O -- Concurrency -- Callbacks -- Futures -- Event loops -- The asyncio framework -- Coroutines -- Converting blocking code into non-blocking code -- Reactive programming -- Observables -- Useful operators -- Hot and cold observables -- Building a CPU monitor -- Summary -- Chapter 7: Parallel Processing -- Introduction to parallel programming -- Graphic processing units -- Using multiple processes -- The Process and Pool classes -- The Executor interface -- Monte Carlo approximation of pi -- Synchronization and locks -- Parallel Cython with OpenMP -- Automatic parallelism -- Getting started with Theano -- Profiling Theano -- Tensorflow -- Running code on a GPU -- Summary -- Chapter 8: Distributed Processing -- Introduction to distributed computing -- An introduction to MapReduce -- Dask -- Directed Acyclic Graphs -- Dask arrays -- Dask Bag and DataFrame -- Dask distributed -- Manual cluster setup -- Using PySpark -- Setting up Spark and PySpark -- Spark architecture -- Resilient Distributed Datasets -- Spark DataFrame -- Scientific computing with mpi4py -- Summary -- Chapter 9: Designing for High Performance -- Choosing a suitable strategy -- Generic applications -- Numerical code -- Big data -- Organizing your source code -- Isolation, virtual environments, and containers -- Using conda environments -- Virtualization and Containers -- Creating docker images -- Continuous integration -- Summary -- Index Read more...Abstract: Cover -- Copyright -- Credits -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Benchmarking and Profiling -- Designing your application -- Writing tests and benchmarks -- Timing your benchmark -- Better tests and benchmarks with pytest-benchmark -- Finding bottlenecks with cProfile -- Profile line by line with line_profiler -- Optimizing our code -- The dis module -- Profiling memory usage with memory_profiler -- Summary -- Chapter 2: Pure Python Optimizations -- Useful algorithms and data structures -- Lists and deques -- Dictionaries -- Building an in-memory search index using a hash map -- Sets -- Heaps -- Tries -- Caching and memoization -- Joblib -- Comprehensions and generators -- Summary -- Chapter 3: Fast Array Operations with NumPy and Pandas -- Getting started with NumPy -- Creating arrays -- Accessing arrays -- Broadcasting -- Mathematical operations -- Calculating the norm -- Rewriting the particle simulator in NumPy -- Reaching optimal performance with numexpr -- Pandas -- Pandas fundamentals -- Indexing Series and DataFrame objects -- Database-style operations with Pandas -- Mapping -- Grouping, aggregations, and transforms -- Joining -- Summary -- Chapter 4: C Performance with Cython -- Compiling Cython extensions -- Adding static types -- Variables -- Functions -- Classes -- Sharing declarations -- Working with arrays -- C arrays and pointers -- NumPy arrays -- Typed memoryviews -- Particle simulator in Cython -- Profiling Cython -- Using Cython with Jupyter -- Summary -- Chapter 5: Exploring Compilers -- Numba -- First steps with Numba -- Type specializations -- Object mode versus native mode -- Numba and NumPy -- Universal functions with Numba -- Generalized universal functions -- JIT classes -- Limitations in Numba -- The PyPy project Setting up PyPy -- Running a particle simulator in PyPy -- Other interesting projects -- Summary -- Chapter 6: Implementing Concurrency -- Asynchronous programming -- Waiting for I/O -- Concurrency -- Callbacks -- Futures -- Event loops -- The asyncio framework -- Coroutines -- Converting blocking code into non-blocking code -- Reactive programming -- Observables -- Useful operators -- Hot and cold observables -- Building a CPU monitor -- Summary -- Chapter 7: Parallel Processing -- Introduction to parallel programming -- Graphic processing units -- Using multiple processes -- The Process and Pool classes -- The Executor interface -- Monte Carlo approximation of pi -- Synchronization and locks -- Parallel Cython with OpenMP -- Automatic parallelism -- Getting started with Theano -- Profiling Theano -- Tensorflow -- Running code on a GPU -- Summary -- Chapter 8: Distributed Processing -- Introduction to distributed computing -- An introduction to MapReduce -- Dask -- Directed Acyclic Graphs -- Dask arrays -- Dask Bag and DataFrame -- Dask distributed -- Manual cluster setup -- Using PySpark -- Setting up Spark and PySpark -- Spark architecture -- Resilient Distributed Datasets -- Spark DataFrame -- Scientific computing with mpi4py -- Summary -- Chapter 9: Designing for High Performance -- Choosing a suitable strategy -- Generic applications -- Numerical code -- Big data -- Organizing your source code -- Isolation, virtual environments, and containers -- Using conda environments -- Virtualization and Containers -- Creating docker images -- Continuous integration -- Summary -- Index