售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Julia High Performance
Table of Contents
Julia High Performance
Credits
About the Author
About the Reviewer
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Julia is Fast
Julia – fast and dynamic
Designed for speed
JIT and LLVM
Types
How fast can Julia be?
Summary
2. Analyzing Julia Performance
Timing Julia code
Tic and Toc
The @time macro
The @timev macro
The Julia profiler
Using the profiler
ProfileView
Analyzing memory allocation
Using the memory allocation tracker
Statistically accurate benchmarking
Using Benchmarks.jl
Summary
3. Types in Julia
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
Performance pitfalls
Identifying type-stability
Loop variables
Kernel methods
Types in storage locations
Arrays
Composite types
Parametric composite types
Summary
4. Functions and Macros – Structuring Julia Code for High Performance
Using globals
The trouble with globals
Fixing performance issues with globals
Inlining
Default inlining
Controlling inlining
Disabling inlining
Closures and anonymous functions
FastAnonymous
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 named parameters
Summary
5. Fast Numbers
Numbers in Julia
Integers
Integer overflow
BigInt
The floating point
Unchecked conversions for unsigned integers
Trading performance for accuracy
The fastmath macro
The K-B-N summation
Subnormal numbers
Subnormal numbers to zero
Summary
6. Fast Arrays
Array internals in Julia
Array representation and storage
Column-wise storage
Bound checking
Removing the cost of bound checking
Configuring bound checks at startup
Allocations and in-place operations
Preallocating function output
Mutating versions
Array views
SIMD parallelization
Yeppp!
Writing generic library functions with arrays
Summary
7. Beyond the Single Processor
Parallelism in Julia
Starting a cluster
Communication between Julia processes
Programming parallel tasks
@everywhere
@spawn
Parallel for
Parallel map
Distributed arrays
Shared arrays
Threading
Summary
Index
买过这本书的人还买过
读了这本书的人还在读