Avraham Adler
2010-May-28 05:27 UTC
[R-sig-Debian] Compiling R-2.11.0 with ATLAS-tuned BLAS and LAPACK
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. 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. 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 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. Thank you, --Avraham
Michael Rutter
2010-May-28 14:02 UTC
[R-sig-Debian] Compiling R-2.11.0 with ATLAS-tuned BLAS and LAPACK
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. > > 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. > > 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 > > 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. > > 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
Avraham Adler
2010-Jun-06 15:32 UTC
[R-sig-Debian] Compiling R-2.11.0 with ATLAS-tuned BLAS and LAPACK
For what it is worth, I've been (barely) following the conversation, and thanks to Paul and Dirk's conversation, managed to install R from the repository and then link the acml libraries as the libatlas.3gf.so nd saw about an 8 times increase in speed on the mm test. Thank you all very much!! Now, if only someone with the technical know-how and a clear writing style could update the help manuals for n00bs like myself.... Thanks again, --Avraham