#10226: Rewrite ATLAS spkg-install
-----------------------------+----------------------------------------------
Reporter: vbraun | Owner: GeorgSWeber
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-4.7.1
Component: packages | Resolution:
Keywords: ATLAS spkg | Work_issues:
Upstream: N/A | Reviewer: Dan Drake, David Kirkby
Author: Volker Braun | Merged:
Dependencies: |
-----------------------------+----------------------------------------------
Description changed by vbraun:
Old description:
> I rewrote the ATLAS spkg-install to
> * allow customization of architectural defaults via the new
> `SAGE_ATLAS_ARCH` environment variable.
> * still build a reasonable library if the automatic tuning process
> fails to find accurate timings.
> * `SAGE_ATLAS_LIB=path` now searches in `path/libatlas.so` instead of
> `path/lib/libatlas.so` so it works for people with atlas in `/lib64`,
> too.
> * Threading is now enabled by default. Whats the point of trying to
> squeeze more performance out of modern processors if you run on one core
> only?
>
> By default, ATLAS will now try twice to get timings, if that fails build
> with `SAGE_ATLAS_ARCH=fast`, and if that fails with
> `SAGE_ATLAS_ARCH=base`.
>
> From the new `SPKG.txt`:
> {{{
> The package can be configured via two environment variables:
>
> * SAGE_ATLAS_LIB=path
> If this environment variable is set, path/libatlas.so is used
> and ATLAS is not compiled.
>
> * SAGE_ATLAS_ARCH=arch[,isaext1][,isaext2]...[,isaextN]
> The given architectural default and instruction set extensions are
> used instead of the empirical tuning. Available architectures are
>
> POWER3, POWER4, POWER5, PPCG4, PPCG5, P5, P5MMX, PPRO, PII, PIII,
> PM, CoreSolo, CoreDuo, Core2Solo, Core2, Corei7, P4, P4E,
> Efficeon, K7, HAMMER, AMD64K10h, UNKNOWNx86, IA64Itan, IA64Itan2,
> USI, USII, USIII, USIV, UnknownUS, MIPSR1xK, MIPSICE9
>
> and instruction set extensions are
>
> AltiVec, SSE3, SSE2, SSE1, 3DNow
>
> In addition, you can also set
>
> - SAGE_ATLAS_ARCH=fast picks defaults for a modern (2-3 year old)
> CPU of your processor line, and
>
> - SAGE_ATLAS_ARCH=base picks defaults that should work for a ~10
> year old CPU.
>
> For example,
>
> SAGE_ATLAS_ARCH=Corei7,SSE3,SSE2,SSE1
>
> would be appropriate for a Core i7 CPU.
> }}}
>
> I implemented the spkg-install script in python without relying on any
> external programs (except for make, of course). The configuration-
> detecting part is in the `configuration.py` module. For easier review I
> will attach the files to this ticket. The complete spkg is here:
>
> http://www.stp.dias.ie/~vbraun/Sage/spkg/atlas-3.8.3.p17.spkg
New description:
I rewrote the ATLAS spkg-install to
* allow customization of architectural defaults via the new
`SAGE_ATLAS_ARCH` environment variable.
* still build a reasonable library if the automatic tuning process fails
to find accurate timings.
* `SAGE_ATLAS_LIB=path` now searches in `path/libatlas.so` instead of
`path/lib/libatlas.so` so it works for people with atlas in `/lib64`, too.
* Threading is now enabled by default. Whats the point of trying to
squeeze more performance out of modern processors if you run on one core
only?
By default, ATLAS will now try twice to get timings, if that fails build
with `SAGE_ATLAS_ARCH=fast`, and if that fails with
`SAGE_ATLAS_ARCH=base`.
From the new `SPKG.txt`:
{{{
The package can be configured via two environment variables:
* SAGE_ATLAS_LIB=path
If this environment variable is set, path/libatlas.so is used
and ATLAS is not compiled.
* SAGE_ATLAS_ARCH=arch[,isaext1][,isaext2]...[,isaextN]
The given architectural default and instruction set extensions are
used instead of the empirical tuning. Available architectures are
POWER3, POWER4, POWER5, PPCG4, PPCG5, P5, P5MMX, PPRO, PII, PIII,
PM, CoreSolo, CoreDuo, Core2Solo, Core2, Corei7, P4, P4E,
Efficeon, K7, HAMMER, AMD64K10h, UNKNOWNx86, IA64Itan, IA64Itan2,
USI, USII, USIII, USIV, UnknownUS, MIPSR1xK, MIPSICE9
and instruction set extensions are
AltiVec, SSE3, SSE2, SSE1, 3DNow
In addition, you can also set
- SAGE_ATLAS_ARCH=fast picks defaults for a modern (2-3 year old)
CPU of your processor line, and
- SAGE_ATLAS_ARCH=base picks defaults that should work for a ~10
year old CPU.
For example,
SAGE_ATLAS_ARCH=Corei7,SSE3,SSE2,SSE1
would be appropriate for a Core i7 CPU.
}}}
I implemented the spkg-install script in python without relying on any
external programs (except for make, of course). The configuration-
detecting part is in the `configuration.py` module. For easier review I
will attach the files to this ticket. The complete spkg is here:
http://www.stp.dias.ie/~vbraun/Sage/spkg/atlas-3.8.3.p18.spkg
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10226#comment:67>
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.