= ATLAS = == Description == This spkg builds ATLAS for Sage. It is build per default on Linux, but should also work on OSX and Solaris. The build is currently disabled on OSX until we sort out some linking issues on OSX. On FreeBSD dynamic libraries don't won since the wrong flags are passed to the linker. This will be fixed soon. == License == 3-clause BSD == SPKG Maintainers == * David Kirkby * William Stein == Upstream Contact == * Atlas devel mailing list. * Clint Whaley has frequently answered questions from the Sage project == Dependencies == * Fortran == Build Instructions/Notes == * patches/archinfo_linux.c.patch: Fix Itanium2 support on modern RHEL 5 and SLES 10 systems * patches/archinfo_x86.c.patch: add cpuid support for Pentium D, E models * patches/Make.top.patch: add make install target for shared libs * patches/probe_comp.c.patch: work around -m64 issue on Itanium2 * Tuning info for K732SSE1.tgz, PM32SSE2.tgz and PPCG432.tgz * Changes linker flags on Solaris if the Sun linker is used. == ChangeLog == === atlas-3.8.3.p11 (Peter Jeremy, 2010-01-25)=== * #7827: Fix atlas-3.8.3.p9 compilation on FreeBSD * Minh Van Nguyen: patch spkg-install-script to copy patches/SpewMakeInc.c over to src/CONFIG/src/SpewMakeInc.c === atlas-3.8.3.p10 (David Kirkby, January 5th 2010) === * replace bitwidth.py which uses 'ctypes' at that is broken on many platforms. === atlas-3.8.3.p7 (William Stein, Sept 21 2009) === * Make this into a dummy package on Cygwin that requires lapack. === atlas-3.8.3.p6 (David Kirkby, July 19th 2009) === * Trac #6558 This is an enhancement to trac #6276, which applies a Solaris patch to only those based on the sun4v architcture, rather than all Solaris machines. * Finished off an unfinished sentance in a comment in spkg-install === atlas-3.8.3.p5 (David Kirkby, June 24th 2009) === * Made a backup of ATLAS-build/lib/Makefile to ATLAS-build/lib/Makefile.orig * Alter the flags in ATLAS-build/lib/Makefile with those that will work if the linker used is the Sun linker. The default Makefile makes use of the GNU linker's flags, such as "-shared" which is not acceptable to the Sun linker. The patch is only applied if the operating system is Solaris, and the linker is not the GNU linker. The flags charged are: -shared ==> -G -soname ==> -h --whole-archive ==> -z allextract --no-whole-archive ==> -z defaultextract NOTES: 1) Sun have a tool which accepts gcc flags, but calls the Sun compiler. This patch might mess things up if that is used. Having never used the tool it's impossible to be 100% sure of this. Anyway, that will be some time in the future, so this patch can be removed. 2) The fact the linker flags are GNU specific has been reported to the ATLAS maintainer, so they may fix this problem. In which case the patch could be removed at a later date. * Fixed a minor spelling mistake in this file === atlas-3.8.3.p4 (David Kirkby, June 16th 2009) === * Change GuessSmallNB() in src/tune/blas/gemm/mmsearch.c as suggested by Clint Whaley to return 28 on Solaris. This is ONLY A TEMPORARY FIX and once the real problem in the function is sorted out, this fix will need to be removed. But for now it permits ATLAS to build on a Sun T5240 with gcc-4.4.0. === atlas-3.8.3.p3 (William Stein, June 2, 2009) === * Fix so SAGE_FAT_BINARY *only* used on x86 boxes. === atlas-3.8.3.p2 (William Stein, May 31, 2009) === * Change SAGE_SIMD_MODE --> SAGE_FAT_BINARY === atlas-3.8.3.p1 (Michael Abshoff, April 17th, 2009) === * Introduce SAGE_SIMD_MODE. If set to SSE2 only use SSE1 and SSE2 instructions (#5219) * Detect Atom CPUs as Core2 (#5741) * unbreak parallel make on system with "real" sh (#5742) === atlas-3.8.3.p0 (William Stein, February 20, 2009) === * implement up to 5 auto-restarts with random timeouts. === atlas-3.8.3 (Michael Abshoff, February 20, 2009) === * rebase against latest upstream (#5311) * make ATLAS automatically restart build on tolerance error (#1641) === atlas-3.8.2.p2 (Michael Abshoff, January 2nd, 2009) === * Actually fix dynamic liblapack.so on Solaris as intended in atlas-3.8.2.p1 * revert dumb mistake from atlas-3.8.2.p1 make_correct_shared.sh === atlas-3.8.2.p1 (Michael Abshoff, January 2nd, 2009) === * Do not create any dynamic liblapack.so on non-Linux since they break numpy and scipy === atlas-3.8.2.p0 (Michael Abshoff, January 2nd, 2009) === * copy Make.top into the right directory === atlas-3.8.2 (Michael Abshoff, January 1st, 2009) === * update to latest upstream * add cleaned up patches to repo * clean up SPKG.txt some more === atlas-3.8.1.p3 (Michael Abshoff, July 6th, 2008) === * Really apply the ATLAS-3.8.1-ppc-g4-7447-detect-fix.patch === atlas-3.8.1.p2 (Michael Abshoff, June 26th, 2008) === * Complex GEMM sometimes accesses C when BETA=0 (#3290) * Bad GEMM call causes performance drop for all architectures (#3380) === atlas-3.8.1.p1 (Michael Abshoff, March 21st, 2008) === * add Pentium D 64 bit tuning info (#2986) === atlas-3.8.1.p0 (Michael Abshoff, March 19th, 2008) === * update patch description * Fix Itanium2 detection and work around "-m64" issue on RHEL 64 bit === atlas-3.8 (Michael Abshoff, March 19th, 2008) === * update to 3.8.1 release * add tuning info for G4 on Linux * add tuning and detection for Pentium D process (together with Burcin Erocal) * clean up SPKG.txt === atlas-3.8.p11 (Michael Abshoff, Feb. 2nd, 2008) === * add pre-tuned information for Pentium M, Athlon MP === atlas-3.8.p10 (Michael Abshoff, Jan. 26th, 2008) === * exit spkg-check on Darwin (fixes #1934) === atlas-3.8.p9 (Michael Abshoff, Jan. 22nd, 2008) === * fix SAGE_ATLAS_LIB to point to the root of the ATLAS directory * also link the headers which is the prime motivation for the change above * Apply row-major GEMM major ATLAS errata (#1787) === atlas-3.8.p8 (Josh Kantor, Jan. 19th, 2008) === * Added optional environment variable SAGE_ATLAS_LIB. This should be a directory that contains liblapack.so,libcblas.so, libf77blas.so, libatlas.so. Instead of building atlas we make symlinks to these libraries in $SAGE_LOCAL/lib === atlas-3.8.p6 (Josh Kantor, Dec. 15th, 2007) === * check if ATLAS bailed out due to unprecise timings. This happens if the system is too loaded. === atlas-3.8.p5 (Josh Kantor, Dec. 14th, 2007) === * introduce workaround for 32 bit userspace build on 64 bit CPUs - see #1497 === atlas-3.8.p4 (Michael Abshoff, Dec. 13th, 2007) === * disable parallel make === atlas-3.8.p3 (Josh Kantor, Dec. 11th, 2007) === * disable build on OSX for now === atlas-3.8 (Josh Kantor, Nov. 28th, 2007) === * updated to version 3.8 * applied patch so that shared libraries are copied * fortran wrapper uses sage_fortran * ATLAS produces borked lapack.so which has missing symbols * liblapack.so is around 100k while liblapack.a is 8 mb * manually create a full liblapack.so === atlas-3.7.38 (Michael Abshoff, Oct. 6th, 2007) === * update to 3.7.38 === atlas-3.7.37 (Michael Abshoff, Aug. 15th, 2007) === * new upstream release (3.7.37), initial release * {{{make check}}} added in spkg-check ToDo * compile threading support conditionally