Skip to content

Evaluate an expression using a specific compute profile.

Usage

with_daemons(.compute, expr)

local_daemons(.compute, frame = parent.frame())

Arguments

.compute

[default NULL] character value for the compute profile to use (each has its own independent set of daemons), or NULL to use the 'default' profile.

expr

an expression to evaluate.

frame

[default parent.frame()] the frame (environment) to which the daemons compute profile is scoped.

Value

For with_daemons: the return value of expr.
For local_daemons: invisible NULL.

Details

Will error if the specified compute profile is not yet set up.

Examples

if (FALSE) { # interactive()
daemons(1, dispatcher = FALSE, .compute = "cpu")
daemons(1, dispatcher = FALSE, .compute = "gpu")

with_daemons("cpu", {
  s1 <- status()
  m1 <- mirai(Sys.getpid())
})

with_daemons("gpu", {
  s2 <- status()
  m2 <- mirai(Sys.getpid())
  m3 <- mirai(Sys.getpid(), .compute = "cpu")
  local_daemons("cpu")
  m4 <- mirai(Sys.getpid())
})

s1$daemons
m1[]

s2$daemons
m2[] # different to m1

m3[] # same as m1
m4[] # same as m1

with_daemons("cpu", daemons(0))
with_daemons("gpu", daemons(0))
}