Bug 166871 - Review Request: ATLAS - fast linear algebra libraries
Review Request: ATLAS - fast linear algebra libraries
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: José Matos
David Lawrence
Depends On:
  Show dependency treegraph
Reported: 2005-08-26 12:36 EDT by Quentin Spencer
Modified: 2009-03-02 19:41 EST (History)
2 users (show)

See Also:
Fixed In Version: 3.6.0-7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2005-10-05 15:11:44 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
kevin: fedora‑cvs+

Attachments (Terms of Use)

  None (edit)
Description Quentin Spencer 2005-08-26 12:36:58 EDT
Spec Name or Url: http://webpages.charter.net/qspencer/rpm/atlas.spec
SRPM Name or Url: http://webpages.charter.net/qspencer/rpm/atlas-3.6.0-1.src.rpm
Description: The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK.


This package provides replacements for the default blas and lapack libraries that should be substantially faster. A simple verification of speed improvement can be obtained using Octave with the following command:

echo "X=randn(500); t=cputime; Y=X'*X; disp(cputime-t); exit" | octave -q

On my system without atlas installed, I obtain this result:

After running "rpm -i atlas-3.6.0-1.i386.rpm", I get:

This is a 3x speedup that is obtained on base i386 architecture without any SIMD extensions. The package creates static libraries for sse, sse2, and 3dnow, but shared libraries for those are currently broken with gcc 4.

Because ATLAS is based on compile-time optimizations, distributing a package like ATLAS in binary format is a challenging problem. The Debian approach to this seems to make the most sense, so I'm using the Debian patches directly in the build process in order to avoid duplication of effort. See the document atlas_fedora_notes.txt for a more detailed explanation of the build scheme and discussion of the reasons for it.
Comment 1 José Matos 2005-09-13 08:02:54 EDT
I am not able to build it using mock on x86_64, or this is not supposed to be 
build in a x86_64 environment? 
This is the error message: 
   Enter f77 compiler [g77]: /usr/bin/gfortran^J   Enter F77 Flags 
[-fomit-frame-pointer -O -m32]: ^JF77 & FLAGS: /usr/bin/gfortran 
-fomit-frame-pointer -O -m3 
Compiling with = 'gcc -fomit-frame-pointer -O -mfpmath=387 -m32' doesn't seem 
to work for me. 
   Enter 1 to try different CC/flags, 0 to continue anyway [1]: error: Bad 
exit status from /var/tmp/rpm-tmp.96529 (%build) 
Comment 2 Quentin Spencer 2005-09-13 11:23:26 EDT
This should compile on x86_64, but I hadn't tested it before. The only x86_64
system I have access to is FC3, which is pre GCC4, so I can't really debug this.
It seems that the problem is that it is incorrectly trying 32-bit flags. Could
you send me the complete build log so I can see what it did to get to this point?
Comment 3 Quentin Spencer 2005-09-13 17:06:49 EDT
I believe I have found the problem and updated the spec and SRPM files:
Comment 4 José Matos 2005-09-14 11:09:44 EDT
I am sorry but it has failed again. :-( 
The good news is that the problem seems the same as before. I will send 
you the build-log privately. 
Comment 5 Quentin Spencer 2005-09-14 11:27:10 EDT
It seems I fixed the problem for the portion of the code where static libraries
are built, but not for the subsequent shared library build. This should be fixed
now, and updated files have been posted.
Comment 6 José Matos 2005-09-14 12:59:28 EDT
Now it fails almost in the end. I have sent you the build.log but the relevant  
lines are here:  
/usr/bin/ld: tmp/cbdsqr.o: relocation R_X86_64_32 against `a local symbol' can  
not be used when making a shared object; recompile with -fPIC  
tmp/cbdsqr.o: could not read symbols: Bad value  
collect2: ld returned 1 exit status  
Comment 7 Quentin Spencer 2005-09-14 16:44:33 EDT
It appears this problem is caused by the fact that the LAPACK library that is
being used was not compiled with the PIC flag. I have proposed changes to the
lapack package, and the maintainer has requested a new build of lapack. Some
minor changes to atlas.spec were also necessary. The updated files have been
uploaded, but in order to compile them, you will need install the new
lapack-devel, which will probably be released to the mirrors by tomorrow (or you
can get it now from the build system).
Comment 8 José Matos 2005-09-20 12:48:58 EDT
Things are improving. :-) 
Now it fails like this: 
+ ar x /usr/lib64/liblapack_pic.a 
ar: /usr/lib64/liblapack_pic.a: No such file or directory 
Comment 9 Quentin Spencer 2005-09-20 13:04:56 EDT
OK, the problem is again with the LAPACK library. The new lapack.spec compiles,
but doesn't install the liblapack_pic.a library. I have sent a patch to the
maintainer, and this should now work properly with lapack-3.0-31 when it is
Comment 10 José Matos 2005-10-04 14:26:32 EDT
Review for release 5: 
* RPM name is OK 
* Source atlas3.6.0.tar.bz2 is the same as upstream 
* This is the latest version 
* The license is correct, and it is included in the package 
* Builds fine in mock 
* rpmlint of atlas looks OK 
* rpmlint of atlas-devel looks OK 
* File list of atlas looks OK 
* File list of atlas-devel looks OK 
Needs work: 
* BuildRoot should be 
%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 
  (wiki: PackagingGuidelines#BuildRoot) 
* Missing SMP flags. If it doesn't build with it, please add a comment 
  (wiki: PackagingGuidelines#parallelmake) 
Approved. You can fix the remaining problems after importing the package. 
Comment 11 Quentin Spencer 2005-10-05 15:11:44 EDT
A successful build has just completed on devel. A FC-4 branch has been requested.
Comment 12 Deji Akingunola 2009-03-02 10:06:07 EST
Package Change Request
Package Name: atlas
New Branches: EL-5
Owners: deji
Comment 13 Kevin Fenzi 2009-03-02 19:41:51 EST
cvs done.

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