bpok {BiocParallel} | R Documentation |
Identifies unsuccessful results returned from bplapply
,
bpmapply
, bpvec
, bpaggregate
or bpvectorize
.
bpok(x, type = bperrorTypes()) bperrorTypes()
x |
Results returned from a call to |
type |
A character(1) error type, from the vector returned by
|
bpok()
returns a logical()
vector: FALSE for any jobs
that resulted in an error. x
is the result list output by
bplapply
, bpmapply
, bpvec
, bpaggregate
or
bpvectorize
.
bperrorTypes()
returns a character() vector of possible error
types generated during parallel evaluation. Types are:
bperror
: Any of the following errors. This is the
default value for bpok()
.
remote_error
: An R error occurring while
evaluating FUN()
, e.g., taking the square root of a
character vector, sqrt("One")
.
unevaluated_error
: When *Param(stop.on.error =
TRUE)
(default), a remote error halts evaluation of other
tasks assigned to the same worker. The return value for these
unevaluated elements is an error of type
unevaluated_error
.
not_available_error
: Only produced by
DoparParam()
when a remote error occurs during evaluation
of an element of X
– DoparParam()
sets all values
after the remote error to this class.
worker_comm_error
: An error occurring while trying to
communicate with workers, e.g., when a worker quits unexpectedly.
when this type of error occurs, the length of the result may
differ from the length of the input X
.
Michel Lang, Martin Morgan and Valerie Obenchain
## ----------------------------------------------------------------------- ## Catch errors: ## ----------------------------------------------------------------------- ## By default 'stop.on.error' is TRUE in BiocParallelParam objects. If ## 'stop.on.error' is TRUE an ill-fated bplapply() simply stops, ## displaying the error message. param <- SnowParam(workers = 2, stop.on.error = TRUE) tryCatch({ bplapply(list(1, "two", 3), sqrt, BPPARAM = param) }, error=identity) ## If 'stop.on.error' is FALSE then the computation continues. Errors ## are signalled but the full evaluation can be retrieved param <- SnowParam(workers = 2, stop.on.error = FALSE) X <- list(1, "two", 3) result <- bptry(bplapply(X, sqrt, BPPARAM = param)) result ## Check for errors: fail <- !bpok(result) fail ## Access the traceback with attr(): tail(attr(result[[2]], "traceback"), 5) ## ----------------------------------------------------------------------- ## Resume calculations: ## ----------------------------------------------------------------------- ## The 'resume' mechanism is triggered by supplying a list of partial ## results as 'BPREDO'. Data elements that failed are rerun and merged ## with previous results. ## A call of sqrt() on the character "2" returns an error. Fix the input ## data by changing the character "2" to a numeric 2: X_mod <- list(1, 2, 3) bplapply(X_mod, sqrt, BPPARAM = param , BPREDO = result)