BUG FIX
NEW FEATURE
LdFlags()
to portably generate linker flags for libatomic
/pthread
. See README for details.NEW FEATURE
RcppThread::Rcerr
(#60, thanks to @appelmar).BUG FIX
BUG FIX
NEW FEATURES
Add R function detectCores()
(#48).
Add classes ProgressCounter
and ProgressBar
for tracking progress in long- running loops (#49).
Increased speed due to work-stealing and lock-free pops (#51, #52, #53).
Free-standing parallelFor()
and parallelForEach()
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()
, and wait()
, mirroring functionality from ThreadPool
. (#56)
Option to resize a thread pool (#56).
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
NEW FEATURES
New vignette available, see browseVignettes("RcppThread")
.
New functions parallelFor()
and ForEach()
allowing parallel for
loops with load balancing. Can also be called as method of a ThreadPool
.
Options to override std::thread
and std::cout
with RcppThread equivalents using preprocessor variables RCPPTHREAD_OVERRIDE_THREAD
and RCPPTHREAD_OVERRIDE_COUT
.
Several minor performance optimizations.
NEW FEATURE
ThreadPool::map()
that allows to map a function a list of items.NEW FEATURE
ThreadPool
can now be instantiated with zero threads in the pool. It will then do all work pushed to it in the main thread.NEW FEATURE
ThreadPool
has a new method wait()
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
DEPENDS
R (>= 3.3.0)
.BUG FIX
BUG FIX
Rcout
instance in header file (#9; couldn’t link shared library on r-hub, see discussion in #8)