[R-sig-Debian] Compiling R-2.11.0 with ATLAS-tuned BLAS and LAPACK

Dirk Eddelbuettel edd at debian.org
Fri May 28 17:33:57 CEST 2010


On 28 May 2010 at 10:02, Michael Rutter wrote:
| On 05/28/2010 01:27 AM, Avraham Adler wrote:
| > Hello. I am a Linux neophyte and know almost nothing  about compiling,
| > so I would appreciate any help and advice y'all would care to offer.

Michael's advice is very, very good. Particularly if you are new to
this. Compiling Atlas _well_ is hard.

And as Michael says, you don't have to. You system already does this.

| > I am trying to compile the 64 bit version of R using a tuned ATLAS and
| > LAPACK (ATLAS 3.9.24). I am running Ubunto 10.04 LTS (through wubi,
| > FWIW). The ATLAS and LAPACK files (atlas.so, f77blas.so, lapack.so,
| > and cblas.so) are sitting in the folder "/usr/local/atlas/lib"
| > (together with the static .a versions and some other files.

Ubuntu 10.04 gives you prebuilt Atlas packages (albeit 3.6.0). Easiest solution.

You can take the Atlas packages from Debian (3.8.*) and rebuild locally. 

Or you can insinst on building all this yourself but it _is_ difficult. Few
of use here do this regularly, so few will be able to help.

| > Following the R installation manual, I used the following configure string:
| >
| > ./configure --enable-R-shlib --enable-BLAS-shlib
| > --with-blas="-L/usr/local/atlas/lib -latlas -lf77blas"
| > --with-lapack="-L/usr/local/atlas/lib -llapack -lcblas" CFLAGS='-O3
| > -pipe -march=native' CXXFLAGS='-O3 -pipe -march=native'
| > R_PAPERSIZE='letter'
| >
| > The configuration routine returns the following errors:
| >
| > checking for cblas_cdotu_sub in vecLib framework... no
| > checking for dgemm_ in -L/usr/local/atlas/lib -latlas -lf77blas... no
| > checking for dgemm_... no
| > checking for ATL_xerbla in -latlas... no
| > checking for dgemm_ in -lblas... no
| > checking for dgemm_ in -lblas... (cached) no
| > checking for dgemm_ in -lblas... (cached) no

In other words, complete failure...

| > Looking at the config.log shows the following:
| >
| > configure:28566: checking for dgemm_ in -L/usr/local/atlas/lib -latlas -lf77blas
| > configure:28587: gcc -std=gnu99 -o conftest -O3 -pipe -march=native
| > -fpic  -I/usr/local/include  -L/usr/local/lib64 conftest.c
| > -L/usr/local/atlas/lib -latlas -lf77blas  -lgfortran -lm -ldl -lm>&5
| > conftest.c: In function 'main':
| > conftest.c:193: warning: implicit declaration of function 'dgemm_'
| > /usr/local/atlas/lib/libf77blas.so: undefined reference to `atl_f77wrap_zger2u_'
| > /usr/local/atlas/lib/libf77blas.so: undefined reference to `atl_f77wrap_cger2c_'
| > /usr/local/atlas/lib/libf77blas.so: undefined reference to `atl_f77wrap_zger2c_'
| > /usr/local/atlas/lib/libf77blas.so: undefined reference to `atl_f77wrap_cger2u_'
| > collect2: ld returned 1 exit status
| > configure:28587: $? = 1
| >
| > If I run "make" after this, R starts compiling and uses its own
| > built-in blas and lapack
| >
| > I tried various different flavors of the configuration line including
| > using BLAS_LIBS and LAPACK_LIBS to pass the folder and libraries, and
| > nothing seems to work.
| >
| > I do not know enough to know if the problem with my ATLAS libraries or
| > if the problem with my attempt at compiling R. If it makes a
| > difference, the ATLAS (3.9.24) needed to be compiled with the
| > --allow-multiple-definitions (-z multidef) option because of what may
| > be a bug (see<http://sourceforge.net/tracker/?func=detail&aid=2998779&group_id=23725&atid=379483>
| > )
| >
| > I do not know if I could follow the "Shared BLAS" route suggested for
| > ACML/Goto, as ATLAS requires two files (the f77blas library as well).
| > Also, I would like to use the tuned lapack.
| >
| > I would very much appreciate any and everyones advice, as I have no
| > idea how to proceed.

I'd say start with the easy route as you can then proceed with your actual
modeling, estimation or data work.

Dirk

| >
| > Thank you,
| >
| > --Avraham
| >
| 
| Avraham,
| 
| As has been mentioned before, the R packages available on CRAN have been 
| built with support for BLAS.  If you still want to compile your own, my 
| suggestion would be to google the following:
| 
| "checking for dgemm_... no"
| 
| OR
| 
| "warning: implicit declaration of function 'dgemm_'"
| 
| Make sure you use the quotes.  You may find an answer to your problem there.
| 
| Michael
| 
| -- 
| Dr. Michael A. Rutter
| School of Science
| Penn State Erie, The Behrend College
| Station Road
| Erie, PA 16563
| http://math.bd.psu.edu/faculty/rutter
| 
| _______________________________________________
| R-SIG-Debian mailing list
| R-SIG-Debian at r-project.org
| https://stat.ethz.ch/mailman/listinfo/r-sig-debian

-- 
  Regards, Dirk



More information about the R-SIG-Debian mailing list