Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

This site requires JavaScript to be enabled to function correctly, please enable it.

Bug 236076
- Please consider including the AMD's x86-64 math library

Summary:Please consider including the AMD's x86-64 math library

DescriptionDeji Akingunola
2007-04-11 20:22:23 UTC

Description of problem:
Running the 'ac' program from the polyhedron fortran benchmark on x86_64 rawhide
installation, take longer time (about 3X) when compiled natively (i.e. using
-m64) than when compiled with -m32 option.
I've noticed the same scenario in my own programs before, and when I asked on
the gfortran list it was said that stock glibc lacked optimized math libraries
for x86_64. Some other distributions are said to be carrying the patch already;
in fact gfortran daily polyhedron test on such distro shows compiling with -m64
can be faster than -m32 on x86_64 systems with the patch
(http://www.physik.fu-berlin.de/~tburnus/gcc-trunk/benchmark/).
Version-Release number of selected component (if applicable):
How reproducible:
Always
Steps to Reproduce:
1.
2.
3.
Actual results:
Expected results:
Additional info:
Runtime info on the ac program from polyhedron fortran benchmark are given below
(I'm also attaching the source code);
With -32 option
[deji@agape source]$ gfortran -m32 -march=athlon64 -ffast-math -funroll-loops
-ftree-vectorize -msse3 -O3 -w ac.f90 -o ac
[deji@agape source]$ time ./ac Opening files
Initializing variables
Creating random initial configuration
Equilibrating
Taking samples
Setting initial state
Parameters in the autocorrelation test:
Initial seed: 14159.0000000000
Lattice size (L): 16
Number of samples (ISCANS): 1000000
Coupling constant (DK): 0.440686793509770
Number of omitted confs. (MCBEG): 10000
Average energy of the system: 1.45270668750000
and its squared (error estimate / tau): 6.052927893555487E-008
Average susceptibility of the system: 0.545241659667969
and its squared (error estimate / tau): 2.525045507563519E-005
Average flipped cluster size: 139.590589000000
and its squared (error estimate / tau): 1.515278492326616E-002
------------------------------------------------------------------
The notation <squared (error estimate / tau)> means the following:
to get the correct error estimate, multiply the given value by
the integrated autocorrelation time tau (see comments in the code
for details), and then take a square root.
==================================================================
real 0m13.143s
user 0m13.024s
sys 0m0.008s
Natively:
[deji@agape source]$ gfortran -march=athlon64 -ffast-math -funroll-loops
-ftree-vectorize -msse3 -O3 -w ac.f90 -o ac
[deji@agape source]$ time ./ac Opening files
Initializing variables
Creating random initial configuration
Equilibrating
Taking samples
Setting initial state
Parameters in the autocorrelation test:
Initial seed: 14159.0000000000
Lattice size (L): 16
Number of samples (ISCANS): 1000000
Coupling constant (DK): 0.440686793509770
Number of omitted confs. (MCBEG): 10000
Average energy of the system: 1.45302590625000
and its squared (error estimate / tau): 6.031260731398280E-008
Average susceptibility of the system: 0.545497000793457
and its squared (error estimate / tau): 2.520904515483778E-005
Average flipped cluster size: 139.688266000000
and its squared (error estimate / tau): 1.513849592782648E-002
------------------------------------------------------------------
The notation <squared (error estimate / tau)> means the following:
to get the correct error estimate, multiply the given value by
the integrated autocorrelation time tau (see comments in the code
for details), and then take a square root.
==================================================================
real 0m36.653s
user 0m36.562s
sys 0m0.076s

`Created attachment 152321 [details] benchmark program from polyhedron testsuite`