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

1
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 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))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.