rxElemArg: Helper function for rxExec arguments
Description
Allows different argument values to be passed to different (named and unnamed) nodes or cores through the elipsis argument for rxExec. A vector or list of the argument values is used.
Usage
rxElemArg(x)
Arguments
x
The list or vector to be applied across the set of computations.
Details
This function is designed for use only within a call to rxExec. rxExec
allows for the processing of a user function on multiple nodes or cores. Arguments
for the user function can be passed directly through the call to rxExec. By default,
the same argument value will be passed to each of the nodes or cores. If instead,
a vector or list of argument values is wrapped in a call to rxElemArg
,
a distinct argument value will be passed to each node or core.
If timesToRun
is specified for rxExec, the length of the vector or
list within rxElemsArg
must have a length equalto timesToRun
. If timesToRun
is not specified and the elemType
is set to "cores"
, the length of the vector
or list will determine the timesToRun
.
If elemArgs
is used in addition to the rxElemArg
function, the length of both
lists/vectors must be the same.
Value
x is returned with attributes modified for use by rxExec.
Author(s)
Microsoft Corporation Microsoft Technical Support
See Also
Examples
## Not run:
# Setup a Spark compute context
myCluster <- RxSpark(nameNode = "my-name-service-server", port = 8020, wait = TRUE)
rxOptions( computeContext = myCluster )
# Create a function to be run on multiple cores
myFunc <- function( sampleSize = 100, seed = 5)
{
set.seed(seed)
mean( rnorm( sampleSize ))
}
# Use the same sampleSize for every computation, but a separate seed.
# The function will run 20 times, because that is the length of the
# vector in rxElemArg
mySeeds <- runif(20, min=1, max=1000)
rxExec( myFunc, 100, seed = rxElemArg( mySeeds ), elemType = "cores")
# Send different sample sizes and different seeds
# Both mySeeds and mySampleSizes must have the same length
mySampleSizes <- 2^c(1:20)
res <- rxExec(myFunc, rxElemArg( mySampleSizes ), seed = rxElemArg( mySeeds ),
elemType = "cores")
## End(Not run)