[Rcpp-devel] [ANN] RcppArmadillo 0.7.900.2.0
Dirk Eddelbuettel
edd at debian.org
Sun Jun 4 16:58:51 CEST 2017
A new RcppArmadillo release is on CRAN after quite some rounds of testing,
and prereleases announced here. It offers OpenMP "inside" Armadillo
operations which is pretty neat. See the included blog post below, the full
version with hyperlinks is at
http://dirk.eddelbuettel.com/blog/2017/06/04#rcpparmadillo_0.7.900.2.0
Thanks, Dirk
Sun, 04 Jun 2017
RcppArmadillo 0.7.900.2.0
armadillo image
The new RcppArmadillo release 0.7.900.2.0 is now on CRAN, and the Debian
package was just updated as well.
Armadillo is a powerful and expressive C++ template library for linear
algebra aiming towards a good balance between speed and ease of use with a
syntax deliberately close to a Matlab. RcppArmadillo integrates this
library with the R environment and language--and is widely used by
(currently) 350 other packages on CRAN---an increase of 32 since the last
CRAN release of 0.7.800.2.0 in April!
With the 7.900.* series of Armadillo, Conrad has started to more fully
utilize OpenMP (also see Wikipedia on OpenMP) for operations that can be
parallelized. To use this in your package you need to update its
src/Makevars{,.win} file similarly to what the skeleton default now uses
PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS)
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
and you may want to enable C++11 while you are at it---though this may
pose issues with older-than-ancient RHEL installations which are still
(way too) pervasive so we do not do it by default (yet).
Here, we once again rely on the build infrastructure automagically
provided by R itself: if and when OpenMP is available, R will use it via
$(SHLIB_OPENMP_CXXFLAGS) etc; see the fine WRE manual for details. That
said, some operating systems make this harder than other, and macOS
usually takes the crown. See for example this blog post by James for
surviving in that environment. I am a little short of details because on
Linux these things just work, and have for well over a decade. The
rcpp-devel mailing list will be the best place for questions.
Changes in this release relative to the previous CRAN release are as
follows:
Changes in RcppArmadillo version 0.7.900.2.0 (2017-06-02)
* Upgraded to Armadillo release 7.900.2 (Evil Banana Republic)
* Expanded clamp() to handle cubes
* Computationally expensive element-wise functions (such as
exp(), log(), cos(), etc) can now be automatically sped up via
OpenMP; this requires a C++11/C++14 compiler with OpenMP 3.0+
support for GCC and clang compilers
* One caveat: when using GCC, use of -march=native in conjunction
with -fopenmp may lead to speed regressions on recent
processors
* Added gcc 7 to support compiler check (James Balamuta in #128
addressing #126).
* A unit test helper function for rmultinom was corrected (#133).
* OpenMP support was added to the skeleton helper in inline.R
Courtesy of CRANberries, there is a diffstat report. More detailed
information is on the RcppArmadillo page. Questions, comments etc should
go to the rcpp-devel mailing list off the R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box
blog. Please report excessive re-aggregation in third-party for-profit
settings.
/code/rcpp | permanent link
[IMG]
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the Rcpp-devel
mailing list