Why is Octave slower than MATLAB?

后端 未结 2 1454
慢半拍i
慢半拍i 2020-12-24 05:45

I have been using Octave and MATLAB for a few projects, and I\'ve come across a few questions. This question Why/when should I prefer MATLAB over Octave?) answered several,

相关标签:
2条回答
  • 2020-12-24 05:50

    Matlab internally uses Intel Math Kernel Library (Intel MKL) for vector and matrix operations. This gives Matlab a significant advantage over Octave.

    Try the commands 'version -lapack' and 'version -blas' in your Matlab to check the version of MKL your Matlab is using.

    A quick link which discuss the usage of MKL by Matlab is http://stanford.edu/~echu508/matlab.html .

    Intel MKL is proprietary. software.intel.com/en-us/intel-mkl . However, for non-commercial use, the Linux version is free. If Octave can somehow use the MKL installed on our machines, it should significantly speed up Octave.

    0 讨论(0)
  • 2020-12-24 06:06

    There are four ways how Matlab code gets sped up:

    • JIT: compiling at runtime helps with loops but seems to speed up (or at least interact with) other parts of the code as well, according to my anecdotal observations.

    • Implementing functions in C/C++: There's a bunch of Matlab/Octave functions that are implemented in Matlab/Octave. At every release, there's a bunch more of them that get made into built-ins.

    • Multithreading: There's a list of functions that have multithreaded implementations, which will speed up function calls.

    • Generally more efficient implementations. For example the median filter got a massive speed boost for integer inputs a few releases ago.

    All of these approaches need developers dedicated to make code faster. As far as I know, a major concern of Octave developers is to make sure (Matlab) functionality is there at all, whereas performance increase seems to have been a focus of Matlab development in the last few years.

    0 讨论(0)
提交回复
热议问题