Edition |
Second edition. |
Description |
1 online resource |
Contents |
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.jlSummary; 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 globalsInlining; 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 macroThe 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 arraysSummary; 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 |
Note |
Port sharing for high-performance web serving |
Summary |
Julia is a high-level, high-performance dynamic programming language for numerical computing. This book will help you understand the performance characteristics of your Julia programs and achieve near-C levels of performance in Julia. |
Note |
Includes index. |
Local Note |
eBooks on EBSCOhost EBSCO eBook Subscription Academic Collection - North America |
Subject |
Julia (Computer program language)
|
|
Application software -- Development.
|
|
Application software -- Development |
|
Julia (Computer program language) |
Added Author |
Edelman, Alan.
|
Other Form: |
Print version: Sengupta, Avik. Julia High Performance : Optimizations, Distributed Computing, Multithreading, and GPU Programming with Julia 1. 0 and Beyond, 2nd Edition. Birmingham : Packt Publishing, Limited, ©2019 9781788298117 |
ISBN |
9781788292306 (electronic book) |
|
1788292308 (electronic book) |
|
9781788298117 (paperback) |
|