NEW FEATURE
- Added
RMatrixclass (from the RcppParallel package) to allow for thread safe access to R matrices (#74, thanks @rorynolan).
BUG FIX
- Fixed compilation warning about R_NO_REMAP being defined multiple times (#77, thanks @tylermorganwall)
BUG FIX
- enable check for standalone libatomic on Windows (#72, thanks @kalibera)
NEW FEATURES
- allow custom message in
ProgessCounter(thanks @tylermorganwall)
BUG FIX
- Fixes static lifetime issue on MacM1.
BUG FIX
- Fixes order of headers in
detectCores.cpp.
REQUIREMENTS
- Remove
Systemrequirements: C++11
BUG FIX
- Fixes clang-14 warning about bitwise & with Boolean operands.
NEW FEATURE
- R function
LdFlags()to portably generate linker flags forlibatomic/pthread. See README for details.
NEW FEATURE
- safe printing to the R error stream with
RcppThread::Rcerr(#60, thanks to @appelmar).
BUG FIX
- adapt thread affinity to possibly restricted CPU set (#61).
BUG FIX
- safeguard construction of memory aligned objects.
NEW FEATURES
-
Add R function
detectCores()(#48). -
Add classes
ProgressCounterandProgressBarfor tracking progress in long- running loops (#49). -
Increased speed due to work-stealing and lock-free pops (#51, #52, #53).
-
Free-standing
parallelFor()andparallelForEach()functions now dispatch to a global thread pool that persists for the entire session. This significantly speeds up programs that repeatedly call these functions. (#54) -
New free-standing
push(),pushReturn()/async(), andwait(), mirroring functionality fromThreadPool. (#56) -
Option to resize a thread pool (#56).
- Release for JSS publication https://doi.org/10.18637/jss.v097.c01.
- Fixed warning for move constructor in ThreadPool (#35, #36, thanks @asardaes for noticing).
- Improved handling of exceptions thrown from threads.
-
Limit number of threads in unit tests.
-
Fixed typos in package vignette.
BUG FIXES
-
Fix portability issues related to
native_handle_type. -
Fix signed/unsigned comparison in
parallelFor(). -
Fix signed/unsigned warnings in unit tests.
DEPENDENCIES
- Rcpp is no longer a hard dependency, but only used for unit tests. This avoids unnecessary compilation time during package installation.
NEW FEATURES
-
New vignette available, see
browseVignettes("RcppThread"). -
New functions
parallelFor()andForEach()allowing parallelforloops with load balancing. Can also be called as method of aThreadPool. -
Options to override
std::threadandstd::coutwith RcppThread equivalents using preprocessor variablesRCPPTHREAD_OVERRIDE_THREADandRCPPTHREAD_OVERRIDE_COUT. -
Several minor performance optimizations.
NEW FEATURE
- New function
ThreadPool::map()that allows to map a function a list of items.
NEW FEATURE
- A
ThreadPoolcan now be instantiated with zero threads in the pool. It will then do all work pushed to it in the main thread.
NEW FEATURE
ThreadPoolhas a new methodwait()that waits for all jobs to be done without joining the threads. This way the thread pool can be re-used for different types of tasks that need to be run sequentially.
BUG FIX
- Don't check print output of multi-threaded code b/c of random results.
DEPENDS
- Now available for
R (>= 3.3.0).
BUG FIX
- Fixed a randomly failing unit test.
BUG FIX
- Default initialize static
Rcoutinstance in header file (#9; couldn't link shared library on r-hub, see discussion in #8)
- Initial release.