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.
Bug 236076 - Please consider including the AMD's x86-64 math library
Summary: Please consider including the AMD's x86-64 math library
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: glibc
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-04-11 20:22 UTC by Deji Akingunola
Modified: 2007-11-30 22:12 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-11-16 14:02:52 UTC


Attachments (Terms of Use)
benchmark program from polyhedron testsuite (deleted)
2007-04-11 20:22 UTC, Deji Akingunola
no flags Details

Description Deji 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

Comment 1 Deji Akingunola 2007-04-11 20:22:23 UTC
Created attachment 152321 [details]
benchmark program from polyhedron testsuite

Comment 2 Deji Akingunola 2007-11-16 14:02:52 UTC
Now on F-8 and using gfortran from gcc trunk, the 64bit compilation run slightly
faster (~1s) than the 32bit compilation. 


Note You need to log in before you can comment on or make changes to this bug.