help-octave
[Top][All Lists]

## Re: CPU time, Octave vs MATLAB

 From: Ian McCallion Subject: Re: CPU time, Octave vs MATLAB Date: Tue, 10 Mar 2020 14:50:11 +0000

```On Tue, 10 Mar 2020 at 14:31, Rory Conolly <address@hidden> wrote:
>
>
>
> On Tue, Mar 10, 2020 at 10:08 AM Kai Torben Ohlhus <address@hidden> wrote:
>>
>> On 3/10/20 9:39 PM, Rory Conolly wrote:
>> > I have a program that describes biological mechanisms of cancer. Running
>> > the code in MATLAB takes 112 minutes. The almost identical code in
>> > Octave takes about 10 hr, so about 5 times slower. Is this an expected
>> > difference between Octave and MATLAB or more likely due to something in
>> > my code? Code is hundreds of lines over several files.
>> >
>> > - Rory
>> >
>>
>> Dear Rory,
>>
>> Unless you present (a meaningful portion of) your code, it is fortune
>> telling and blind guessing what could be wrong.  Most likely your code
>> is not properly vectorized [1] and uses lots of nested loops, e.g.
>>
>> for k = 1:P
>>   for i = 1:M
>>     for j = 1:N
>>       A(i,j) = A(i,j) + B(i,j);
>>     endfor
>>   endfor
>> endfor
>>
>> You can make use of profiling [2] to find the bottlenecks.
>>
>> HTH,
>> Kai
>>
>> [1] https://octave.org/doc/v5.2.0/Basic-Vectorization.html
>> [2] https://octave.org/doc/v5.2.0/Profiling.html
>
>
>
> Kai, thanks for your input. My question is more about the relative speed of
> Octave vs MATLAB. My code was originally developed in MATLAB and is
> vectorized. The code reads parameter values from an Excel file. The Octave
> call to Excel requires the file extension while the MATLAB call does not. So
> that’s the only modification of the code running in Octave. So the two codes
> are pretty much identical, but the Octave code runs much more slowly. Happy
> to provide the code but it’s in several files and probably a thousand or more
> lines.

Octave generally is nothing like 5 times slower than Matlab. My own
code for example runs at about the same speed. However I believe
Matlab has worked hard to improve nested loop performance in
particular. Hence Kai's suggestions.

Vectorisation also improves quality and readability. Go for it!

Cheers... Ian

```