#9780: Check for static libraries libatlas.a, libcblas.a, libf77blas and
liblapack.a, so SAGE_ATLAS_LIB works
------------------------+---------------------------------------------------
Reporter: drkirkby | Owner: drkirkby
Type: defect | Status: needs_review
Priority: major | Milestone: sage-4.6
Component: solaris | Keywords:
Author: | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
------------------------+---------------------------------------------------
Comment(by drkirkby):
Replying to [comment:12 jhpalmieri]:
> Overall the changes look sensible.
>
> A few comments about {{{system_atlas.py}}}. In line 15:
> {{{
> has_atlas = os.path.exists(ATLAS_LIB+'/lib//libatlas.a')
> }}}
> should the double slash be a single one?
Single
> In the comments on lines 44-51 of the same file, there are a few typos
("relieably" and "Buidling"), but this is not very important.
But I can fix them.
> In lines 64-72, there is an old error: as you can see from the code,
{{{SAGE_ATLAS_LIB}}} should be a directory which contains subdirectories
"lib" and "include/atlas".
IMHO it is badly named. It should have been called SAGE_ATLAS. It is very
unconventional. Take a look for example at gcc's configure options:
{{{
--with-gmp=PATH specify prefix directory for the installed GMP
package.
Equivalent to --with-gmp-include=PATH/include
plus --with-gmp-lib=PATH/lib
--with-gmp-include=PATH specify directory for installed GMP include
files
--with-gmp-lib=PATH specify directory for the installed GMP library
}}}
The {{{LIB}}} in {{{SAGE_ATLAS_LIB}}} is confusing, when there are include
files too.
> In particular, it should not be set to the "parent directory of
liblapack.a, libcblas.a, libatlas.a and libf77blas.a". (I probably should
have fixed this in #9356.) In the
[http://sagemath.org/doc/installation/source.html#environment-variables
installation guide], we documented this as saying "the parent directory of
your ATLAS installation: it should have a subdirectory lib containing the
files libatlas.so, liblapack.so, libcblas.so, and libf77blas.so, and it
should have a subdirectory include/atlas/ containing header files." As far
as I know, that is accurate, and we might use similar language here. Oh,
and I guess we should change the text in the installation guide from *.so
to *.a... I can add a patch for that if you want.
I think we have a difference of opinion about what a "parent" directory
is. IMHO, if we have:
{{{
/usr/local/ATLAS/lib
/usr/local/ATLAS/include
}}}
Then the parent directory of the ATLAS installation is {{{/usr/local}}}.
In other words, {{{SAGE_ATLAS_LIB}}} should be the parent directory of
{{{/usr/local/ATLAS/lib}}}. I think the definition at
http://en.wikipedia.org/wiki/Parent_directory is reasonable.
I thought the wording was confusing, so thought I'd try to clarify it.
Obviously you think I've made it more confusing.
Perhaps it needs an example - the one above might be reasonable. Perhaps
remove the word "parent", and just do it more by example.
Perhaps you have a better idea.
> Finally, for testing this, I'm not sure I have access to a system with a
genuine ATLAS installation. I can use an ATLAS build from another version
of Sage, but should we test this with other ATLAS installations as well?
I'll try it out on t2 and one or two skynet machines.
I've not got access to any machine with a "genuine" ATLAS installation.
Does such a thing exist? It's not really a standard package. I think given
the nature of ATLAS, which (Automatically Tuned Linear Algebra System) one
really should build it from source on the machine so it is tuned properly.
So even if you can find a ATLAS library for Debian/Redhat etc, it is
unlikely to be optimal for your hardware.
The only other thing I have access to is Mathematica which uses ATLAS and
has the 4 shared libraries. Unfortunately, since Mathematica is 64-bit,
and we can only at this point build Sage reliably 32-bit, that's not an
option. I might have an old version of Mathematica I could try, but that's
a lot of messing around - installing the software just to try the library.
I don't think it's unreasonable for someone to build Sage once with ATLAS,
then at a later date use that install.
Dave
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9780#comment:13>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.