Computational Setup Functions

Description

Functions used internally to setup the computational environment.

setupBackend sets up a foreach backend given some specifications.

setupSharedMemory checks if one can use the packages bigmemory and sychronicity to speed-up parallel computations when not keeping all the fits. When both these packages are available, only one result per host is written on disk, with its achieved deviance stored in shared memory, that is accessible to all cores on a same host. It returns TRUE if both packages are available and NMF option 'shared' is toggled on.

setupTempDirectory creates a temporary directory to store the best fits computed on each host. It ensures each worker process has access to it.

setupLibPaths add the path to the NMF package to each workers' libPaths.

setupRNG sets the RNG for use by the function nmf. It returns the old RNG as an rstream object or the result of set.seed if the RNG is not changed due to one of the following reason: - the settings are not compatible with rstream

Usage

setupBackend(spec, backend, optional = FALSE, verbose = FALSE)

setupSharedMemory(verbose)

setupTempDirectory(verbose)

setupLibPaths(pkg = "NMF", verbose = FALSE)

setupRNG(seed, n, verbose = FALSE)

Arguments

spec
target parallel specification: either TRUE or FALSE, or a single numeric value that specifies the number of cores to setup.
backend
value from argument .pbackend of nmf.
optional
a logical that indicates if the specification must be fully satisfied, throwing an error if it is not, or if one can switch back to sequential, only outputting a verbose message.
verbose
logical or integer level of verbosity for message outputs.
pkg
package name whose path should be exported the workers.
seed
initial RNG seed specification
n
number of RNG seeds to generate

Value

Returns FALSE if no foreach backend is to be used, NA if the currently registered backend is to be used, or, if this function call registered a new backend, the previously registered backend as a foreach object, so that it can be restored after the computation is over.