Update: I've just been looking at this some more, having realized that
sage creates a detailed install.log file, and I can't find any
significant difference between the compiler options used when sage
compiles gmp and when I compile gmp manually.

In particular, they both identify the processor the same way, and both
use
        -mtune=pentium3 -march=pentium3

If also checked mpfr, and it seems to compile properly as well. I don't
know what's going on.

On Mon, 2007-07-30 at 15:11 -0400, Jonathan Bober wrote:
> On Mon, 2007-07-30 at 01:21 -0700, William Stein wrote:
> > On 7/30/07, Jonathan Bober <[EMAIL PROTECTED]> wrote:
> > 
> > > While timing the code that I wrote to compute p(n), I noticed that, in
> > > the latest version, it computes p(10^9) in:
> > >
> > > - approximately 2m 30s if I link to the gmp and mpfr included in Ubuntu
> > > (gmp version 3.something, I think)
> > >
> > > - approximately 3m 30s if I link to the gmp and mpfr included in sage
> > > 2.7.1 (built from source)
> > >
> > > - approximately 2m 18s if I link to the newest versions of gmp and mpfr
> > > that I just downloaded and compiled.
> > 
> > Precisely which operating system and processor are you using?
> 
> Ubuntu 7.04 on a Core Duo (not Core 2) [on a Dell Inspiron E1505, but I
> don't that's important.]
> 
> > You might want to take a look at spkg-install's in the gmp and
> > mpfr spkg's.
> 
> In the spkg install scripts in the gmp spkg, I think the only
> package-specific configure flags are
> 
> SAGE_CONF_OPTS="--enable-shared --disable-static"
> 
> and spkg-install script for gmp runs configure as
> 
> ./configure --prefix=$SAGE_LOCAL --enable-cxx=yes  $SAGE_CONF_OPTS 
> 
> I'm not too familiar with the sage build process right now, so I'm not
> sure if there are other global options set. CFLAGS and CXXFLAGS might be
> set to something, and I don't know if this affects things.
> 
> > 
> > If so, it is not intentional.  Probably if it were the case, the slowdown
> > would like be even more than you observed.
> > 
> 
> How do the precomiled binaries get built? Is it the same as everything
> else? I see that the binaries seem to require an i686 processor, but I
> think that gmp processor optimizations get more specific than this.
> (Wikipedia lists the Pentium Pro in the i686 family, and I don't think
> that the Pentium Pro even has any SSE instructions.) If the default
> build produces code that runs on a Pentium Pro, then it probably isn't
> producing optimized code for newer processors.
> 
> I assume that there is an easy way for me to modify the spkg-install
> scripts for gmp and mpfr and then rebuild them - what is the process?
> 
> > > Also, there is an --enable-fat for the ./configure script for gmp, that
> > > apparently compiles processor specific code for all x86 cpus, and
> > > selects the right code at run time. I would guess that this is what the
> > > Ubuntu build uses, and if my assumptions about how sage builds gmp are
> > > right, then that would explain why the Ubuntu version of gmp is faster.
> > >
> > > Anyway, I could be wrong about the reasons, but there is almost
> > > definitely something that causes my code to run slower when I link it to
> > > the sage build of gmp, and if this problem is widespread, then it
> > > probably causes a lot of slowdown throughout sage.
> > 
> > There is clearly something seriously wrong based on your above timings,
> > and I hope we get to the bottom of it.   I'm really glad you pointed
> > this out and have a clearly reproducible test case.
> > 
> > By the way, on my MacBook Pro 2.33Ghz running OS x (and SAGE's GMP),
> > using your latest partitions code,  it does p(10^9) in 1m 35s !!  Wow.
> > 
> 
> Maybe I should have held out a few months for the Core 2 when I bought
> my laptop. A lot of that speedup probably comes from the fact that it is
> 64 bit.
> 
> > sage: time v=number_of_partitions(10^9)
> > CPU times: user 94.72 s, sys: 0.27 s, total: 94.99 s
> > Wall time: 95.32
> > sage: len(str(v))
> > 35219
> > sage: v%11
> > 4
> > 
> > 
> > By the way -- people wanting to upgrade sage-2.7.2 to have the latest
> > version of Jonothan's code, can just do hg_sage.pull() and
> > "sage -br".
> > 
> >  -- William
> > 
> > > 
> > 
> > 
> 
> 
> > 
> 
> 


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to