[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: compare the executive speed with Matlab
From: |
wim van hoydonck |
Subject: |
Re: compare the executive speed with Matlab |
Date: |
Fri, 2 Jan 2009 23:21:44 +0100 |
On Fri, Jan 2, 2009 at 10:33 PM, Sergei Steshenko <address@hidden> wrote:
>
>
>
> --- On Fri, 1/2/09, John W. Eaton <address@hidden> wrote:
>
>> From: John W. Eaton <address@hidden>
>> Subject: Re: compare the executive speed with Matlab
>> To: address@hidden
>> Cc: "Jordi Guti��rrez Hermoso" <address@hidden>, address@hidden, "Howard"
>> <address@hidden>
>> Date: Friday, January 2, 2009, 1:03 PM
>> On 2-Jan-2009, Sergei Steshenko wrote:
>>
>
>> Please, use cputime. Wall clock time is meaningless here
>> as there
>> could be other things running on your system which affect
>> the timing.
>>
>
>>
>> octave:1> angles = pi * (1:1000000) / 1000000;
>> octave:2> t = cputime (); sins = sin (angles); cputime
>> () - t
>> ans = 0.072004
>
> Here are better measurements - forgot to lock CPU frequency originally.
>
> 1) octave:
>
> angles = pi * (1:1000000) / 1000000;tic;t = cputime (); sins = sin(angles);
> fprintf(stdout(), "CPU time: %g\n", cputime () - t);toc
> CPU time: 0.140009
> Elapsed time is 0.14142704010009765625 seconds.
>
> 2) "C":
>
> CPU time took 0.04 seconds at line number 74 of 'benchmark_sin.c' file
> Wallclock time took 0.0490916 seconds at line #74 of 'benchmark_sin.c' file
>
> - the same 3+ times.
>
> My 'octave' runs on a 32 bits machine. It uses
>
> -mtune=native -march=native -mfpmath=sse,387 -O2
>
> optimizations.
>
> With this simple 'sin' test -mfpmath=sse,387 changes results:
>
> CPU time took 0.06 seconds at line number 74 of 'benchmark_sin.c' file
> Wallclock time took 0.047755 seconds at line #74 of 'benchmark_sin.c' file
>
> - the funny thing is that now CPU time is less than wallclock time which
> can't be.
>
> If you count by CPU time, still the speedup is 2+ times for
>
> 'octave' version is 3.0.3, it was built using the same gcc-4.3.2 I used
> for benchmarking the "C" program.
>
> --Sergei.
>
If I run this benchmark, I see the following figures
(Fedora 10, Intel Core2 Duo @ 2GHz, gcc 4.3.2, gfortran 4.3.2, ifort 11.0):
Octave:
octave:1> angles = pi*(1:1000000)/1000000;
octave:2> t = cputime(); sins = sin(angles); cputime()-t
ans = 0.060991
C (gcc -mtune=native -march=native -O3 benchmark_sin.c -lm -lrt):
CPU time took 0.05 seconds at line number 74 of 'benchmark_sin.c' file
Wallclock time took 0.0486391 seconds at line #74 of 'benchmark_sin.c' file
Fortran (gfortran -mtune=native -march=native -mfpmath=sse,387 -O2-o
fs_gf fortran_sin.f90)
3.69939999999999991E-002
Fortran (intel: ifort -o fs fortran_sin.f90 -O2):
6.000000000000001E-003
Fortran (intel, ifort -o fs fortran_sin.f90 -O2):
5.000000000000000E-003
To conclude, on my computer, for this test, Octave is approximately
as fast as C, gfortran is a little bit faster and ifort is 10 times as fast.
If you want to speed up your code, write the critical parts in Fortran, not C.
Greetings,
Wim
$ cat fortran_sin.f90
program fortran_sin
implicit none
integer , parameter :: dp = selected_real_kind(p=13,r=300)
integer , parameter :: n = 1000000
integer :: i
real(dp) , parameter :: pi = 3.1415926535897932385_dp
real(dp) :: angles(n) , sins(n)
real(dp) :: t0 , t1
call cpu_time(t0)
angles = real( [(i, i=0,n-1)]/n , kind=dp )
sins = pi * sin(angles)
call cpu_time(t1)
print *, t1-t0
end program fortran_sin
- Re: compare the executive speed with Matlab, (continued)
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, John W. Eaton, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, Jordi Gutiérrez Hermoso, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, John W. Eaton, 2009/01/02
- Re: compare the executive speed with Matlab, Jordi Gutiérrez Hermoso, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, John W. Eaton, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab,
wim van hoydonck <=
- Re: compare the executive speed with Matlab, John W. Eaton, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, Sergei Steshenko, 2009/01/02
- Re: compare the executive speed with Matlab, wim van hoydonck, 2009/01/05
- Re: compare the executive speed with Matlab, John W. Eaton, 2009/01/02
- Re: compare the executive speed with Matlab, Howard, 2009/01/03