Re: [R] Performance difference between 32-bit build and 64-bit bu ild on Solaris 8

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Sat 11 Jun 2005 - 17:31:44 EST

On Fri, 10 Jun 2005, Liaw, Andy wrote:

> I'm not familiar with Solaris, so take this with appropriate dose of NaCl...
>
> For the 64-bit build, why not have the -O2 for gcc, since you have it for
> g77 and g++? If you just run vanilla configure for the 32-bit build, I
> believe it uses -O2 for all three compilers by default. If that's the
> difference, perhaps it's sufficient to explain the performance difference.

CFLAGS was not specified, so should default to "-g -O2". It is definitely worth checking, although almost all the time in these tests will be spent in Fortran code.

> The other thing is that solve(), and to some extent lm(), can benefit from
> an optimized BLAS. You might want to check if the two builds are using
> equivalent BLAS.

He said:

>> neither build uses a BLAS.

Well, they do, the one supplied with R (which is in Fortran).

To supplement my timings earlier, with an optimized BLAS I gave

32-bit
[1] 4.99 0.03 5.02 0.00 0.00
64-bit
[1] 5.25 0.03 5.29 0.00 0.00

and for gcc 3.4.3 and the internal BLAS (which I had to build for these tests) I get

32-bit
[1] 9.96 0.09 10.12 0.00 0.00
64-bit
[1] 9.93 0.04 10.04 0.00 0.00

so I am not seeing anything like the same performance difference between 32- and 64-bit builds (but it could well depend on the particular Sparc chip).

There are some problems in which the 64-bit builds _are_ much slower: complex matrix arithmetic is one (presumably because less effort has been spent on optimizing that).

>
> Andy
>
>> From: Scott Gilpin
>>
>> Hi everyone -
>>
>> I'm seeing a 32-bit build perform significantly faster (up to 3x) than
>> a 64 bit build on Solaris 8. I'm running R version 2.1.0. Here are
>> some of my system details, and some resulting timings:
>>
>>> uname -a
>> SunOS lonetree 5.8 Generic_117350-16 sun4u sparc SUNW,Sun-Fire-V440
>>
>> lonetree /home/sgilpin >gcc -v
>> Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.8/3.4.2/specs
>> Configured with: ../configure --with-as=/usr/ccs/bin/as
>> --with-ld=/usr/ccs/bin/ld --disable-nls
>> Thread model: posix
>> gcc version 3.4.2
>>
>> I built the 32 bit version of R with no changes to config.site. I
>> built the 64 bit version with the following in config.site:
>>
>> CC="gcc -m64"
>> FFLAGS="-m64 -g -02"
>> LDFLAGS="-L/usr/local/lib/sparcv9 -L/usr/local/lib"
>> CXXFLAGS="-m64 -g -02"
>>
>> neither build uses a BLAS. Both builds are installed on the same
>> machine, and the same disk. The machine has virtually no load; R is
>> one of the only processes running during these timings:

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Sat Jun 11 17:36:55 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:31 EST