2016-11-03: Issue was originally on 'availableCores("mc.cores") should returngetOptions("mc.cores") + 1L' but it recently turned into a more general discussion on how to maximize core utilization. See below.
future::availableCores("mc.cores") should really return getOptions("mc.cores") + 1L, because from help('options'):
mc.cores:
a integer giving the maximum allowed number of additional R processes allowed to be run in parallel to the current R process. Defaults to the setting of the environment variable MC_CORES if set. Most applications which use this assume a limit of 2 if it is unset.
Further clarification: Multicore processing is not supported, it would effectively correspond to options(mc.cores = 0) and in that case availableCores() returns 1.
2016-11-03: Issue was originally on 'availableCores("mc.cores") should returngetOptions("mc.cores") + 1L' but it recently turned into a more general discussion on how to maximize core utilization. See below.
future::availableCores("mc.cores")should really returngetOptions("mc.cores") + 1L, because fromhelp('options'):Further clarification: Multicore processing is not supported, it would effectively correspond to
options(mc.cores = 0)and in that caseavailableCores()returns 1.