Hi Bill,
thanks a lot, that is very valuable information. I actually made
that change trying to reduce the
number of bogus -Wmaybe-uninitialized warnings. I am somewhat
surprised that this has such
a performance impact.
In the meantime I have filed a g++ bug report concerning -Wmaybe-uninitialized, but it seems
like we may have to live with it for a while.
I have partly reverted the change that I made, please let me
know if the problem is
fixed (SVN 1283).
Best regards,
Jürgen
On 5/4/20 3:49 AM, Bill Heagy wrote:
The
change from 1273 to 1274 in Shape.hh after about line 65 appears
to replace a constant with a structure (?I haven't really looked
at what this all does). Backing this out from SVN 1282 speeds my
test program up (and also gets rid of the compiler warning).
On 5/3/20 10:49 AM, Dr. Jürgen Sauermann wrote:
Hi Bill,
I double-checked all differences between SVN 1273 and the latest
SVN.
The only primitive changed was dyadic ∼ (WITHOUT) which is not
used in your function.
Therefore I assume the change in performance was caused by
differences
in ./configure settings or other reasons beyond the source code.
You could
send me your current *config.h*to have a look at.
Best Regards,
Jürgen
On 5/3/20 12:19 AM, Bill Heagy wrote:
On 5/2/20 1:53 PM, Dr. Jürgen Sauermann wrote:
Hi Bill,
I cannot reproduce this.
Did you run *./configure*after updating from SVN? Sometimes
Makefiles slip
through and can cause performance differences that are then
caused by differering
* ./configure* options. I normally use make developwhich
turns many debug
features on which are turned off when using the default
*./configure* options.
CXXFLAGS=-Werror=maybe-uninitialized ./configure
I tried using "make develop" but couldn't figure out how to
get the Werror condition to apply. I've been using "timer"
from the "timer" workspace to get the timings.
It looks as if the problem started at svn 1274, the same one
where I had to start disabling the warning.
I have changed your benchmark a little to show the time
spent:
*∇rr←sol nn;T**
**T←⎕TS**
**n←1↓⍳nn**
**r←,2**
**l:**
**→(nn<(↑n)*2)⍴x**
**r←r,↑n←(~∨⌿0=⊃r|¨⊂n)/n**
**→l**
**x:**
**r←r,1↓n**
**rr←+/r**
**0.001×0 0 0 24 60 60 1000⊥⎕TS-T**
**∇**
**
** ⊣sol 200000**
*
On 5/2/20 6:21 PM, Bill Heagy wrote:
For the last updates, my little test
program has slowed down by a factor of more than 4, debian
32 and 64 bit. (Same updates as the compiler problem
appeared, I think.)
∇rr←sol nn
n←1↓⍳nn
r←,2
l:
→(nn<(↑n)*2)⍴x
r←r,↑n←(~∨⌿0=⊃r|¨⊂n)/n
→l
x:
r←r,1↓n
rr←+/r
∇
sol 200000
|