On Oct 12, 2010, at 11:19 AM, Michael Braun wrote: > Thanks, Simon: > > I do have a Nehalem Mac Pro, and I've found MKL to be much faster than vecLib.
Yes, because vecLib has a serious bug and doesn't spawn threads on Nehalem, but ATLAS is faster than MKL on Nehalem Mac Pro -- here are the tcrossprod timings (on 2.66GHz Mac Pro): vecLib 6.43 ATLAS serial 4.80 MKL serial 4.30 MKL parallel 0.90 ATLAS parallel 0.71 > I saw in one of the manuals that one could point R to another BLAS. But I > wasn't sure what to do with MKL because of their "layering" approach to > linking. So if I point libRblas to something else, how to I tell the link > which of the multiple libraries I need? > MKL is picking them at run time so you don't have to point it to the machine-specific libraries. You can simply create one library (ld -dylib) re-exporting exactly what you would have done when linking it in R (i.e. use -reexport-l instead of -l). For ATLAS it's much easier since you can compile it statically with PIC and create one library -- e.g. see http://r.research.att.com/libatlas-MacPro.dylib (Note that one is 10.6 only but includes both 32-bit and 64-bit ATLAS 3.9.25) Cheers, Simon > And since we are now straying away from the original topic about JAGS, let me > know if you prefer that I start another thread. I do try to follow the > posting guide as best I can. > > Michael > > > > > > On Oct 12, 2010, at 9:10 AM, Simon Urbanek wrote: > >> Michael, >> >> On Oct 9, 2010, at 5:56 PM, Michael Braun wrote: >> >>> Hi! >>> >>> I am trying to install rjags on my Mac Pro running OSX 10.6.4, and R 2.11.1 >>> (which I compiled myself so I could link to the Intel MKL blas, which I >>> prefer to other options). >> >> >> Just FWIW: CRAN R comes with shared BLAS option enabled and allows easy >> plug-in of MKL BLAS without the need to re-compile (just use the >> libRblas.dylib symlink). Note that MKL BLAS is often slower than ATLAS so if >> your main goal is speed I suggest using ATLAS (or vecLib unless you have >> Nehalem-type Mac Pro) - it is also easier to handle (both from technical and >> licensing point of view). >> >> Cheers, >> Simon >> >> >> >>> I was successfully able to install JAGS 2.1.0 through both the binary >>> installer, and compiling from source (I get the same problem either way). >>> >>> But I would like to use the rjags package. When I do >>> >>> install.packages("rjags") >>> >>> >>> I get the folliowing output: >>> >>> * installing *source* package ‘rjags’ ... >>> checking for prefix by checking for jags... /usr/local/bin/jags >>> checking for g++... g++ >>> checking for C++ compiler default output file name... a.out >>> checking whether the C++ compiler works... yes >>> checking whether we are cross compiling... no >>> checking for suffix of executables... >>> checking for suffix of object files... o >>> checking whether we are using the GNU C++ compiler... yes >>> checking whether g++ accepts -g... yes >>> checking how to run the C++ preprocessor... g++ -E >>> checking for grep that handles long lines and -e... /usr/bin/grep >>> checking for egrep... /usr/bin/grep -E >>> checking for ANSI C header files... yes >>> checking for sys/types.h... yes >>> checking for sys/stat.h... yes >>> checking for stdlib.h... yes >>> checking for string.h... yes >>> checking for memory.h... yes >>> checking for strings.h... yes >>> checking for inttypes.h... yes >>> checking for stdint.h... yes >>> checking for unistd.h... yes >>> checking Console.h usability... yes >>> checking Console.h presence... yes >>> checking for Console.h... yes >>> checking for gcc... gcc >>> checking whether we are using the GNU C compiler... yes >>> checking whether gcc accepts -g... yes >>> checking for gcc option to accept ISO C89... none needed >>> checking for jags_version in -ljags... yes >>> configure: creating ./config.status >>> config.status: creating src/Makevars >>> configure: creating ./config.status >>> config.status: creating src/Makevars >>> config.status: creating R/unix/zzz.R >>> ** libs >>> *** arch - x86_64 >>> g++ -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include >>> -I/Library/Frameworks/R.framework/Resources/include/x86_64 >>> -I/usr/local/include/JAGS >>> -I/opt/intel/Compiler/11.1/089/Frameworks/mkl/Headers >>> -I/Install_Files/MKL_gfortran_interface/include/em64t/lp64 -fPIC -m64 >>> -msse4.2 -g -O2 -c jags.cc -o jags.o >>> g++ -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined >>> dynamic_lookup -single_module -multiply_defined suppress >>> -L/opt/intel/Compiler/11.1/089/Frameworks/mkl/Libraries/em64t >>> -L/Users/braunm/Install_Files/MKL_gfortran_interface/lib/em64t -o rjags.so >>> jags.o -lgsl -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread >>> -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework >>> -Wl,CoreFoundation >>> installing to /Users/braunm/.R/Library/rjags/libs/x86_64 >>> ** R >>> ** data >>> ** preparing package for lazy loading >>> ** help >>> *** installing help indices >>> ** building package indices ... >>> Error : .onLoad failed in loadNamespace() for 'rjags', details: >>> call: dyn.load(file, DLLpath = DLLpath, ...) >>> error: unable to load shared library >>> '/Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so': >>> dlopen(/Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so, 10): Symbol not >>> found: _JAGS_NA >>> Referenced from: /Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so >>> Expected in: flat namespace >>> in /Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so >>> ERROR: installing package indices failed >>> * removing ‘/Users/braunm/.R/Library/rjags’ >>> >>> >>> However, when I go to look at the symbols in the jags library, I see >>> >>> braunm4: /usr/local/lib $ nm libjags.dylib |grep JAGS >>> 0000000000098650 S _JAGS_NA >>> 0000000000110338 S _JAGS_NAN >>> 0000000000110348 S _JAGS_NEGINF >>> 0000000000110340 S _JAGS_POSINF >>> 000000000000133c t __GLOBAL__I_JAGS_NA >>> >>> and when I try >>> >>> braunm4: /usr/local/lib $ nm libjags.a |grep JAGS >>> U _JAGS_NA >>> U _JAGS_NEGINF >>> U _JAGS_NA >>> U _JAGS_NA >>> 0000000000000060 S _JAGS_NA >>> 00000000000000b8 B _JAGS_NAN >>> 00000000000000c8 B _JAGS_NEGINF >>> 00000000000000c0 B _JAGS_POSINF >>> U _JAGS_NA >>> U _JAGS_NEGINF >>> U _JAGS_POSINF >>> U _JAGS_NEGINF >>> U _JAGS_POSINF >>> U _JAGS_NEGINF >>> U _JAGS_NA >>> U _JAGS_NEGINF >>> U _JAGS_NEGINF >>> U _JAGS_NA >>> U _JAGS_NEGINF >>> U _JAGS_POSINF >>> >>> >>> So the jags libraries (both static and dynamic) are in the standard place, >>> and it looks like the symbols rjags.so needs are there as well. So I'm not >>> sure what the rjags installer is looking for. Is there perhaps an >>> environment variable that I am missing? >>> >>> Here is my sessionInfo(): >>> >>>> sessionInfo() >>> R version 2.11.1 (2010-05-31) >>> x86_64-apple-darwin10.4.2 >>> >>> locale: >>> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8 >>> >>> attached base packages: >>> [1] stats grDevices datasets graphics utils methods base >>> >>> other attached packages: >>> [1] xtable_1.5-6 doMC_1.2.1 multicore_0.1-3 foreach_1.3.0 >>> codetools_0.2-2 iterators_1.0.3 coda_0.13-5 matrixcalc_1.0-1 >>> lattice_0.18-8 reshape_0.8.3 plyr_1.2.1 >>> [12] mvtnorm_0.9-92 >>> >>> loaded via a namespace (and not attached): >>> [1] grid_2.11.1 tcltk_2.11.1 tools_2.11.1 >>> >>> >>> Thanks in advance for your help. >>> >>> Michael >>> >>> >>> >>> >>> >>> >>> >>> >>> ------------------------------------------- >>> Michael Braun >>> Homer A. Burnell (1928) Career Development Professor, >>> and Assistant Professor of Management Science (Marketing Group) >>> MIT Sloan School of Management >>> 100 Main St.., E62-535 >>> Cambridge, MA 02139 >>> bra...@mit.edu >>> 617-253-3436 >>> >>> _______________________________________________ >>> R-SIG-Mac mailing list >>> R-SIG-Mac@stat.math.ethz.ch >>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac >>> >>> >> > > ------------------------------------------- > Michael Braun > Homer A. Burnell (1928) Career Development Professor, > and Assistant Professor of Management Science (Marketing Group) > MIT Sloan School of Management > 100 Main St.., E62-535 > Cambridge, MA 02139 > bra...@mit.edu > 617-253-3436 > > > _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-mac