Инструкции за компилиране на R, OpenBLAS и свързване на R с OpenBLAS (GNU/Linux)
Вярвам, че най-големият ви проблем е свързването на R с библиотеката OpenBLAS. Така че стъпките, които пиша по-долу, могат да ви помогнат да успеете в тази връзка.
Компилиране на OpenBLAS
Първоначално изтеглете изходните кодове R и OpenBLAS(Open Optimized BLAS Library) в OpenBLAS. Във файловата директория изпълнете следните стъпки.
tar -zxvf OpenBLAS*
cd OpenBLAs*
make -j $nproc
sudo make install
export LD_LIBRARY_PATH=/opt/OpenBLAS/lib/
or
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS*
make -j $nproc
sudo make install
export LD_LIBRARY_PATH=/opt/OpenBLAS/lib/
Забележка: Това ще направи компилацията по-бърза, като използва всички функции на вашия процесор. За да разберете броя на ядрата, направете: nproc
.
Компилиране на Armadillo C++ с OpenBLAS
За тези, които използват C++ кодове в R с помощта на библиотеката Rcpp, настройка на Armadillo с Библиотеката OpenBLAS може да е от полза.
tar -xvf armadillo*
cd armadillo*
./configure -DCMAKE_PREFIX_PATH=/opt/OpenBLAS/lib/
cmake . -DCMAKE_PREFIX_PATH=/opt/OpenBLAS/lib/
make -j $nproc
sudo make install
Забележка: Допълнителни подробности относно компилирането на библиотеката Armadillo можете да намерите на https://gitlab.com/conradsnicta/armadillo-code.
Компилиране на R с OpenBLAS
След като компилирате OpenBLAS, изтеглете кода R. Не е необходимо да се компилира R, за да се използва OpenBLAS, но компилирането на езика може да донесе някои ползи, които може да са незначителни в зависимост от това какво се прави в R . По този начин изтеглете изходния код на езика R.
Забележка: В моята операционна система Arch Linux, OpenBLAS) беше инсталиран в директорията /opt
. Потърсете инсталационната директория на OpenBLAS във вашата GNU/Linux дистрибуция.
В директорията, където е изтеглен R, направете следното:
tar -zxvf R*
cd R-* && ./configure --enable-R-shlib --enable-threads=posix --with-blas="-lopenblas -L/opt/OpenBLAS/lib -I/opt/OpenBLAS/include -m64 -lpthread -lm"
make -j $nproc
sudo make install
Най-вероятно библиотеката OpenBLAS ще бъде обвързана с R. За да проверите, стартирайте в R кода sessionInfo()
. Трябва да се появи нещо като резултата по-долу:
Matrix products: default
BLAS/LAPACK: /opt/OpenBLAS/lib/libopenblas_haswellp-r0.3.6.dev.so
Ако свързването не се случи, следвайте стъпките, описани в кода по-долу.
Трябва да свържем R с файла libopenblas_*
, създаден в процеса на компилиране на библиотеката OpenBLAS. В моя случай файлът е ibopenblas_haswellp-r0.2.20.so. Потърсете това в /opt/OpenBLAS/lib
или в директорията, където OpenBLAS е инсталиран на вашата GNU/Linux система. Потърсете и файловата директория libRblas.so, намираща се в R strong> езикова инсталационна директория. В Arch тази директория е /usr/local/lib64/R/lib
.
cd /usr/local/lib64/R/lib
mv libRblas.so libRblas.so.keep
ln -s /opt/OpenBLAS/lib/libopenblas_haswellp-r0.2.20.so libRblas.so
Стартирайте раздел на език R и направете sessionInfo()
. Трябва да отбележите нещо като:
Matrix products: default
BLAS/LAPACK: /opt/OpenBLAS/lib/libopenblas_haswellp-r0.3.6.dev.so
За да използвате многонишкова обработка, направете export OPENBLAS_NUM_THREADS=1
, преди да започнете R раздел .
ЗАБЕЛЕЖКА: За процесорите на Intel, sudo cpupower frequency-set -g performance
, може да увеличи производителността. Прочетете повече на https://wiki.archlinux.org/index.php/CPU_frequency_scaling .
person
Pedro Rafael
schedule
25.02.2019