[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #32967] Slow norm in Octave 3.4.0 (Mac?)
From: |
anonymous |
Subject: |
[Octave-bug-tracker] [bug #32967] Slow norm in Octave 3.4.0 (Mac?) |
Date: |
Thu, 31 Mar 2011 15:48:47 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.19) Gecko/2011032020 Camino/2.0.7 (like Firefox/3.0.19) |
URL:
<http://savannah.gnu.org/bugs/?32967>
Summary: Slow norm in Octave 3.4.0 (Mac?)
Project: GNU Octave
Submitted by: None
Submitted on: Thu 31 Mar 2011 03:48:47 PM UTC
Category: Configuration and Build System
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Improvement/Optimization
Status: None
Assigned to: None
Originator Name: Vic Norton
Originator Email: address@hidden
Open/Closed: Open
Discussion Lock: Any
Release: 3.4.0
Operating System: Mac OS
_______________________________________________________
Details:
I have compared the speed of the instructions "norm(x)" and
"sqrt(sum(x .* x))" on Thomas Treichl's Octave.app (3.2.3) and Julien
Salort's Octave.app (3.4.0). These versions of octave can be found at
http://sourceforge.net/projects/octave/files/Octave%20MacOSX%20Binary/
2011-03-27 binary of Octave 3.4.0 (2011-03-27)
2009-10-03 binary of Octave 3.2.3 (2010-11-23)
Here is a summary of the results I observed.
1. Octave 3.4.0 is a bit slower than Octave 3.2.3 on sqrt(sum(x .* x)).
2. On Octave 3.2.3, norm(x) is a bit faster than sqrt(sum(x .* x)). This
is as it should be since NRM2 is a BLAS.
3. On Octave 3.4.0, sqrt(sum(x .* x)) is four times as fast as norm(x).
This is not as it should be for the reason cited in 2.
4. norm(x) on Octave 3.2.3 is nine times as fast as norm(x) on Octave
3.4.0.
My test script and my results appear below.
The test script. The two different shebang lines placed at the top of
the file test the two different versions of octave.
#!/usr/local/bin/octave323
# norm2test.m
#!/usr/local/bin/octave323
#!/usr/local/bin/octave340
ntests = 20; n = 1e6; x = rand(n, 1);
test1 = zeros(ntests, 1); test2 = zeros(ntests, 1);
for i = 1 : ntests
tic;
norm(x);
test1(i) = toc;
endfor
for i = 1 : ntests
tic;
sqrt(sum(x .* x));
test2(i) = toc;
endfor
printf ("norm2 speed test - octave %s\n", version);
printf ("%40s\n","ellapsed times");
printf ("%30s%10s\n", "mean", "stdv");
printf ("%-20s", "norm(x)");
printf ("%10.2e", mean(test1));
printf ("%10.2e", std(test1));
printf ("\n");
printf ("%-20s", "sqrt(sum(x .* x))");
printf ("%10.2e", mean(test2));
printf ("%10.2e", std(test2));
printf ("\n");
The output.
---
norm2 speed test - octave 3.2.3
ellapsed times
mean stdv
norm(x) 7.06e-03 2.62e-05
sqrt(sum(x .* x)) 1.06e-02 1.98e-03
---
norm2 speed test - octave 3.4.0
ellapsed times
mean stdv
norm(x) 6.48e-02 3.78e-04
sqrt(sum(x .* x)) 1.46e-02 1.21e-04
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?32967>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [Octave-bug-tracker] [bug #32967] Slow norm in Octave 3.4.0 (Mac?),
anonymous <=