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: |
© 1996–2018 John W. Eaton
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://octave.org/doc/interpreter/Vectorization-and-Faster-Code-Execution.html