ask_Y | R Documentation |
ask&tell component function to 'ask' objective function evaluation.
ask_Y( x, id = 0, X.tmp = "X.todo", Y.tmp = "Y.done", tmp_path = file.path(tempdir(), "..", "asktell.tmp"), sleep_step = 0.1, sleep_init = 0, timeout = 360000, trace = function(...) cat(paste0(..., "\n")), clean = TRUE, force_cleanup = FALSE )
x |
input values of objective function to compute |
id |
unique identifier for this asktell loop (default: "0") |
X.tmp |
temporary "X" values file (default: "X.todo") |
Y.tmp |
temporary "Y" values file (default: "Y.done") |
tmp_path |
temporary directory to store X.tmp & Y.tmp (default: 'tempdir()/../asktell.tmp') |
sleep_step |
delay between checking X.tmp and Y.tmp (default: 0.1 sec.) |
sleep_init |
initial delay before checking X.tmp and Y.tmp (default: 0 sec.) |
timeout |
maximum delay before breaking loop if X.tmp or Y.tmp doesn't appear (default: 36000 sec. = 10 min.) . |
trace |
function to display asktell loop status (default : 'cat') |
clean |
should we cleanup temporary files after reading ? (default: TRUE) |
force_cleanup |
should we cleanup temporary files before writing (possible conflicting asktell calls) ? (default: FALSE) |
'ask&tell' injection loop to call an external objective function within an inline algorithm (like optim(...)) Main idea: pass 'ask_Y' as objectve function argument of algorithm, which will wait until you call 'tell_Y' in another R process. In this secondary process, you can read what X is called using 'ask_X', and when you know what values returns from the external objective, just call 'tell_Y' to give it.
output value of objective function, as given by tell_Y() call in parallel session
Y. Richet, discussions with D. Sinoquet. Async IO principle was defined by G. Pujol.
## Not run: ### Assumes you can use two independent R sessions ## In main R session ask_Y(x=123) ## In another R session ask_X() # returns 123 tell_Y(y=456) ## Then ask_Y in main R session returns with value '456' ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.