Bug 166871 - Review Request: ATLAS - fast linear algebra libraries
Summary: Review Request: ATLAS - fast linear algebra libraries
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: José Matos
QA Contact: David Lawrence
URL: http://math-atlas.sourceforge.net/
Whiteboard:
Depends On:
Blocks: FE-ACCEPT
TreeView+ depends on / blocked
 
Reported: 2005-08-26 16:36 UTC by Quentin Spencer
Modified: 2009-03-03 00:41 UTC (History)
2 users (show)

Fixed In Version: 3.6.0-7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-10-05 19:11:44 UTC
Type: ---
Embargoed:
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Quentin Spencer 2005-08-26 16:36:58 UTC
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.


Notes:

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:
0.52092

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

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 12:02:54 UTC
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 
2 
FLINKER & FLAGS: $(F77) $(F77FLAGS) 
 
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 15:23:26 UTC
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 21:06:49 UTC
I believe I have found the problem and updated the spec and SRPM files:
http://webpages.charter.net/qspencer/rpm/


Comment 4 José Matos 2005-09-14 15:09:44 UTC
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 15:27:10 UTC
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 16:59:28 UTC
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 20:44:33 UTC
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 16:48:58 UTC
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 17:04:56 UTC
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
released.

Comment 10 José Matos 2005-10-04 18:26:32 UTC
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 19:11:44 UTC
A successful build has just completed on devel. A FC-4 branch has been requested.

Comment 12 Deji Akingunola 2009-03-02 15:06:07 UTC
Package Change Request
======================
Package Name: atlas
New Branches: EL-5
Owners: deji

Comment 13 Kevin Fenzi 2009-03-03 00:41:51 UTC
cvs done.


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