Commit acf6ba7d authored by Marco Mariani's avatar Marco Mariani

dream: gfortran + libatlas components

parent 25c3088b
......@@ -121,6 +121,33 @@ environment =
# make install does not work when several core are used
make-targets = install -j1
[gcc-fortran]
hack-revision = ${gcc-interconnection-workaround:hack-revision}
depends =
${gcc-download:location}
recipe = slapos.recipe.cmmi
path = ${gcc-source:location}
location = ${buildout:parts-directory}/${:_buildout_section_name_}
md5sum = bb3265edf0fa7543e50cedb93e04e427
patches =
${gcc-multiarch.patch:location}/${gcc-multiarch.patch:filename}
patch-options = -p2
configure-command = make clean \\; make distclean \\; ./configure
configure-options =
--disable-bootstrap
--enable-languages="c,c++,fortran"
--disable-multilib
--with-gmp=${gmp:location}
--with-mpfr=${mpfr:location}
--with-mpc=${mpc:location}
--with-ppl=${ppl:location}
--with-cloog=${cloog-ppl:location}
--prefix=${buildout:parts-directory}/${:_buildout_section_name_}
environment =
LDFLAGS=-Wl,-rpath=${mpfr:location}/lib -Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${mpc:location}/lib -Wl,-rpath=${ppl:location}/lib -Wl,-rpath=${cloog-ppl:location}/lib
# make install does not work when several core are used
make-targets = install -j1
[gcc-interconnection-workaround]
# gcc parts are interconnected, so buildout is not capable to clean them up
# until gcc will be simplified by using more robust build recipe (like
......
[buildout]
parts =
libatlas
[skip-throttle-check.patch]
recipe = hexagonit.recipe.download
md5sum = 17c8471d67c99fac80ace05273ce0817
url = ${:_profile_base_location_}/${:filename}
filename = ${:_buildout_section_name_}
download-only = true
[libatlas]
recipe = cp.recipe.cmd
location = ${buildout:parts-directory}/${:_buildout_section_name_}
version = 3.10.1
lapack_version = 3.5.0
filename = atlas${:version}.tar.bz2
install_cmd =
set -e
mkdir -p ${:location}__compile__
cd ${:location}__compile__
export SRCdir=`pwd`/ATLAS
export BLDdir=`pwd`/build
wget -nc http://downloads.sourceforge.net/project/math-atlas/Stable/${:version}/${:filename}
wget -nc http://www.netlib.org/lapack/lapack-${:lapack_version}.tgz
echo "78753e869231cc1417a92eebaa076718 ${:filename}" | md5sum --check --strict --quiet -
tar xfj atlas${:version}.tar.bz2
cd $SRCdir
# http://stackoverflow.com/questions/14592401/atlas-install-really-need-to-get-past-cpu-throttle-check
# http://sourceforge.net/p/math-atlas/support-requests/886/
patch -p1 <${skip-throttle-check.patch:location}/${skip-throttle-check.patch:filename}
mkdir -p $BLDdir
cd $BLDdir
$SRCdir/configure -b 64 \
--prefix=${:location} \
--with-netlib-lapack-tarfile=${:location}__compile__/lapack-${:lapack_version}.tgz \
-C acg ${gcc-fortran:location}/bin/gcc \
-C if ${gcc-fortran:location}/bin/gfortran \
--shared
make build # tune & build lib
make check # sanity check correct answer
make ptcheck # sanity check parallel
make time # check if lib is fast
make install # copy libs to install dir
diff --git a/CONFIG/src/probe_arch.c b/CONFIG/src/probe_arch.c
index 75edef9..f440bf6 100644
--- a/CONFIG/src/probe_arch.c
+++ b/CONFIG/src/probe_arch.c
@@ -238,8 +238,7 @@ int main(int nargs, char **args)
printf("CPU MHZ=%d\n",
ProbeOneInt(OS, asmd, targ, "-m", "CPU MHZ=", &sure));
if (flags & Pthrottle)
- printf("CPU THROTTLE=%d\n",
- ProbeOneInt(OS, asmd, targ, "-t", "CPU THROTTLE=", &sure));
+ printf("CPU THROTTLE=0\n");
if (flags & P64)
{
if (asmd == gas_x86_64)
[buildout]
extends =
../../stack/slapos.cfg
../../component/git/buildout.cfg
../../component/gcc/buildout.cfg
../../component/libatlas/buildout.cfg
parts =
python2.7-virtualenv
eggs
gcc-fortran
libatlas
# XXX ideally, libatlas should use this version
#[gcc-download]
#url = http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-4.7.0/gcc-4.7.0.tar.bz2
#md5sum = 2a0f1d99fda235c29d40b561f81d9a77
[eggs]
recipe = zc.recipe.egg
eggs =
${lxml-python:egg}
slapos.cookbook
collective.recipe.template
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment