BatchJobs (version 1.8)

batchReduce: Reduces via a binary function over a list adding jobs to a registry.

Description

Each jobs reduces a certain number of elements on one slave. You can then submit these jobs to the batch system.

Usage

batchReduce(reg, fun, xs, init, block.size, more.args = list())

Arguments

reg

[Registry] Empty Registry.

fun

[function(aggr, x, ...)] Function to reduce xs with.

xs

[vector] Vector to reduce.

init

[any] Initial object for reducing.

block.size

[integer(1)] Number of elements of xs reduced in one job.

more.args

[list] A list of other arguments passed to fun. Default is empty list.

Value

Vector of type integer with job ids.

Examples

Run this code
# NOT RUN {
# define function to reduce on slave, we want to sum a vector
f = function(aggr, x) aggr + x
reg = makeRegistry(id = "BatchJobsExample", file.dir = tempfile(), seed = 123)

# sum 20 numbers on each slave process, i.e. 5 jobs
batchReduce(reg, fun = f, 1:100, init = 0, block.size = 5)
submitJobs(reg)
waitForJobs(reg)

# now reduce one final time on master
reduceResults(reg, fun = function(aggr,job,res) f(aggr, res))
# }

Run the code above in your browser using DataCamp Workspace