Да, на многоядерном компьютере библиотеки Intel MKL, реализующие BLAS - и предоставляемые пакетом revolution-mkl
и включенные пакетом r-revolution-revobase
, будут работать параллельно для задач линейной алгебры, и вы должны увидеть отличие от базового варианта использования только пакетов libblas *.
Тем не менее, ваш пример выше не так важен, я часто делаю что-то вроде
mean(replicate(N, system.time( someStuffHere() )["elapsed"]), trim=0.05)
для вычисления усеченного среднего по ряду повторений.
Что еще более важно, обратите внимание, что ваш пример включает в себя ничьи ГСЧ в моменты времени, которые
i) дорогой и ii) инвариантный к используемому методу, поэтому вы должны сгенерировать его вне system.time()
.
Помимо MKL, revolution-r
также включает в себя некоторые из созданных REvolution пакетов из CRAN, которые можно использовать для параллельного выполнения.
(Отказ от ответственности: я помог REvo собрать все это для Ubuntu 9.10)