[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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
- CPU time, Octave vs MATLAB, Rory Conolly, 2020/03/10
- Re: CPU time, Octave vs MATLAB, Kai Torben Ohlhus, 2020/03/10
- Re: CPU time, Octave vs MATLAB, Rory Conolly, 2020/03/10
- Re: CPU time, Octave vs MATLAB,
Ian McCallion <=
- Re: CPU time, Octave vs MATLAB, Ardid, Salva, 2020/03/10
- RE: CPU time, Octave vs MATLAB, Henk Borsje, 2020/03/10
- Re: CPU time, Octave vs MATLAB, Kai Torben Ohlhus, 2020/03/10
- Re: CPU time, Octave vs MATLAB, Nicholas Jankowski, 2020/03/10