(octave.info)Vectorization and Faster Code Execution


Next: Nonlinear Equations Prev: Linear Algebra Up: Top
Enter node , (file) or (file)node

19 Vectorization and Faster Code Execution
******************************************

Vectorization is a programming technique that uses vector operations
instead of element-by-element loop-based operations.  Besides frequently
producing more succinct Octave code, vectorization also allows for
better optimization in the subsequent implementation.  The optimizations
may occur either in Octave’s own Fortran, C, or C++ internal
implementation, or even at a lower level depending on the compiler and
external numerical libraries used to build Octave.  The ultimate goal is
to make use of your hardware’s vector instructions if possible or to
perform other optimizations in software.

   Vectorization is not a concept unique to Octave, but it is
particularly important because Octave is a matrix-oriented language.
Vectorized Octave code will see a dramatic speed up (10X–100X) in most
cases.

   This chapter discusses vectorization and other techniques for writing
faster code.

Basic Vectorization
Basic techniques for code optimization
Broadcasting
Broadcasting operations
Function Application
Applying functions to arrays, cells, and structs
Accumulation
Accumulation functions
JIT Compiler
Just-In-Time Compiler for loops
Miscellaneous Techniques
Other techniques for speeding up code
Examples

automatically generated by info2www version 1.2.2.9