From 18db512ba4e124bc2677c94d6fd046e4cfb57566 Mon Sep 17 00:00:00 2001
From: weshinsley
task_log_show(id, outer = TRUE)
-#> Running task 7258d884a2bd8c0d7a2e603775f84498
-#> Finished task 7258d884a2bd8c0d7a2e603775f84498
The logs returned by task_log_show(id, outer = FALSE)
are the logs generated by the statement containing
Rscript -e
.
Both of our parallel tasks are to sleep for 5 seconds. We use
task_info()
to report how long it took for those two runs
to execute; if they ran one-by-one, we’d expect around 10 seconds, but
@@ -527,7 +527,7 @@
You can use this value to start the simulation by running:
id <- task_create_expr(random_walk(x, 10))
-#> ✔ Submitted task '9d7c0d1d7a069ebae36d57611ec7d75d' using 'example'
Here the If you pass in an expression that references a value that does not
exist locally, you will get a (hopefully) informative error message when
the task is created: Having decided that this is a silly idea, we can try and cancel
it: You can cancel a task that is submitted (waiting to be picked up by a
cluster) or running (though not all drivers will support this; we need
@@ -605,66 +605,66 @@ Here we ran a random walk and it got to -2.901346, which is clearly
+#> [1] 0.34019326 -0.89219208 -0.63971513 0.04713306 0.27513330 0.85624003
+#> [7] 0.56796129 1.73203377 1.30790812 1.08471238
+ Here we ran a random walk and it got to 1.0847124, which is clearly
not what we were expecting. Let’s try it again: Running x
value has come from the environment where the
expression passed into task_create_expr()
was found
(specifically, we use the rlang
@@ -537,8 +537,8 @@ Understanding where variables c
task_wait(id)
#> [1] TRUE
task_result(id)
-#> [1] 98.37602 98.52197 98.46212 97.42257 98.29856 98.37293 98.77521 97.99998
-#> [9] 98.36804 97.27222
+#> [1] 99.33438 100.21033 99.81721 100.41396 98.76648 99.54547 100.44196
+#> [8] 101.00627 101.94912 101.82666
Cancelling tasks
id <- task_create_expr(Sys.sleep(10))
-#> ✔ Submitted task '67be0d55e57cf7937a21a90e3939ac18' using 'example'
task_cancel(id)
-#> ✖ Did not manage to cancel '67be0d55e57cf7937a21a90e3939ac18' which had status 'submitted'
+#> ✖ Did not manage to cancel 'f4c5670610e9f54b296898b105dc8026' which had status 'submitted'
#> [1] FALSE
task_status(id)
#> [1] "submitted"
task_info(id)
#>
-#> ── task 67be0d55e57cf7937a21a90e3939ac18 (submitted) ───────────────────────────
+#> ── task f4c5670610e9f54b296898b105dc8026 (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: Sys.sleep(10)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:25.764862 (moments ago)
-#> ! Not started yet (waiting for 136ms)
+#> ℹ Created at 2024-07-09 12:34:49.939109 (moments ago)
+#> ! Not started yet (waiting for 146ms)
#> ! Not finished yet (waiting to start)
Retrying tasks
id1 <- task_create_expr(random_walk(0, 10))
-#> ✔ Submitted task '13be97a97fd549905d3f2811fc20f65a' using 'example'
+#> ✔ Submitted task 'f5e6ca3b3950075bb26ea31fcee7bd3f' using 'example'
task_wait(id1)
#> [1] TRUE
task_result(id1)
-#> [1] -0.3986573 -0.4340166 -0.2146714 -0.1516340 0.4366375 1.2140460
-#> [7] 0.5265102 -1.9486690 -2.7728390 -2.9013460
id2 <- task_retry(id1)
-#> ✔ Submitted task 'b6116be65809730c7c78d5fbe582ebc2' using 'example'
task_retry()
creates a new task, with a
-new id b6116b...
compared with 13be97...
.9f20f5...
compared with f5e6ca...
.
Once this task has finished, we get a different result:
task_wait(id2)
#> [1] TRUE
task_result(id2)
-#> [1] -0.1522185 -1.4040227 -1.6425993 -1.2952316 -1.1159929 -0.2669637
-#> [7] 0.4881713 2.3020581 3.5820529 1.9538452
Much better!
We get a hint that this is a retried task from the
task_info()
task_info(id2)
#>
-#> ── task b6116be65809730c7c78d5fbe582ebc2 (success) ─────────────────────────────
+#> ── task 9f20f5b5410549c5d676da724aeb5637 (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: random_walk(0, 10)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:25.986769 (less than a minute ago)
-#> ℹ Started at 2024-07-09 09:27:37.292646 (moments ago; waited 11.3s)
-#> ℹ Finished at 2024-07-09 09:27:37.54494 (moments ago; ran for 253ms)
+#> ℹ Created at 2024-07-09 12:34:50.15823 (less than a minute ago)
+#> ℹ Started at 2024-07-09 12:35:01.53388 (moments ago; waited 11.4s)
+#> ℹ Finished at 2024-07-09 12:35:01.797743 (moments ago; ran for 264ms)
#> ℹ Last of a chain of a task retried 1 time
You can see the full chain of retries here:
task_info(id2)$retry_chain
-#> [1] "13be97a97fd549905d3f2811fc20f65a" "b6116be65809730c7c78d5fbe582ebc2"
Once a task has been retried it affects how you interact with the previous ids; by default they follow through to the most recent element in the chain:
task_result(id1)
-#> [1] -0.1522185 -1.4040227 -1.6425993 -1.2952316 -1.1159929 -0.2669637
-#> [7] 0.4881713 2.3020581 3.5820529 1.9538452
+#> [1] 2.491310 3.359726 2.579322 3.993571 4.249515 3.380207 4.212749 4.169067
+#> [9] 4.497762 5.743543
task_result(id2)
-#> [1] -0.1522185 -1.4040227 -1.6425993 -1.2952316 -1.1159929 -0.2669637
-#> [7] 0.4881713 2.3020581 3.5820529 1.9538452
You can get the original result back by passing the argument
follow = FALSE
:
task_result(id1, follow = FALSE)
-#> [1] -0.3986573 -0.4340166 -0.2146714 -0.1516340 0.4366375 1.2140460
-#> [7] 0.5265102 -1.9486690 -2.7728390 -2.9013460
+#> [1] 0.34019326 -0.89219208 -0.63971513 0.04713306 0.27513330 0.85624003
+#> [7] 0.56796129 1.73203377 1.30790812 1.08471238
task_result(id2)
-#> [1] -0.1522185 -1.4040227 -1.6425993 -1.2952316 -1.1159929 -0.2669637
-#> [7] 0.4881713 2.3020581 3.5820529 1.9538452
Only tasks that have been completed ( By specifying the In our testing though, Here we reserve 2 cores, and then map 3 processes onto the cluster,
each of which will take 2 seconds. It takes more than 4 seconds in all,
because we can’t run the 3 processes at the same time; one of them has
@@ -315,7 +315,7 @@ You may want to set the environment variables so that dust and other
packages use a different number of cores. For example, perhaps you have
diff --git a/articles/stan.html b/articles/stan.html
index d83b89ee..8c998e42 100644
--- a/articles/stan.html
+++ b/articles/stan.html
@@ -20,7 +20,7 @@
hipercow
- 1.0.30
+ 1.0.31
This task will fail, and In this case the task log does not have anything very interesting in
it. Here’s another example, something that might work perfectly well on
your machine, but fails on the cluster: Here is the error, which is a bit less informative this time: The real content of the error message is present in the warning! You
can also get the warnings with FitzJohn R, Hinsley W, Liétar P (2024).
hipercow: High Performance Computing.
-R package version 1.0.30, https://mrc-ide.github.io/hipercow, https://github.com/mrc-ide/hipercow.
+R package version 1.0.31, https://mrc-ide.github.io/hipercow, https://github.com/mrc-ide/hipercow.
success
,
failure
or cancelled
) can be retried, and
doing so adds a new task to the end of the chain; there is no
diff --git a/articles/index.html b/articles/index.html
index b082bb47..9b58ce97 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Task-level parallelism
hipercow_init(".", driver = "example")
-#> ✔ Initialised hipercow at '.' (/tmp/RtmpQCVt3J/file2af72623d5b9)
+#> ✔ Initialised hipercow at '.' (/tmp/RtmplyOmsl/file2ae44b409f23)
#> ✔ Configured hipercow to use 'example'
Using the Parallel package parallel::clusterApply(NULL, 1:2, function(x) Sys.sleep(5)),
parallel = hipercow_parallel("parallel"),
resources = resources)
-#> ✔ Submitted task '4c7aa3ffdceb6de0c4ce7ff8ef68a376' using 'example'
+#> ✔ Submitted task 'fad9f65e071b29e7da8753419d1f4e38' using 'example'
task_wait(id)
#> [1] TRUE
task_info(id)
#>
-#> ── task 4c7aa3ffdceb6de0c4ce7ff8ef68a376 (success) ─────────────────────────────
+#> ── task fad9f65e071b29e7da8753419d1f4e38 (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: parallel::clusterApply(NULL, 1:2, function(x) Sys.sleep(5))
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:46.131319 (moments ago)
-#> ℹ Started at 2024-07-09 09:27:46.428905 (moments ago; waited 298ms)
-#> ℹ Finished at 2024-07-09 09:27:52.067777 (moments ago; ran for 5.6s)
parallel
argument here, hipercow will
start up a “cluster” within your job for you, so that the
parallel::clusterApply
command runs across two
@@ -230,21 +230,21 @@ Using the
future
package furrr::future_map(1:2, ~Sys.sleep(5)),
parallel = hipercow_parallel("future"),
resources = resources)
-#> ✔ Submitted task '8d7d2a5ae2bc04ce9a076d57cc30f396' using 'example'
+#> ✔ Submitted task '7a7f0eddc7c546337dcadae0d37c0bf9' using 'example'
task_wait(id)
#> [1] TRUE
task_info(id)
#>
-#> ── task 8d7d2a5ae2bc04ce9a076d57cc30f396 (success) ─────────────────────────────
+#> ── task 7a7f0eddc7c546337dcadae0d37c0bf9 (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: furrr::future_map(1:2, ~ Sys.sleep(5))
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:52.327171 (moments ago)
-#> ℹ Started at 2024-07-09 09:27:52.616622 (moments ago; waited 290ms)
-#> ℹ Finished at 2024-07-09 09:27:58.845886 (moments ago; ran for 6.2s)
+#> ℹ Created at 2024-07-09 12:35:16.127893 (moments ago)
+#> ℹ Started at 2024-07-09 12:35:16.386662 (moments ago; waited 259ms)
+#> ℹ Finished at 2024-07-09 12:35:22.561381 (moments ago; ran for 6.2s)
furrr
has much higher overheads
than than parallel
. In the test above, future
usually takes close to 8 seconds, whereas parallel
above
@@ -275,21 +275,21 @@ Specifying more work than the
parallel::clusterApply(NULL, 1:3, function(x) Sys.sleep(2)),
parallel = hipercow_parallel("parallel"),
resources = resources)
-#> ✔ Submitted task '53e308b343ca1f324921de685d98b26a' using 'example'
+#> ✔ Submitted task '378dfaa224ee863bc62cc1a45bda8dbd' using 'example'
task_wait(id)
#> [1] TRUE
task_info(id)
#>
-#> ── task 53e308b343ca1f324921de685d98b26a (success) ─────────────────────────────
+#> ── task 378dfaa224ee863bc62cc1a45bda8dbd (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: parallel::clusterApply(NULL, 1:3, function(x) Sys.sleep(2))
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:59.475479 (moments ago)
-#> ℹ Started at 2024-07-09 09:27:59.678646 (moments ago; waited 204ms)
-#> ℹ Finished at 2024-07-09 09:28:04.359855 (moments ago; ran for 4.7s)
+#> ℹ Created at 2024-07-09 12:35:23.274287 (moments ago)
+#> ℹ Started at 2024-07-09 12:35:23.498823 (moments ago; waited 225ms)
+#> ℹ Finished at 2024-07-09 12:35:28.109936 (moments ago; ran for 4.6s)
How many cores should each proce
},
parallel = hipercow_parallel("parallel"),
resources = resources)
-#> ✔ Submitted task '5cfd41c8566da67608ef8a7ed49f202b' using 'example'
+#> ✔ Submitted task '400c5c49c7fd406a422b8ee8898ed48a' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
@@ -349,7 +349,7 @@
Multiple cores per process },
parallel = hipercow_parallel("parallel", cores_per_process = 2),
resources = resources)
-#> ✔ Submitted task 'ad81e5423635d0ecef0c15dcfa0ea945' using 'example'
+#> ✔ Submitted task '84f2f62ed67dedcab897320a58950a4b' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
@@ -383,7 +383,7 @@
Other ways of using cores dust::dust_openmp_threads())
},
resources = resources)
-#> ✔ Submitted task 'ef25a69a4ef5ab8bc7f57df19b101d6c' using 'example'
+#> ✔ Submitted task '11409608f15f9b2ac5a85034bbfb217d' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
@@ -407,16 +407,16 @@
Other ways of using cores check = FALSE,
time_unit = "s")
}, resources = resources)
-#> ✔ Submitted task '1fe5da1c117c52c3cb16a5fd1834bead' using 'example'
+#> ✔ Submitted task 'e176834040d34ec11fab1222b164512b' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
#> # A tibble: 3 × 13
#> expression min median `itr/sec` mem_alloc `gc/sec` n_itr n_gc total_time
#> <bnch_xpr> <dbl> <dbl> <dbl> <bnch_byt> <dbl> <int> <dbl> <dbl>
-#> 1 <language> 1.08 1.08 0.927 256003144 0.927 1 1 1.08
-#> 2 <language> 0.518 0.518 1.93 256000048 1.93 1 1 0.518
-#> 3 <language> 0.356 0.358 2.79 256000048 2.79 2 2 0.716
+#> 1 <language> 1.14 1.14 0.874 256003144 0.874 1 1 1.14
+#> 2 <language> 0.564 0.564 1.77 256000048 1.77 1 1 0.564
+#> 3 <language> 0.389 0.392 2.55 256000048 2.55 2 2 0.783
#> # ℹ 4 more variables: result <list>, memory <list>, time <list>, gc <list>
Caused by an error in your code
id <- task_create_expr(mysimulation(10))
-#> ✔ Submitted task '4fc543d92f789ad29a800da7c40ca8f6' using 'example'
task_status()
will report
failure
@@ -116,13 +116,13 @@
Caused by an error in your code
task_log_show(id)
#>
-#> ── hipercow 1.0.30 running at '/tmp/RtmpgD4kgg/file2d505b127f62' ───────────────
+#> ── hipercow 1.0.31 running at '/tmp/RtmpdNA2k2/file2d3c7d7c69be' ───────────────
#> ℹ library paths:
#> • /home/runner/work/_temp/Library
#> • /opt/R/4.4.1/lib/R/site-library
#> • /opt/R/4.4.1/lib/R/library
-#> ℹ id: 4fc543d92f789ad29a800da7c40ca8f6
-#> ℹ starting at: 2024-07-09 09:28:20.437119
+#> ℹ id: 4f23f1f380b3fea5f33cf56a1ba177da
+#> ℹ starting at: 2024-07-09 12:35:44.020599
#> ℹ Task type: expression
#> • Expression: mysimulation(10)
#> • Locals: (none)
@@ -133,14 +133,14 @@
Caused by an error in your code#> ───────────────────────────────────────────────────────────────── task logs ↑ ──
#> ✖ status: failure
#> ✖ Error: could not find function "mysimulation"
-#> ℹ finishing at: 2024-07-09 09:28:20.437119 (elapsed: 0.298 secs)
id <- task_create_expr(read.csv("c:/myfile.csv"))
-#> ✔ Submitted task '6399fedb9f4b81c466f695f8482238f0' using 'example'
task_result(id)
@@ -152,13 +152,13 @@
Caused by an error in your code
task_log_show(id)
#>
-#> ── hipercow 1.0.30 running at '/tmp/RtmpgD4kgg/file2d505b127f62' ───────────────
+#> ── hipercow 1.0.31 running at '/tmp/RtmpdNA2k2/file2d3c7d7c69be' ───────────────
#> ℹ library paths:
#> • /home/runner/work/_temp/Library
#> • /opt/R/4.4.1/lib/R/site-library
#> • /opt/R/4.4.1/lib/R/library
-#> ℹ id: 6399fedb9f4b81c466f695f8482238f0
-#> ℹ starting at: 2024-07-09 09:28:21.752313
+#> ℹ id: 8a7b28a82e530bc86bec01f24269c4fc
+#> ℹ starting at: 2024-07-09 12:35:45.334921
#> ℹ Task type: expression
#> • Expression: read.csv("c:/myfile.csv")
#> • Locals: (none)
@@ -171,7 +171,7 @@
Caused by an error in your code#> ✖ Error: cannot open the connection
#> ! 1 warning found:
#> • cannot open file 'c:/myfile.csv': No such file or directory
-#> ℹ finishing at: 2024-07-09 09:28:21.752313 (elapsed: 0.3191 secs)
@@ -219,7 +219,7 @@
Caused by an error during startuphipercow_environment_create(sources = "mycode.R")
#> ✔ Created environment 'default'
id <- task_create_expr(times2(10))
-#> ✔ Submitted task '08d7cd9a3799052f0d0460590ed9c1fb' using 'example'
+#> ✔ Submitted task 'c86bf38676ef7f2cdfe4250bd3c6a12d' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
@@ -235,7 +235,7 @@
Caused by an error during startup
id <- task_create_expr(times2(10))
-#> ✔ Submitted task 'c9c7ccb95a4215d02e7570d6f64fa12b' using 'example'
+#> ✔ Submitted task '781ed37086dfebec47e30d1a21f8c66c' using 'example'
task_wait(id)
#> [1] FALSE
task_status(id)
@@ -246,13 +246,13 @@
Caused by an error during startup
task_log_show(id)
#>
-#> ── hipercow 1.0.30 running at '/tmp/RtmpgD4kgg/file2d505b127f62' ───────────────
+#> ── hipercow 1.0.31 running at '/tmp/RtmpdNA2k2/file2d3c7d7c69be' ───────────────
#> ℹ library paths:
#> • /home/runner/work/_temp/Library
#> • /opt/R/4.4.1/lib/R/site-library
#> • /opt/R/4.4.1/lib/R/library
-#> ℹ id: c9c7ccb95a4215d02e7570d6f64fa12b
-#> ℹ starting at: 2024-07-09 09:28:24.469092
+#> ℹ id: 781ed37086dfebec47e30d1a21f8c66c
+#> ℹ starting at: 2024-07-09 12:35:48.111415
#> ℹ Task type: expression
#> • Expression: times2(10)
#> • Locals: (none)
@@ -264,7 +264,7 @@
Caused by an error during startup#> • globals: (none)
#> ✖ status: failure
#> ✖ Error: 5:0: unexpected end of input 3: } 4: newfun <- function(x) ^
-#> ℹ finishing at: 2024-07-09 09:28:24.469092 (elapsed: 0.3392 secs)
My task got stuck at
submitted
diff --git a/articles/windows.html b/articles/windows.html
index 0fc3624b..571d0ee9 100644
--- a/articles/windows.html
+++ b/articles/windows.html
@@ -20,7 +20,7 @@
hipercow
- 1.0.30
+ 1.0.31
Citation
@Manual{,
title = {hipercow: High Performance Computing},
author = {Rich FitzJohn and Wes Hinsley and Paul Liétar},
year = {2024},
- note = {R package version 1.0.30, https://mrc-ide.github.io/hipercow},
+ note = {R package version 1.0.31, https://mrc-ide.github.io/hipercow},
url = {https://github.com/mrc-ide/hipercow},
}
Examples
# Two task that were created separately:
id1 <- task_create_expr(sqrt(1))
-#> ✔ Submitted task 'b781888f96c2a74c311e4ff0e981db47' using 'example'
+#> ✔ Submitted task '3b35acd2613fac5cf368cb8abf1e3c44' using 'example'
id2 <- task_create_expr(sqrt(2))
-#> ✔ Submitted task 'bf5ac6df06f54923d1cc1999c9248944' using 'example'
+#> ✔ Submitted task 'cf4d339e09644c78fed638d3619661ba' using 'example'
# Combine these tasks together in a bundle:
bundle <- hipercow_bundle_create(c(id1, id2))
diff --git a/reference/hipercow_bundle_delete.html b/reference/hipercow_bundle_delete.html
index ba0d0f0f..ce735857 100644
--- a/reference/hipercow_bundle_delete.html
+++ b/reference/hipercow_bundle_delete.html
@@ -9,7 +9,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> ✔ Created bundle 'raging_llama' with 5 tasks
hipercow_bundle_list()
#> name time
-#> 1 raging_llama 2024-07-09 09:24:18
+#> 1 raging_llama 2024-07-09 12:31:46
# Retaining the ids, delete bundle
ids <- bundle$ids
diff --git a/reference/hipercow_bundle_list.html b/reference/hipercow_bundle_list.html
index 56bcc242..4fd7d3fc 100644
--- a/reference/hipercow_bundle_list.html
+++ b/reference/hipercow_bundle_list.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> ✔ Created bundle 'congenial_dassierat' with 5 tasks
hipercow_bundle_list()
#> name time
-#> 1 congenial_dassierat 2024-07-09 09:24:18
+#> 1 congenial_dassierat 2024-07-09 12:31:46
cleanup()
#> ℹ Cleaning up example
diff --git a/reference/hipercow_bundle_load.html b/reference/hipercow_bundle_load.html
index f792e31c..99a17a47 100644
--- a/reference/hipercow_bundle_load.html
+++ b/reference/hipercow_bundle_load.html
@@ -11,7 +11,7 @@
hipercow
- 1.0.30
+ 1.0.31
Exampleshipercow_bundle_log_value(bundle)
#> [[1]]
#> [1] ""
-#> [2] "── hipercow 1.0.30 running at '/tmp/RtmpPDWn01/file16c33a0bb594' ───────────────"
+#> [2] "── hipercow 1.0.31 running at '/tmp/RtmpsHptyo/file16b41de2f779' ───────────────"
#> [3] "ℹ library paths:"
#> [4] "• /home/runner/work/_temp/Library"
#> [5] "• /opt/R/4.4.1/lib/R/site-library"
#> [6] "• /opt/R/4.4.1/lib/R/library"
-#> [7] "ℹ id: 5882291311135922bf51acba87866e01"
-#> [8] "ℹ starting at: 2024-07-09 09:24:19.68379"
+#> [7] "ℹ id: 207d7ef75f8617e6d1f7efb58816d9c7"
+#> [8] "ℹ starting at: 2024-07-09 12:31:47.388141"
#> [9] "ℹ Task type: expression"
#> [10] "• Expression: sqrt(x)"
#> [11] "• Locals: x"
@@ -120,17 +120,17 @@
Examples#> [15] ""
#> [16] "───────────────────────────────────────────────────────────────── task logs ↑ ──"
#> [17] "✔ status: success"
-#> [18] "ℹ finishing at: 2024-07-09 09:24:19.68379 (elapsed: 0.2154 secs)"
+#> [18] "ℹ finishing at: 2024-07-09 12:31:47.388141 (elapsed: 0.2144 secs)"
#>
#> [[2]]
#> [1] ""
-#> [2] "── hipercow 1.0.30 running at '/tmp/RtmpPDWn01/file16c33a0bb594' ───────────────"
+#> [2] "── hipercow 1.0.31 running at '/tmp/RtmpsHptyo/file16b41de2f779' ───────────────"
#> [3] "ℹ library paths:"
#> [4] "• /home/runner/work/_temp/Library"
#> [5] "• /opt/R/4.4.1/lib/R/site-library"
#> [6] "• /opt/R/4.4.1/lib/R/library"
-#> [7] "ℹ id: e90a865d509f86080584278b5c965836"
-#> [8] "ℹ starting at: 2024-07-09 09:24:20.114264"
+#> [7] "ℹ id: 867c5de5f474f8fac2706b468163fe78"
+#> [8] "ℹ starting at: 2024-07-09 12:31:47.808087"
#> [9] "ℹ Task type: expression"
#> [10] "• Expression: sqrt(x)"
#> [11] "• Locals: x"
@@ -140,7 +140,7 @@
Examples#> [15] ""
#> [16] "───────────────────────────────────────────────────────────────── task logs ↑ ──"
#> [17] "✔ status: success"
-#> [18] "ℹ finishing at: 2024-07-09 09:24:20.114264 (elapsed: 0.2171 secs)"
+#> [18] "ℹ finishing at: 2024-07-09 12:31:47.808087 (elapsed: 0.216 secs)"
#>
cleanup()
diff --git a/reference/hipercow_bundle_result.html b/reference/hipercow_bundle_result.html
index 850250ec..74b119a9 100644
--- a/reference/hipercow_bundle_result.html
+++ b/reference/hipercow_bundle_result.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> [1] TRUE
hipercow_bundle_result(bundle, follow = FALSE)
#> [[1]]
-#> [1] 0.1407299
+#> [1] 1.227301
#>
#> [[2]]
-#> [1] 2.159851
+#> [1] 2.813996
#>
#> [[3]]
-#> [1] 4.095248
+#> [1] 2.796576
#>
#> [[4]]
-#> [1] 3.908672
+#> [1] 4.342715
#>
#> [[5]]
-#> [1] 5.732849
+#> [1] 5.598651
#>
hipercow_bundle_result(bundle, follow = TRUE)
#> [[1]]
-#> [1] 1.634138
+#> [1] -0.4127928
#>
#> [[2]]
-#> [1] 1.990143
+#> [1] 1.506231
#>
#> [[3]]
-#> [1] 0.8668314
+#> [1] 2.784707
#>
#> [[4]]
-#> [1] 3.557765
+#> [1] 4.838029
#>
#> [[5]]
-#> [1] 4.038691
+#> [1] 6.423736
#>
cleanup()
diff --git a/reference/hipercow_bundle_status.html b/reference/hipercow_bundle_status.html
index 329e9a6c..dd6861e6 100644
--- a/reference/hipercow_bundle_status.html
+++ b/reference/hipercow_bundle_status.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> ℹ This example uses a special helper
hipercow_configuration()
#>
-#> ── hipercow root at /tmp/RtmpPDWn01/file16c37bbc85b5 ───────────────────────────
+#> ── hipercow root at /tmp/RtmpsHptyo/file16b4702f385 ────────────────────────────
#> ✔ Working directory '.' within root
-#> ℹ R version 4.4.1 on Linux (runner@fv-az1116-60)
+#> ℹ R version 4.4.1 on Linux (runner@fv-az530-21)
#>
#> ── Packages ──
#>
-#> ℹ This is hipercow 1.0.30
+#> ℹ This is hipercow 1.0.31
#> ℹ Installed: conan2 (1.9.101), logwatch (0.1.1)
#> ✖ hipercow.windows is not installed
#>
@@ -133,13 +133,13 @@
Examples#> ✔ Created environment 'other'
hipercow_configuration()
#>
-#> ── hipercow root at /tmp/RtmpPDWn01/file16c37bbc85b5 ───────────────────────────
+#> ── hipercow root at /tmp/RtmpsHptyo/file16b4702f385 ────────────────────────────
#> ✔ Working directory '.' within root
-#> ℹ R version 4.4.1 on Linux (runner@fv-az1116-60)
+#> ℹ R version 4.4.1 on Linux (runner@fv-az530-21)
#>
#> ── Packages ──
#>
-#> ℹ This is hipercow 1.0.30
+#> ℹ This is hipercow 1.0.31
#> ℹ Installed: conan2 (1.9.101), logwatch (0.1.1)
#> ✖ hipercow.windows is not installed
#>
diff --git a/reference/hipercow_configure.html b/reference/hipercow_configure.html
index 879ee968..95943dc0 100644
--- a/reference/hipercow_configure.html
+++ b/reference/hipercow_configure.html
@@ -9,7 +9,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples
# You can now use this function in your tasks:
id <- task_create_expr(simulation(5))
-#> ✔ Submitted task '00d7890dca81bb620292a647422bb82f' using 'example'
+#> ✔ Submitted task 'b9e9c865f52b76c749c5a38a871fe14c' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
-#> [1] 0.5825822 1.1452962 1.6118151 3.1094221 4.8720414
+#> [1] 2.101372 3.116836 3.834924 4.547973 5.395160
cleanup()
#> ℹ Cleaning up example
diff --git a/reference/hipercow_envvars.html b/reference/hipercow_envvars.html
index ef6e648c..a55fd7aa 100644
--- a/reference/hipercow_envvars.html
+++ b/reference/hipercow_envvars.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examplescleanup <- hipercow_example_helper()
#> ℹ This example uses a special helper
hipercow_hello()
-#> ✔ Submitted task '243dce0fe3d2f7c414b58fced43332b4' using 'example'
-#> ✔ Successfully ran test task '243dce0fe3d2f7c414b58fced43332b4'
+#> ✔ Submitted task '23ddf3763ae252970b61d60a2d2e62e0' using 'example'
+#> ✔ Successfully ran test task '23ddf3763ae252970b61d60a2d2e62e0'
cleanup()
#> ℹ Cleaning up example
diff --git a/reference/hipercow_init.html b/reference/hipercow_init.html
index e87f17e8..df246319 100644
--- a/reference/hipercow_init.html
+++ b/reference/hipercow_init.html
@@ -17,7 +17,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples# Create an empty root
path <- withr::local_tempfile()
hipercow_init(path)
-#> ✔ Initialised hipercow at '/tmp/RtmpPDWn01/file16c36fb79331'
+#> ✔ Initialised hipercow at '/tmp/RtmpsHptyo/file16b43b44b04e'
#> ℹ Next, call 'hipercow_configure()'
diff --git a/reference/hipercow_parallel.html b/reference/hipercow_parallel.html
index 1650614b..193e7dfe 100644
--- a/reference/hipercow_parallel.html
+++ b/reference/hipercow_parallel.html
@@ -13,7 +13,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> Bootstrapping from: /home/runner/work/_temp/Library
#> Installing into library: hipercow/lib
#> Using method pkgdepends
-#> Running in path: /tmp/RtmpPDWn01/file16c31b561d9c
+#> Running in path: /tmp/RtmpsHptyo/file16b462025976
#> Library paths:
-#> - /tmp/RtmpPDWn01/file16c31b561d9c/hipercow/lib
+#> - /tmp/RtmpsHptyo/file16b462025976/hipercow/lib
#> - /opt/R/4.4.1/lib/R/site-library
#> - /opt/R/4.4.1/lib/R/library
-#> id: 20240709092434
+#> id: 20240709123202
#> Logs from pkgdepends follow:
#>
#> -------------------------------------------------------------------------------
@@ -254,8 +254,8 @@
Examples#> + yaml 2.3.9 [bld][cmp][dl]
#> ℹ Getting 6 pkgs with unknown sizes
#> ✔ Got highr 0.11 (source) (13.85 kB)
-#> ✔ Got evaluate 0.24.0 (source) (28.68 kB)
#> ✔ Got yaml 2.3.9 (source) (94.47 kB)
+#> ✔ Got evaluate 0.24.0 (source) (28.68 kB)
#> ✔ Got xfun 0.45 (source) (158.13 kB)
#> ✔ Got knitr 1.48 (source) (583.01 kB)
#> ✔ Got data.table 1.15.4 (source) (5.39 MB)
@@ -264,27 +264,27 @@
Examples#> ℹ Building yaml 2.3.9
#> ℹ Building data.table 1.15.4
#> ✔ Built evaluate 0.24.0 (1.9s)
-#> ✔ Installed evaluate 0.24.0 (38ms)
-#> ✔ Built xfun 0.45 (4.9s)
-#> ✔ Installed xfun 0.45 (23ms)
+#> ✔ Installed evaluate 0.24.0 (37ms)
+#> ✔ Built xfun 0.45 (4.5s)
+#> ✔ Installed xfun 0.45 (30ms)
#> ℹ Building highr 0.11
-#> ✔ Built yaml 2.3.9 (6.1s)
-#> ✔ Installed yaml 2.3.9 (74ms)
-#> ✔ Built highr 0.11 (1.4s)
-#> ✔ Installed highr 0.11 (1s)
+#> ✔ Built highr 0.11 (1.3s)
+#> ✔ Installed highr 0.11 (71ms)
+#> ✔ Built yaml 2.3.9 (6.4s)
+#> ✔ Installed yaml 2.3.9 (1s)
#> ℹ Building knitr 1.48
-#> ✔ Built knitr 1.48 (5.3s)
-#> ✔ Installed knitr 1.48 (1.1s)
-#> ✔ Built data.table 1.15.4 (20.7s)
+#> ✔ Built knitr 1.48 (5s)
+#> ✔ Installed knitr 1.48 (45ms)
+#> ✔ Built data.table 1.15.4 (19.9s)
#> ✔ Installed data.table 1.15.4 (52ms)
-#> ✔ Summary: 6 new in 42.6s
+#> ✔ Summary: 6 new in 40.3s
#>
#> -------------------------------------------------------------------------------
-#> Writing library description to 'hipercow/lib/.conan/20240709092434'
+#> Writing library description to 'hipercow/lib/.conan/20240709123202'
#> Done!
hipercow_provision_list()
#> ℹ 1 conan installation recorded
-#> • 1: 20240709092434 (moments ago) [0]
+#> • 1: 20240709123202 (moments ago) [0]
cleanup()
#> ℹ Cleaning up example
diff --git a/reference/hipercow_provision_compare.html b/reference/hipercow_provision_compare.html
index 2eb2ee2e..4e773f07 100644
--- a/reference/hipercow_provision_compare.html
+++ b/reference/hipercow_provision_compare.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> Bootstrapping from: /home/runner/work/_temp/Library
#> Installing into library: hipercow/lib
#> Using method pkgdepends
-#> Running in path: /tmp/RtmpPDWn01/file16c31b3a0db
+#> Running in path: /tmp/RtmpsHptyo/file16b4530fbf06
#> Library paths:
-#> - /tmp/RtmpPDWn01/file16c31b3a0db/hipercow/lib
+#> - /tmp/RtmpsHptyo/file16b4530fbf06/hipercow/lib
#> - /opt/R/4.4.1/lib/R/site-library
#> - /opt/R/4.4.1/lib/R/library
-#> id: 20240709092506
+#> id: 20240709123232
#> Logs from pkgdepends follow:
#>
#> -------------------------------------------------------------------------------
@@ -134,6 +134,7 @@
Examples#> ℹ Updating metadata database
#> ✔ Updating metadata database ... done
#>
+#> ! Failed to update system requirement mappings, will use cached mappings.
#> + evaluate 0.24.0 [bld][dl]
#> + highr 0.11 [bld][dl]
#> + knitr 1.48 [bld][dl]
@@ -149,21 +150,21 @@
Examples#> ℹ Building xfun 0.45
#> ℹ Building yaml 2.3.9
#> ✔ Built evaluate 0.24.0 (1.7s)
-#> ✔ Installed evaluate 0.24.0 (23ms)
-#> ✔ Built xfun 0.45 (3.9s)
-#> ✔ Installed xfun 0.45 (23ms)
+#> ✔ Installed evaluate 0.24.0 (1s)
+#> ✔ Built xfun 0.45 (4.2s)
+#> ✔ Installed xfun 0.45 (1.1s)
#> ℹ Building highr 0.11
-#> ✔ Built highr 0.11 (1.2s)
+#> ✔ Built yaml 2.3.9 (5.2s)
+#> ✔ Installed yaml 2.3.9 (32ms)
+#> ✔ Built highr 0.11 (934ms)
#> ✔ Installed highr 0.11 (1s)
-#> ✔ Built yaml 2.3.9 (6.1s)
-#> ✔ Installed yaml 2.3.9 (1s)
#> ℹ Building knitr 1.48
-#> ✔ Built knitr 1.48 (5.1s)
+#> ✔ Built knitr 1.48 (4.7s)
#> ✔ Installed knitr 1.48 (39ms)
-#> ✔ Summary: 5 new in 20.1s
+#> ✔ Summary: 5 new in 19.9s
#>
#> -------------------------------------------------------------------------------
-#> Writing library description to 'hipercow/lib/.conan/20240709092506'
+#> Writing library description to 'hipercow/lib/.conan/20240709123232'
#> Done!
hipercow_provision("pkgdepends", refs = "data.table")
#> /`-'\ _______ ___ ___ ____
@@ -174,12 +175,12 @@
Examples#> Bootstrapping from: /home/runner/work/_temp/Library
#> Installing into library: hipercow/lib
#> Using method pkgdepends
-#> Running in path: /tmp/RtmpPDWn01/file16c31b3a0db
+#> Running in path: /tmp/RtmpsHptyo/file16b4530fbf06
#> Library paths:
-#> - /tmp/RtmpPDWn01/file16c31b3a0db/hipercow/lib
+#> - /tmp/RtmpsHptyo/file16b4530fbf06/hipercow/lib
#> - /opt/R/4.4.1/lib/R/site-library
#> - /opt/R/4.4.1/lib/R/library
-#> id: 20240709092528
+#> id: 20240709123253
#> Logs from pkgdepends follow:
#>
#> -------------------------------------------------------------------------------
@@ -197,17 +198,17 @@
Examples#> ℹ No downloads are needed, 1 pkg is cached
#> ✔ Got data.table 1.15.4 (source) (5.39 MB)
#> ℹ Building data.table 1.15.4
-#> ✔ Built data.table 1.15.4 (18.2s)
-#> ✔ Installed data.table 1.15.4 (54ms)
-#> ✔ Summary: 1 new in 18.2s
+#> ✔ Built data.table 1.15.4 (17.6s)
+#> ✔ Installed data.table 1.15.4 (1.1s)
+#> ✔ Summary: 1 new in 18.7s
#>
#> -------------------------------------------------------------------------------
-#> Writing library description to 'hipercow/lib/.conan/20240709092528'
+#> Writing library description to 'hipercow/lib/.conan/20240709123253'
#> Done!
hipercow_provision_compare()
#> ── Comparing conan installations ───────────────────────────────────────────────
-#> • 20240709092506 1st; previous installation (less than a minute ago)
-#> • 20240709092528 2nd; current installation (moments ago)
+#> • 20240709123232 1st; previous installation (less than a minute ago)
+#> • 20240709123253 2nd; current installation (moments ago)
#>
#> ── 5 unchanged packages ──
#>
diff --git a/reference/hipercow_provision_list.html b/reference/hipercow_provision_list.html
index 40b3bcd9..fb4a1a6a 100644
--- a/reference/hipercow_provision_list.html
+++ b/reference/hipercow_provision_list.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> Bootstrapping from: /home/runner/work/_temp/Library
#> Installing into library: hipercow/lib
#> Using method pkgdepends
-#> Running in path: /tmp/RtmpPDWn01/file16c352ea9a00
+#> Running in path: /tmp/RtmpsHptyo/file16b4278c7f62
#> Library paths:
-#> - /tmp/RtmpPDWn01/file16c352ea9a00/hipercow/lib
+#> - /tmp/RtmpsHptyo/file16b4278c7f62/hipercow/lib
#> - /opt/R/4.4.1/lib/R/site-library
#> - /opt/R/4.4.1/lib/R/library
-#> id: 20240709092551
+#> id: 20240709123317
#> Logs from pkgdepends follow:
#>
#> -------------------------------------------------------------------------------
@@ -161,25 +161,24 @@
Examples#> ℹ Updating metadata database
#> ✔ Updating metadata database ... done
#>
-#> ! Failed to update system requirement mappings, will use cached mappings.
#> + data.table 1.15.4 [bld][cmp][dl]
#> ℹ Getting 1 pkg with unknown size
#> ✔ Got data.table 1.15.4 (source) (5.39 MB)
#> ℹ Building data.table 1.15.4
-#> ✔ Built data.table 1.15.4 (18.3s)
-#> ✔ Installed data.table 1.15.4 (52ms)
-#> ✔ Summary: 1 new in 18.3s
+#> ✔ Built data.table 1.15.4 (17.6s)
+#> ✔ Installed data.table 1.15.4 (51ms)
+#> ✔ Summary: 1 new in 17.7s
#>
#> -------------------------------------------------------------------------------
-#> Writing library description to 'hipercow/lib/.conan/20240709092551'
+#> Writing library description to 'hipercow/lib/.conan/20240709123317'
#> Done!
hipercow_provision_list()
#> ℹ 1 conan installation recorded
-#> • 1: 20240709092551 (moments ago) [0]
+#> • 1: 20240709123317 (moments ago) [0]
hipercow_provision_check()
#> ✔ Selected provisioning method 'pkgdepends'
#> ℹ 1 conan installation recorded
-#> • 1: 20240709092551 (moments ago) [0] (*)
+#> • 1: 20240709123317 (moments ago) [0] (*)
#> ℹ The entry marked with '*' matches the provided installation hash
# After a different installation:
@@ -192,12 +191,12 @@
Examples#> Bootstrapping from: /home/runner/work/_temp/Library
#> Installing into library: hipercow/lib
#> Using method pkgdepends
-#> Running in path: /tmp/RtmpPDWn01/file16c352ea9a00
+#> Running in path: /tmp/RtmpsHptyo/file16b4278c7f62
#> Library paths:
-#> - /tmp/RtmpPDWn01/file16c352ea9a00/hipercow/lib
+#> - /tmp/RtmpsHptyo/file16b4278c7f62/hipercow/lib
#> - /opt/R/4.4.1/lib/R/site-library
#> - /opt/R/4.4.1/lib/R/library
-#> id: 20240709092620
+#> id: 20240709123344
#> Logs from pkgdepends follow:
#>
#> -------------------------------------------------------------------------------
@@ -217,40 +216,40 @@
Examples#> + xfun 0.45 [bld][cmp]
#> + yaml 2.3.9 [bld][cmp]
#> ℹ No downloads are needed, 5 pkgs are cached
-#> ✔ Got highr 0.11 (source) (13.85 kB)
#> ✔ Got evaluate 0.24.0 (source) (28.68 kB)
+#> ✔ Got highr 0.11 (source) (13.85 kB)
#> ✔ Got yaml 2.3.9 (source) (94.47 kB)
#> ✔ Got xfun 0.45 (source) (158.13 kB)
#> ✔ Got knitr 1.48 (source) (583.01 kB)
#> ℹ Building evaluate 0.24.0
#> ℹ Building xfun 0.45
#> ℹ Building yaml 2.3.9
-#> ✔ Built evaluate 0.24.0 (1.7s)
+#> ✔ Built evaluate 0.24.0 (1.6s)
#> ✔ Installed evaluate 0.24.0 (1s)
-#> ✔ Built xfun 0.45 (4s)
-#> ✔ Installed xfun 0.45 (23ms)
+#> ✔ Built xfun 0.45 (4.2s)
+#> ✔ Installed xfun 0.45 (22ms)
#> ℹ Building highr 0.11
#> ✔ Built highr 0.11 (1.2s)
#> ✔ Installed highr 0.11 (1s)
#> ✔ Built yaml 2.3.9 (6.4s)
-#> ✔ Installed yaml 2.3.9 (21ms)
+#> ✔ Installed yaml 2.3.9 (1s)
#> ℹ Building knitr 1.48
-#> ✔ Built knitr 1.48 (5.2s)
+#> ✔ Built knitr 1.48 (4.7s)
#> ✔ Installed knitr 1.48 (39ms)
-#> ✔ Summary: 5 new in 20.7s
+#> ✔ Summary: 5 new in 21.1s
#>
#> -------------------------------------------------------------------------------
-#> Writing library description to 'hipercow/lib/.conan/20240709092620'
+#> Writing library description to 'hipercow/lib/.conan/20240709123344'
#> Done!
hipercow_provision_list()
#> ℹ 2 conan installations recorded
-#> • 1: 20240709092551 (less than a minute ago) [-1]
-#> • 2: 20240709092620 (moments ago) [0]
+#> • 1: 20240709123317 (less than a minute ago) [-1]
+#> • 2: 20240709123344 (moments ago) [0]
hipercow_provision_check()
#> ✔ Selected provisioning method 'pkgdepends'
#> ℹ 2 conan installations recorded
-#> • 1: 20240709092551 (less than a minute ago) [-1] (*)
-#> • 2: 20240709092620 (moments ago) [0]
+#> • 1: 20240709123317 (less than a minute ago) [-1] (*)
+#> • 2: 20240709123344 (moments ago) [0]
#> ℹ The entry marked with '*' matches the provided installation hash
cleanup()
diff --git a/reference/hipercow_purge.html b/reference/hipercow_purge.html
index 877635af..9f6ea9be 100644
--- a/reference/hipercow_purge.html
+++ b/reference/hipercow_purge.html
@@ -17,7 +17,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> ℹ This example uses a special helper
ids <- c(task_create_expr(Sys.sleep(2)), task_create_expr(runif(1)))
-#> ✔ Submitted task '7d5c44fd2bbf3d5e18706afcf5e060e5' using 'example'
-#> ✔ Submitted task '37cee19c664fe936393c7bd41798949c' using 'example'
+#> ✔ Submitted task '8491c923647a0669b9eb0656eb21ab9e' using 'example'
+#> ✔ Submitted task 'a280e91b7248e816820e67d0f47ecaaf' using 'example'
# The first task may or not be cancelled (depends on if it was
# started already) but the second one will almost certainly be
diff --git a/reference/task_create_bulk_call.html b/reference/task_create_bulk_call.html
index e402600d..64efb15a 100644
--- a/reference/task_create_bulk_call.html
+++ b/reference/task_create_bulk_call.html
@@ -13,7 +13,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> ✔ Submitted 5 tasks using 'example'
#> ✔ Created bundle 'known_xoloitzcuintli' with 5 tasks
hipercow_bundle_wait(bundle)
-#> Error in hipercow_bundle_wait(bundle): Bundle 'known_xoloitzcuintli' did not complete in time
+#> [1] TRUE
hipercow_bundle_result(bundle) # Map(f, x$a, x$b)
-#> Error in hipercow_bundle_result(bundle): Can't fetch results for bundle 'known_xoloitzcuintli' due to error
-#> fetching result for '29746b91c1f756cb315a86acfcd907d8'
-#> Caused by error in `task_result()`:
-#> ! Result for task '29746b91c1f756cb315a86acfcd907d8' not available,
-#> status is 'submitted'
+#> [[1]]
+#> [1] 0.3342044
+#>
+#> [[2]]
+#> [1] 40.57106
+#>
+#> [[3]]
+#> [1] -2.022331
+#>
+#> [[4]]
+#> [1] -5.414696
+#>
+#> [[5]]
+#> [1] 1.374742
+#>
cleanup()
#> ℹ Cleaning up example
diff --git a/reference/task_create_bulk_expr.html b/reference/task_create_bulk_expr.html
index e15207b2..6a1ae220 100644
--- a/reference/task_create_bulk_expr.html
+++ b/reference/task_create_bulk_expr.html
@@ -23,7 +23,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples
# Similar to the example in task_create_call
id <- task_create_call(stats::runif, list(5))
-#> ✔ Submitted task '5d23c73a5814d014f05f5244f5e1ddac' using 'example'
+#> ✔ Submitted task '1c43f7543abcce4f0e9a43273ec913bb' using 'example'
task_info(id)
#>
-#> ── task 5d23c73a5814d014f05f5244f5e1ddac (submitted) ───────────────────────────
+#> ── task 1c43f7543abcce4f0e9a43273ec913bb (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: call
#> • Call: stats::runif
#> • Args: 5
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:45.34739 (moments ago)
-#> ! Not started yet (waiting for 76ms)
+#> ℹ Created at 2024-07-09 12:34:10.024873 (moments ago)
+#> ! Not started yet (waiting for 68ms)
#> ! Not finished yet (waiting to start)
task_wait(id)
#> [1] TRUE
task_result(id)
-#> [1] 0.99736315 0.67079866 0.10772674 0.80204924 0.04277297
+#> [1] 0.7292328 0.6986540 0.8406749 0.8619062 0.4056433
# Unlike task_create_explicit, variables are automatically included:
id <- task_create_call(function(x, y) x + y, list(2, 5))
-#> ✔ Submitted task 'ff913e80c7d43b22cdf008786fe41912' using 'example'
+#> ✔ Submitted task 'a4e4542cf631f1588d4fb9601508257a' using 'example'
task_info(id)
#>
-#> ── task ff913e80c7d43b22cdf008786fe41912 (submitted) ───────────────────────────
+#> ── task a4e4542cf631f1588d4fb9601508257a (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: call
#> • Call: (anonymous)
#> • Args: 2, 5
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:46.439557 (moments ago)
-#> ℹ Started at 2024-07-09 09:26:46.65914 (moments ago; waited 220ms)
+#> ℹ Created at 2024-07-09 12:34:11.108077 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:11.32289 (moments ago; waited 215ms)
#> ! Not finished yet (waiting to start)
task_wait(id)
#> [1] TRUE
diff --git a/reference/task_create_explicit.html b/reference/task_create_explicit.html
index fcbdc0fa..de5f8c34 100644
--- a/reference/task_create_explicit.html
+++ b/reference/task_create_explicit.html
@@ -23,7 +23,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples
# About the most simple task that can be created:
id <- task_create_explicit(quote(sqrt(2)))
-#> ✔ Submitted task '3118d7b31aad03c239b014ded5041fe4' using 'example'
+#> ✔ Submitted task '62d8b55d6478e562549e45128279dea5' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
@@ -181,18 +181,18 @@
Examples# Variables are not automatically included with the expression:
a <- 5
id <- task_create_explicit(quote(sqrt(a)))
-#> ✔ Submitted task 'ae6d871bd647811c4fc3b0a1d89765e9' using 'example'
+#> ✔ Submitted task '851291a50a916319ce4da36d7a25127c' using 'example'
task_info(id)
#>
-#> ── task ae6d871bd647811c4fc3b0a1d89765e9 (submitted) ───────────────────────────
+#> ── task 851291a50a916319ce4da36d7a25127c (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: explicit
#> • Expression: sqrt(a)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:49.533996 (moments ago)
-#> ! Not started yet (waiting for 51ms)
+#> ℹ Created at 2024-07-09 12:34:14.175176 (moments ago)
+#> ! Not started yet (waiting for 48ms)
#> ! Not finished yet (waiting to start)
task_wait(id)
#> [1] FALSE
@@ -201,18 +201,18 @@
Examples
# Include variables by passing them via 'export':
id <- task_create_explicit(quote(sqrt(a)), export = "a")
-#> ✔ Submitted task 'f02b0c2d7c1122389bb027994dbbe731' using 'example'
+#> ✔ Submitted task 'b7b6442fc773e9503dc1cd4288a4bff0' using 'example'
task_info(id)
#>
-#> ── task f02b0c2d7c1122389bb027994dbbe731 (submitted) ───────────────────────────
+#> ── task b7b6442fc773e9503dc1cd4288a4bff0 (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: explicit
#> • Expression: sqrt(a)
#> • Locals: a
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:50.598245 (moments ago)
-#> ! Not started yet (waiting for 46ms)
+#> ℹ Created at 2024-07-09 12:34:15.235343 (moments ago)
+#> ! Not started yet (waiting for 47ms)
#> ! Not finished yet (waiting to start)
task_wait(id)
#> [1] TRUE
diff --git a/reference/task_create_expr.html b/reference/task_create_expr.html
index e83ae53e..e53ad4bb 100644
--- a/reference/task_create_expr.html
+++ b/reference/task_create_expr.html
@@ -11,7 +11,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples
# Similar to task_create_explicit, but we don't include the 'quote'
id <- task_create_expr(runif(5))
-#> ✔ Submitted task '03449ff5fb41891d1feb0416f221796a' using 'example'
+#> ✔ Submitted task '8cbf541e6fda48f4443b24319267796e' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
-#> [1] 0.82668166 0.71154233 0.01232655 0.14130792 0.57576616
+#> [1] 0.7881144 0.2517913 0.2291435 0.4634112 0.6939439
# Unlike task_create_explicit, variables are automatically included:
n <- 3
id <- task_create_expr(runif(n))
-#> ✔ Submitted task '8b3c994e70bec4c89865c5fcd1e3b4a2' using 'example'
+#> ✔ Submitted task 'c9054272d607fba41441c60d8e03e7c4' using 'example'
task_info(id)
#>
-#> ── task 8b3c994e70bec4c89865c5fcd1e3b4a2 (submitted) ───────────────────────────
+#> ── task c9054272d607fba41441c60d8e03e7c4 (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(n)
#> • Locals: n
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:52.933013 (moments ago)
+#> ℹ Created at 2024-07-09 12:34:17.570054 (moments ago)
#> ! Not started yet (waiting for 48ms)
#> ! Not finished yet (waiting to start)
task_wait(id)
#> [1] TRUE
task_result(id)
-#> [1] 0.4011119 0.8404253 0.9142995
+#> [1] 0.9283045 0.1046040 0.5815907
cleanup()
#> ℹ Cleaning up example
diff --git a/reference/task_create_script.html b/reference/task_create_script.html
index f9c66336..42c9569c 100644
--- a/reference/task_create_script.html
+++ b/reference/task_create_script.html
@@ -15,7 +15,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples
# Now create a task from this script
id <- task_create_script("script.R")
-#> ✔ Submitted task 'aa929e5b7fc870047389b45df675b6c5' using 'example'
+#> ✔ Submitted task '260aacdaaeb7893baead5a84187a9968' using 'example'
task_info(id)
#>
-#> ── task aa929e5b7fc870047389b45df675b6c5 (submitted) ───────────────────────────
+#> ── task 260aacdaaeb7893baead5a84187a9968 (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: script
#> • Script: script.R
#> • Options: chdir = FALSE, echo = TRUE
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:54.49406 (moments ago)
-#> ! Not started yet (waiting for 67ms)
+#> ℹ Created at 2024-07-09 12:34:19.11491 (moments ago)
+#> ! Not started yet (waiting for 65ms)
#> ! Not finished yet (waiting to start)
task_wait(id)
#> [1] TRUE
diff --git a/reference/task_eval.html b/reference/task_eval.html
index 61a02c4d..9dc7aab2 100644
--- a/reference/task_eval.html
+++ b/reference/task_eval.html
@@ -11,7 +11,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples# Explicitly evaluate the task:
task_eval(id, verbose = TRUE)
#>
-#> ── hipercow 1.0.30 running at '/tmp/RtmpPDWn01/file16c369b21f3e' ───────────────
+#> ── hipercow 1.0.31 running at '/tmp/RtmpsHptyo/file16b41cb9e8d7' ───────────────
#> ℹ library paths:
#> • /home/runner/work/_temp/Library
#> • /opt/R/4.4.1/lib/R/site-library
#> • /opt/R/4.4.1/lib/R/library
-#> ℹ id: d3808c51a35691338f602e5ea0b9bb8e
-#> ℹ starting at: 2024-07-09 09:26:55.816783
+#> ℹ id: 49350a2f9d85e439ad5cdb0fd6649868
+#> ℹ starting at: 2024-07-09 12:34:20.420192
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
@@ -125,7 +125,7 @@
Examples#>
#> ───────────────────────────────────────────────────────────────── task logs ↑ ──
#> ✔ status: success
-#> ℹ finishing at: 2024-07-09 09:26:55.816783 (elapsed: 0.0737 secs)
+#> ℹ finishing at: 2024-07-09 12:34:20.420192 (elapsed: 0.06926 secs)
task_result(id)
#> [1] 0.5144025
diff --git a/reference/task_info.html b/reference/task_info.html
index 46d3639a..7f7e89c5 100644
--- a/reference/task_info.html
+++ b/reference/task_info.html
@@ -11,7 +11,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples
cleanup <- hipercow_example_helper()
#> ℹ This example uses a special helper
id <- task_create_expr(runif(1))
-#> ✔ Submitted task 'a925e5eb1c4b4ae51b3e607de814a601' using 'example'
+#> ✔ Submitted task 'f9d408c867fcfacf3478d52aed7dec26' using 'example'
task_wait(id)
#> [1] TRUE
# Task information at completion includes times:
task_info(id)
#>
-#> ── task a925e5eb1c4b4ae51b3e607de814a601 (success) ─────────────────────────────
+#> ── task f9d408c867fcfacf3478d52aed7dec26 (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:56.10146 (moments ago)
-#> ℹ Started at 2024-07-09 09:26:56.289877 (moments ago; waited 189ms)
-#> ℹ Finished at 2024-07-09 09:26:56.384061 (moments ago; ran for 95ms)
+#> ℹ Created at 2024-07-09 12:34:20.688042 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:20.869248 (moments ago; waited 182ms)
+#> ℹ Finished at 2024-07-09 12:34:20.959461 (moments ago; ran for 91ms)
# If you need to work with these times, use the "times" element:
task_info(id)$times
#> created started finished
-#> "2024-07-09 09:26:56 UTC" "2024-07-09 09:26:56 UTC" "2024-07-09 09:26:56 UTC"
+#> "2024-07-09 12:34:20 UTC" "2024-07-09 12:34:20 UTC" "2024-07-09 12:34:20 UTC"
# If a task is retried, this information appears as a retry chain:
id2 <- task_retry(id)
-#> ✔ Submitted task '063fc0185567c330fa639333fd8185e0' using 'example'
+#> ✔ Submitted task 'f509e88289584efee2bdb014cb42e112' using 'example'
task_info(id2, follow = FALSE)
#>
-#> ── task 063fc0185567c330fa639333fd8185e0 (submitted) ───────────────────────────
+#> ── task f509e88289584efee2bdb014cb42e112 (running) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:56.10146 (moments ago)
-#> ! Not started yet (waiting for 1.1s)
-#> ! Not finished yet (waiting to start)
+#> ℹ Created at 2024-07-09 12:34:20.688042 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:21.762847 (moments ago; waited 1.1s)
+#> ! Not finished yet (running for 44ms)
#> ℹ Last of a chain of a task retried 1 time
task_info(id2)
#>
-#> ── task 063fc0185567c330fa639333fd8185e0 (success) ─────────────────────────────
+#> ── task f509e88289584efee2bdb014cb42e112 (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:26:56.10146 (moments ago)
-#> ℹ Started at 2024-07-09 09:26:57.189658 (moments ago; waited 1.1s)
-#> ℹ Finished at 2024-07-09 09:26:57.191008 (moments ago; ran for 2ms)
+#> ℹ Created at 2024-07-09 12:34:20.688042 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:21.764599 (moments ago; waited 1.1s)
+#> ℹ Finished at 2024-07-09 12:34:21.765494 (moments ago; ran for 1ms)
#> ℹ Last of a chain of a task retried 1 time
cleanup()
diff --git a/reference/task_log.html b/reference/task_log.html
index 1d09d782..ccde3bcd 100644
--- a/reference/task_log.html
+++ b/reference/task_log.html
@@ -15,7 +15,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples# Tasks that don't produce any output (print, cat, warning, etc)
# will only contain logging information from hipercow itself
id <- task_create_expr(runif(1))
-#> ✔ Submitted task '15ae842323507d0bf3e3fcfc2b25cbbc' using 'example'
+#> ✔ Submitted task '4bc341a6b4c6465567ac29441673d1ef' using 'example'
task_wait(id)
#> [1] TRUE
task_log_show(id)
#>
-#> ── hipercow 1.0.30 running at '/tmp/RtmpPDWn01/file16c377fc5e2e' ───────────────
+#> ── hipercow 1.0.31 running at '/tmp/RtmpsHptyo/file16b43678127c' ───────────────
#> ℹ library paths:
#> • /home/runner/work/_temp/Library
#> • /opt/R/4.4.1/lib/R/site-library
#> • /opt/R/4.4.1/lib/R/library
-#> ℹ id: 15ae842323507d0bf3e3fcfc2b25cbbc
-#> ℹ starting at: 2024-07-09 09:26:57.944872
+#> ℹ id: 4bc341a6b4c6465567ac29441673d1ef
+#> ℹ starting at: 2024-07-09 12:34:22.503291
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
@@ -180,7 +180,7 @@
Examples#>
#> ───────────────────────────────────────────────────────────────── task logs ↑ ──
#> ✔ status: success
-#> ℹ finishing at: 2024-07-09 09:26:57.944872 (elapsed: 0.2299 secs)
+#> ℹ finishing at: 2024-07-09 12:34:22.503291 (elapsed: 0.2147 secs)
# If your task creates output then it will appear within the
# horizontal rules:
@@ -190,18 +190,18 @@
Examples message("all done!")
x
})
-#> ✔ Submitted task 'b4ab675ce219a48d423ccbe8dd8e3195' using 'example'
+#> ✔ Submitted task '0e2a64482b2984114615427d67f4d7d5' using 'example'
task_wait(id)
#> [1] TRUE
task_log_show(id)
#>
-#> ── hipercow 1.0.30 running at '/tmp/RtmpPDWn01/file16c377fc5e2e' ───────────────
+#> ── hipercow 1.0.31 running at '/tmp/RtmpsHptyo/file16b43678127c' ───────────────
#> ℹ library paths:
#> • /home/runner/work/_temp/Library
#> • /opt/R/4.4.1/lib/R/site-library
#> • /opt/R/4.4.1/lib/R/library
-#> ℹ id: b4ab675ce219a48d423ccbe8dd8e3195
-#> ℹ starting at: 2024-07-09 09:26:58.79217
+#> ℹ id: 0e2a64482b2984114615427d67f4d7d5
+#> ℹ starting at: 2024-07-09 12:34:23.329442
#> ℹ Task type: expression
#> • Expression: { [...]
#> • Locals: (none)
@@ -213,18 +213,18 @@
Examples#>
#> ───────────────────────────────────────────────────────────────── task logs ↑ ──
#> ✔ status: success
-#> ℹ finishing at: 2024-07-09 09:26:58.79217 (elapsed: 0.2446 secs)
+#> ℹ finishing at: 2024-07-09 12:34:23.329442 (elapsed: 0.2239 secs)
# Use "task_log_value" to get the log value as a character vector
task_log_value(id)
#> [1] ""
-#> [2] "── hipercow 1.0.30 running at '/tmp/RtmpPDWn01/file16c377fc5e2e' ───────────────"
+#> [2] "── hipercow 1.0.31 running at '/tmp/RtmpsHptyo/file16b43678127c' ───────────────"
#> [3] "ℹ library paths:"
#> [4] "• /home/runner/work/_temp/Library"
#> [5] "• /opt/R/4.4.1/lib/R/site-library"
#> [6] "• /opt/R/4.4.1/lib/R/library"
-#> [7] "ℹ id: b4ab675ce219a48d423ccbe8dd8e3195"
-#> [8] "ℹ starting at: 2024-07-09 09:26:58.79217"
+#> [7] "ℹ id: 0e2a64482b2984114615427d67f4d7d5"
+#> [8] "ℹ starting at: 2024-07-09 12:34:23.329442"
#> [9] "ℹ Task type: expression"
#> [10] "• Expression: { [...]"
#> [11] "• Locals: (none)"
@@ -236,14 +236,14 @@
Examples#> [17] ""
#> [18] "───────────────────────────────────────────────────────────────── task logs ↑ ──"
#> [19] "✔ status: success"
-#> [20] "ℹ finishing at: 2024-07-09 09:26:58.79217 (elapsed: 0.2446 secs)"
+#> [20] "ℹ finishing at: 2024-07-09 12:34:23.329442 (elapsed: 0.2239 secs)"
# Depending on the driver you are using, there may be useful
# information in the "outer" log; the logs produced by the
# submission system before hipercow takes over:
task_log_show(id, outer = TRUE)
-#> Running task b4ab675ce219a48d423ccbe8dd8e3195
-#> Finished task b4ab675ce219a48d423ccbe8dd8e3195
+#> Running task 0e2a64482b2984114615427d67f4d7d5
+#> Finished task 0e2a64482b2984114615427d67f4d7d5
cleanup()
#> ℹ Cleaning up example
diff --git a/reference/task_result.html b/reference/task_result.html
index 5c57a43d..ec42dd3e 100644
--- a/reference/task_result.html
+++ b/reference/task_result.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples
# Typical usage
id <- task_create_expr(runif(1))
-#> ✔ Submitted task '9e71fa33ed50c3ca62703d172745162f' using 'example'
+#> ✔ Submitted task '507782383a7f7dddc7360334265dc6f4' using 'example'
task_wait(id)
#> [1] TRUE
task_result(id)
-#> [1] 0.2722752
+#> [1] 0.6154927
# Tasks that error return error values as results
id <- task_create_expr(readRDS("nosuchfile.rds"))
-#> ✔ Submitted task '9727cf2497445ec65453c69cd4aab5c4' using 'example'
+#> ✔ Submitted task '4e3263bdb456dbe7bbf318011a432c22' using 'example'
task_wait(id)
#> [1] FALSE
task_result(id)
diff --git a/reference/task_retry.html b/reference/task_retry.html
index e6c91aba..09839eec 100644
--- a/reference/task_retry.html
+++ b/reference/task_retry.html
@@ -11,7 +11,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples# For demonstration, we just generate random numbers as then it's
# more obvious that things have been rerun:
id1 <- task_create_expr(runif(1))
-#> ✔ Submitted task '523c51de5e9fa59e0e56daeb7b5ac0a8' using 'example'
+#> ✔ Submitted task 'cf2d9cdd089d27cde3afe0e6eb45fdf3' using 'example'
task_wait(id1)
#> [1] TRUE
task_result(id1)
-#> [1] 0.2304772
+#> [1] 0.4394054
# Now retry the task and get the retried result:
id2 <- task_retry(id1)
-#> ✔ Submitted task 'e52fc6cccf385f8153decd7cc6b3501f' using 'example'
+#> ✔ Submitted task '5adfc54dff4dca9e40f6b3434e4273b6' using 'example'
task_wait(id2)
#> [1] TRUE
task_result(id2)
-#> [1] 0.2028578
+#> [1] 0.2819749
# After a retry, both the original and derived tasks know about
# each other:
task_info(id1)
#>
-#> ── task 523c51de5e9fa59e0e56daeb7b5ac0a8 (success) ─────────────────────────────
+#> ── task cf2d9cdd089d27cde3afe0e6eb45fdf3 (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:02.12409 (moments ago)
-#> ℹ Started at 2024-07-09 09:27:02.311589 (moments ago; waited 188ms)
-#> ℹ Finished at 2024-07-09 09:27:02.406043 (moments ago; ran for 95ms)
-#> ℹ 1st of a chain of a task retried 1 time, most recently 'e52fc6cccf385f8153decd7cc6b3501f'
+#> ℹ Created at 2024-07-09 12:34:26.658143 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:26.839899 (moments ago; waited 182ms)
+#> ℹ Finished at 2024-07-09 12:34:26.9315 (moments ago; ran for 92ms)
+#> ℹ 1st of a chain of a task retried 1 time, most recently '5adfc54dff4dca9e40f6b3434e4273b6'
task_info(id2)
#>
-#> ── task e52fc6cccf385f8153decd7cc6b3501f (success) ─────────────────────────────
+#> ── task 5adfc54dff4dca9e40f6b3434e4273b6 (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:02.12409 (moments ago)
-#> ℹ Started at 2024-07-09 09:27:03.211375 (moments ago; waited 1.1s)
-#> ℹ Finished at 2024-07-09 09:27:03.212372 (moments ago; ran for 1ms)
+#> ℹ Created at 2024-07-09 12:34:26.658143 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:27.736704 (moments ago; waited 1.1s)
+#> ℹ Finished at 2024-07-09 12:34:27.737658 (moments ago; ran for 1ms)
#> ℹ Last of a chain of a task retried 1 time
# By default every task will "follow" and access the most recent
@@ -176,38 +176,38 @@
Examples# You can prevent this by passing follow = FALSE to get the value
# of this particular attempt:
task_result(id1, follow = FALSE)
-#> [1] 0.2304772
+#> [1] 0.4394054
# Tasks can be retried as many times as needed, creating a
# chain. It does not matter which task you retry as we always
# follow all the way to the end of the chain before retrying:
id3 <- task_retry(id1)
-#> ✔ Submitted task '38c67aa1977af8bb52345b8fca4f931a' using 'example'
+#> ✔ Submitted task '4108c0b47ead527dc7ce6f58636bf6eb' using 'example'
task_info(id1, follow = FALSE)
#>
-#> ── task 523c51de5e9fa59e0e56daeb7b5ac0a8 (submitted) ───────────────────────────
+#> ── task cf2d9cdd089d27cde3afe0e6eb45fdf3 (submitted) ───────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:02.12409 (moments ago)
-#> ℹ Started at 2024-07-09 09:27:02.399125 (moments ago; waited 276ms)
+#> ℹ Created at 2024-07-09 12:34:26.658143 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:26.926826 (moments ago; waited 269ms)
#> ! Not finished yet (waiting to start)
-#> ℹ 1st of a chain of a task retried 2 times, most recently '38c67aa1977af8bb52345b8fca4f931a'
+#> ℹ 1st of a chain of a task retried 2 times, most recently '4108c0b47ead527dc7ce6f58636bf6eb'
task_info(id3)
#>
-#> ── task 38c67aa1977af8bb52345b8fca4f931a (submitted) ───────────────────────────
+#> ── task 4108c0b47ead527dc7ce6f58636bf6eb (success) ─────────────────────────────
#> ℹ Submitted with 'example'
#> ℹ Task type: expression
#> • Expression: runif(1)
#> • Locals: (none)
#> • Environment: default
#> R_GC_MEM_GROW: 3
-#> ℹ Created at 2024-07-09 09:27:02.12409 (moments ago)
-#> ℹ Started at 2024-07-09 09:27:04.315123 (moments ago; waited 2.2s)
-#> ! Not finished yet (waiting to start)
+#> ℹ Created at 2024-07-09 12:34:26.658143 (moments ago)
+#> ℹ Started at 2024-07-09 12:34:28.843686 (moments ago; waited 2.2s)
+#> ℹ Finished at 2024-07-09 12:34:28.844618 (moments ago; ran for 1ms)
#> ℹ Last of a chain of a task retried 2 times
cleanup()
diff --git a/reference/task_status.html b/reference/task_status.html
index 03f34c9a..34587b03 100644
--- a/reference/task_status.html
+++ b/reference/task_status.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> ℹ This example uses a special helper
ids <- c(task_create_expr(runif(1)), task_create_expr(runif(1)))
-#> ✔ Submitted task '2688361da38518bc640a037c8621013f' using 'example'
-#> ✔ Submitted task 'd8cf74d1fddb85d817a3281119025282' using 'example'
+#> ✔ Submitted task 'f7d0700dbb50daa018fa21b1018e462a' using 'example'
+#> ✔ Submitted task 'db90d7cac5bb468c8be3b4ff1e87de18' using 'example'
# Depending on how fast these tasks get picked up they will be one
# of 'submitted', 'running' or 'success':
task_status(ids)
diff --git a/reference/task_submit.html b/reference/task_submit.html
index 81302c6e..edfe8f52 100644
--- a/reference/task_submit.html
+++ b/reference/task_submit.html
@@ -13,7 +13,7 @@
hipercow
- 1.0.30
+ 1.0.31
Examples#> ℹ This example uses a special helper
id <- task_create_expr(sqrt(2))
-#> ✔ Submitted task '0025c826abc3bdc7b4a168e761ceed83' using 'example'
+#> ✔ Submitted task '63126b9bddb88ec4ec227d4611373b1d' using 'example'
task_wait(id)
#> [1] TRUE
diff --git a/reference/windows_authenticate.html b/reference/windows_authenticate.html
index 9bc83446..0706e60b 100644
--- a/reference/windows_authenticate.html
+++ b/reference/windows_authenticate.html
@@ -7,7 +7,7 @@
hipercow
- 1.0.30
+ 1.0.31
, memory
, time
, gc
resources <- hipercow_resources(memory_per_node = \"256G\", exclusive = TRUE, cores = 8)"},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"specifying-which-nodes-should-run-your-tasks","dir":"Articles","previous_headings":"","what":"Specifying which nodes should run your tasks","title":"Parallel Tasks","text":"’ve already set number cores task needs, one way might limit nodes capable running task. Additionally, specific memory requirements tasks, specific queue run tasks , even specific nodes run , can specified arguments hipercow_resources several different ways, outline .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"memory-requests","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks","what":"Memory requests","title":"Parallel Tasks","text":"Two methods currently provided specifying memory usage. can specified integer number gigabytes, alternative strings \"64G” \"1T\" represent 64Gb, 1Tb respectively. memory_per_node specifies simply task run node least much memory. Remember node’s memory shared tasks running node, also consider specifying cores = Inf, exclusive = TRUE think ’ll need whole node’s memory . launching many tasks, know maximum memory task needs, can specify memory_per_process tell cluster . cluster avoid allocating many tasks node, combined memory needed tasks exceed node . can’t really guaranteed, unless everyone agrees set memory_per_process, help common case tasks might stacked node together.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"running-on-specific-nodes","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks","what":"Running on specific nodes","title":"Parallel Tasks","text":"present, nodes new cluster similar , partitioning nodes users groups. free--, little variation specification nodes. may change time, cluster grows, user base grows. future, may nodes, queues nodes, appropriate tasks others, either specification, groups priority access nodes may purchased, example. ’ve already noted specifying cores memory requirements cause tasks run node meeting requirements. Additionally, can explicitly say tasks submitted particular queue, tasks run particular named nodes. See .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"selecting-by-queue","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks > Running on specific nodes","what":"Selecting by queue","title":"Parallel Tasks","text":"present, new cluster one queue general use, called AllNodes containing, says, available compute nodes. times though, workshops example run Training queue, strict limits, ensure ’ve capacity demonstrate cluster use live setting. also may necessary future partition set nodes, either capabilities becomes significant users, research group might purchased , allow particular group protected access period. ’s see queues, choose one, using example cluster. , pass resources task_create_ functions.","code":"hipercow_cluster_info()$resources$queues #> [1] \"alltasks\" \"bigmem\" \"fast\" resources <- hipercow_resources(queue = \"bigmem\")"},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"selecting-by-node-names","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks > Running on specific nodes","what":"Selecting by node names","title":"Parallel Tasks","text":"Even rarely, may particular named node want run . past, instance, specific nodes unique hardware (large RAM large disks). occasionally, may want try replicate failure rerunning task using node failure occurred. , using example cluster, can set requested_nodes argument, :- , resources gets passed one task_create_ functions.","code":"hipercow_cluster_info()$resources$nodes #> [1] \"node-1\" \"node-2\" \"gpu-3\" \"gpu-4\" resources <- hipercow_resources( requested_nodes = c(\"gpu-3\", \"gpu-4\"))"},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"task-time-limits-and-scheduling","dir":"Articles","previous_headings":"","what":"Task time limits and scheduling","title":"Parallel Tasks","text":"clusters years essentially run basis good , rather many limits long tasks can run , much resource can use. fairly small department, nice way work, meaning can usually get resources need, even needs quite demanding period time. Usage fluctuates depending deadlines development cycle projects. relatively rare many people projects demanding needs time, capacity cluster becomes problematic. needs coincide, resolve mainly communication, rather cluster rules. said, hipercow offers options limiting long tasks can run , specifying tasks can run cluster, also allows politely allow tasks take priority . know long tasks take, potential future priorities smaller faster tasks ahead larger slower ones.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"the-maximum-runtime","dir":"Articles","previous_headings":"Task time limits and scheduling","what":"The maximum runtime","title":"Parallel Tasks","text":"know long task take, ’d like abort takes longer, use max_runtime argument requesting resources. can specify integer number minutes, strings involving letters d, h m, days, hours minutes, \"40d” \"1h30\". might useful stochastic fitting tasks might converging, ’d like time limit tasks aborted. perhaps task ’d like run check early stages look good.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"delaying-tasks-starting","dir":"Articles","previous_headings":"Task time limits and scheduling","what":"Delaying tasks starting","title":"Parallel Tasks","text":"launch large number time consuming tasks, crucially urgent, may helpful others start running cluster outside working hours. can setting hold_until argument hipercow_resources. number formats allowed:- integer represents number minutes. Strings form \"5h\" \"1h30\" \"2d\" can delay hours, minutes days. R’s Date type can used indicate midnight given date. R’s POSIXt type date time represented. \"tonight\" makes task wait 7pm evening starting. \"midnight\" delays task tomorrow begins. \"weekend\" delays task midnight Saturday.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"lowering-your-priority","dir":"Articles","previous_headings":"Task time limits and scheduling","what":"Lowering your priority","title":"Parallel Tasks","text":"launch large number tasks, another way polite colleagues set priority = \"low\" hipercow_resources. allows tasks lower queue normal priority overtake low priority tasks run available resources first. Effectively, means can launch large volumes tasks without annoying people, getting available resources, without holding others much also need something run. never causes running tasks get cancelled; relevant available resources node scheduler consider tasks allocate resources . Therefore, low priority works best additionally tasks don’t take long run, reasonably frequent opportunities scheduler decide .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"local-installations","dir":"Articles","previous_headings":"","what":"Local installations","title":"Using stan","text":"rstan package available CRAN historically lagged releases available directly stan developers. can install rstan CRAN cmdstanr needs installed stan repo. time writing, links official documentation: rstan cmdstanr need install suitable C++ toolchain. Please refer stan docs details , aware information found StackOverflow stan discussion forums often date. usually need moderately recent version R, .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"cmdstan-on-the-cluster","dir":"Articles","previous_headings":"","what":"CmdStan on the cluster","title":"Using stan","text":"CmdStan interface compiles stan programs standalone executables, somewhat isolates stan Rtools toolchain. newer approach using rstan. two parts ; cmdstanr R package CmdStan executables.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"installation-and-versions","dir":"Articles","previous_headings":"CmdStan on the cluster","what":"Installation and versions","title":"Using stan","text":"version package use machine important instructions (though may important depending model compiling). cluster, need install recent version cmdstanr (0.8.1 newer, released 6 June 2024), available stan repositories. pkgdepends.txt contain: (sure use https://mc-stan.org/r-packages repo, still widely noted documentation ships older versions, broken.) currently support CmdStan version 2.35.0 - like support multiple versions , internal gymnastics cmdstanr make quite hard . Please let us know need specific version different whatever installed, install update instructions can select . easy make mess cluster following instructions stan developers assume user machine, stan main piece software interested running. especially case follow instructions found StackOverflow may refer previous versions. fallout restricted working space though. Within hipercow task, please run: cmdstanr::install_cmdstan: install 1GB small files onto network shares. need specific version please let us know make one available cmdstanr::check_cmdstan_toolchain(fix = TRUE): sorts damage, including corrupting Rtools installation need install packages","code":"repo::https://stan-dev.r-universe.dev cmdstanr"},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"compiling-models","dir":"Articles","previous_headings":"CmdStan on the cluster","what":"Compiling models","title":"Using stan","text":"use cmdstandr::cmdstan_model() generate file directory .stan file. fine laptop, poor choice almost context, especially might submit one job time (, given using cluster, probably ). ’ll need pass path dir every call cmdstanr::cmdstan_model() - unfortunately ’s way automatically. rather can use Using tempdir() guarantees every process starts use different directory, won’t think much. two issues mitigated : toolchain used compile stan models differs laptop cluster (true using different operating system, minor version R, different version Rtools, different version cmdstanr) model compiled machine work cluster, perhaps difficult--diagnose errors. launch two tasks cluster, every job try compile model time, try write file. one tasks succeed, others failing due permissions issues (windows write file open). (potentially large) downside using tempdir() every time start task uses stan program compile . Even simple program quite slow (say two minutes “hello world” type problem). deciding going cause issues, think long take run code. ’s going run hour, delay may tolerable. However, program fast compiled, might become significant issue. want reuse models need way () hipercow tasks reuse compiled models (b) task tries recompile model created. might explore something like first submitting task runs (creating models-hipercow directory, stan error yet exist, won’t create ). task completes successfully submitting series tasks use model. include exact statement load model. appears mechanism either prevent compilation (can pass compile = FALSE model unusable, even compiled), test see model date. can probably get away : can use place cmdstanr::cmdstan_model, though behave expected models include files. Good luck.","code":"mod <- cmdstanr::cmdstan_model(\"model.stan\") mod <- cmdstanr::cmdstan_model(\"model.stan\", dir = tempdir()) mod <- cmdstanr::cmdstan_model(\"model.stan\", dir = \"models-hipercow\") cmdstan_model_but_dont_recompile <- function(path, dir = \".\", ...) { path_exe <- file.path(dir, paste0(path, \".exe\")) is_current <- file.exists(path_exe) && file.info(path_exe)$mtime > file.info(path)$mtime if (!is_current) { stop(sprintf(\"stan model '%s' at '%s' is out of date!\", path, dir)) } cmdstanr::cmdstan_model(path, exe_file = NULL, compile = TRUE, dir = dir, ...) }"},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"a-worked-example","dir":"Articles","previous_headings":"CmdStan on the cluster","what":"A worked example","title":"Using stan","text":"example designed partly can test everything works, may ask run difficulty. Start basic hipercow--windows setup: simple stan model code.stan: little wrapper around , code.R, compiles model draws samples: need add code.R default environment: provision.txt : Install everything hipercow_provision usual Now can run stan task (need decent timeout compilation can slow): logs stan task, hopefully worked , . Note drawing samples took little time (look last bit stan output) compared total time taken task (see last line hipercow output). compilation models succeeds, remains much easier job using model amazing science.","code":"library(hipercow) hipercow_init(driver = \"windows\") #> ✔ Initialised hipercow at '.' #> ✔ Configured hipercow to use 'windows' data { int
, memory
, time
, gc
resources <- hipercow_resources(memory_per_node = \"256G\", exclusive = TRUE, cores = 8)"},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"specifying-which-nodes-should-run-your-tasks","dir":"Articles","previous_headings":"","what":"Specifying which nodes should run your tasks","title":"Parallel Tasks","text":"’ve already set number cores task needs, one way might limit nodes capable running task. Additionally, specific memory requirements tasks, specific queue run tasks , even specific nodes run , can specified arguments hipercow_resources several different ways, outline .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"memory-requests","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks","what":"Memory requests","title":"Parallel Tasks","text":"Two methods currently provided specifying memory usage. can specified integer number gigabytes, alternative strings \"64G” \"1T\" represent 64Gb, 1Tb respectively. memory_per_node specifies simply task run node least much memory. Remember node’s memory shared tasks running node, also consider specifying cores = Inf, exclusive = TRUE think ’ll need whole node’s memory . launching many tasks, know maximum memory task needs, can specify memory_per_process tell cluster . cluster avoid allocating many tasks node, combined memory needed tasks exceed node . can’t really guaranteed, unless everyone agrees set memory_per_process, help common case tasks might stacked node together.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"running-on-specific-nodes","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks","what":"Running on specific nodes","title":"Parallel Tasks","text":"present, nodes new cluster similar , partitioning nodes users groups. free--, little variation specification nodes. may change time, cluster grows, user base grows. future, may nodes, queues nodes, appropriate tasks others, either specification, groups priority access nodes may purchased, example. ’ve already noted specifying cores memory requirements cause tasks run node meeting requirements. Additionally, can explicitly say tasks submitted particular queue, tasks run particular named nodes. See .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"selecting-by-queue","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks > Running on specific nodes","what":"Selecting by queue","title":"Parallel Tasks","text":"present, new cluster one queue general use, called AllNodes containing, says, available compute nodes. times though, workshops example run Training queue, strict limits, ensure ’ve capacity demonstrate cluster use live setting. also may necessary future partition set nodes, either capabilities becomes significant users, research group might purchased , allow particular group protected access period. ’s see queues, choose one, using example cluster. , pass resources task_create_ functions.","code":"hipercow_cluster_info()$resources$queues #> [1] \"alltasks\" \"bigmem\" \"fast\" resources <- hipercow_resources(queue = \"bigmem\")"},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"selecting-by-node-names","dir":"Articles","previous_headings":"Specifying which nodes should run your tasks > Running on specific nodes","what":"Selecting by node names","title":"Parallel Tasks","text":"Even rarely, may particular named node want run . past, instance, specific nodes unique hardware (large RAM large disks). occasionally, may want try replicate failure rerunning task using node failure occurred. , using example cluster, can set requested_nodes argument, :- , resources gets passed one task_create_ functions.","code":"hipercow_cluster_info()$resources$nodes #> [1] \"node-1\" \"node-2\" \"gpu-3\" \"gpu-4\" resources <- hipercow_resources( requested_nodes = c(\"gpu-3\", \"gpu-4\"))"},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"task-time-limits-and-scheduling","dir":"Articles","previous_headings":"","what":"Task time limits and scheduling","title":"Parallel Tasks","text":"clusters years essentially run basis good , rather many limits long tasks can run , much resource can use. fairly small department, nice way work, meaning can usually get resources need, even needs quite demanding period time. Usage fluctuates depending deadlines development cycle projects. relatively rare many people projects demanding needs time, capacity cluster becomes problematic. needs coincide, resolve mainly communication, rather cluster rules. said, hipercow offers options limiting long tasks can run , specifying tasks can run cluster, also allows politely allow tasks take priority . know long tasks take, potential future priorities smaller faster tasks ahead larger slower ones.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"the-maximum-runtime","dir":"Articles","previous_headings":"Task time limits and scheduling","what":"The maximum runtime","title":"Parallel Tasks","text":"know long task take, ’d like abort takes longer, use max_runtime argument requesting resources. can specify integer number minutes, strings involving letters d, h m, days, hours minutes, \"40d” \"1h30\". might useful stochastic fitting tasks might converging, ’d like time limit tasks aborted. perhaps task ’d like run check early stages look good.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"delaying-tasks-starting","dir":"Articles","previous_headings":"Task time limits and scheduling","what":"Delaying tasks starting","title":"Parallel Tasks","text":"launch large number time consuming tasks, crucially urgent, may helpful others start running cluster outside working hours. can setting hold_until argument hipercow_resources. number formats allowed:- integer represents number minutes. Strings form \"5h\" \"1h30\" \"2d\" can delay hours, minutes days. R’s Date type can used indicate midnight given date. R’s POSIXt type date time represented. \"tonight\" makes task wait 7pm evening starting. \"midnight\" delays task tomorrow begins. \"weekend\" delays task midnight Saturday.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/parallel.html","id":"lowering-your-priority","dir":"Articles","previous_headings":"Task time limits and scheduling","what":"Lowering your priority","title":"Parallel Tasks","text":"launch large number tasks, another way polite colleagues set priority = \"low\" hipercow_resources. allows tasks lower queue normal priority overtake low priority tasks run available resources first. Effectively, means can launch large volumes tasks without annoying people, getting available resources, without holding others much also need something run. never causes running tasks get cancelled; relevant available resources node scheduler consider tasks allocate resources . Therefore, low priority works best additionally tasks don’t take long run, reasonably frequent opportunities scheduler decide .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"local-installations","dir":"Articles","previous_headings":"","what":"Local installations","title":"Using stan","text":"rstan package available CRAN historically lagged releases available directly stan developers. can install rstan CRAN cmdstanr needs installed stan repo. time writing, links official documentation: rstan cmdstanr need install suitable C++ toolchain. Please refer stan docs details , aware information found StackOverflow stan discussion forums often date. usually need moderately recent version R, .","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"cmdstan-on-the-cluster","dir":"Articles","previous_headings":"","what":"CmdStan on the cluster","title":"Using stan","text":"CmdStan interface compiles stan programs standalone executables, somewhat isolates stan Rtools toolchain. newer approach using rstan. two parts ; cmdstanr R package CmdStan executables.","code":""},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"installation-and-versions","dir":"Articles","previous_headings":"CmdStan on the cluster","what":"Installation and versions","title":"Using stan","text":"version package use machine important instructions (though may important depending model compiling). cluster, need install recent version cmdstanr (0.8.1 newer, released 6 June 2024), available stan repositories. pkgdepends.txt contain: (sure use https://mc-stan.org/r-packages repo, still widely noted documentation ships older versions, broken.) currently support CmdStan version 2.35.0 - like support multiple versions , internal gymnastics cmdstanr make quite hard . Please let us know need specific version different whatever installed, install update instructions can select . easy make mess cluster following instructions stan developers assume user machine, stan main piece software interested running. especially case follow instructions found StackOverflow may refer previous versions. fallout restricted working space though. Within hipercow task, please run: cmdstanr::install_cmdstan: install 1GB small files onto network shares. need specific version please let us know make one available cmdstanr::check_cmdstan_toolchain(fix = TRUE): sorts damage, including corrupting Rtools installation need install packages","code":"repo::https://stan-dev.r-universe.dev cmdstanr"},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"compiling-models","dir":"Articles","previous_headings":"CmdStan on the cluster","what":"Compiling models","title":"Using stan","text":"use cmdstandr::cmdstan_model() generate file directory .stan file. fine laptop, poor choice almost context, especially might submit one job time (, given using cluster, probably ). ’ll need pass path dir every call cmdstanr::cmdstan_model() - unfortunately ’s way automatically. rather can use Using tempdir() guarantees every process starts use different directory, won’t think much. two issues mitigated : toolchain used compile stan models differs laptop cluster (true using different operating system, minor version R, different version Rtools, different version cmdstanr) model compiled machine work cluster, perhaps difficult--diagnose errors. launch two tasks cluster, every job try compile model time, try write file. one tasks succeed, others failing due permissions issues (windows write file open). (potentially large) downside using tempdir() every time start task uses stan program compile . Even simple program quite slow (say two minutes “hello world” type problem). deciding going cause issues, think long take run code. ’s going run hour, delay may tolerable. However, program fast compiled, might become significant issue. want reuse models need way () hipercow tasks reuse compiled models (b) task tries recompile model created. might explore something like first submitting task runs (creating models-hipercow directory, stan error yet exist, won’t create ). task completes successfully submitting series tasks use model. include exact statement load model. appears mechanism either prevent compilation (can pass compile = FALSE model unusable, even compiled), test see model date. can probably get away : can use place cmdstanr::cmdstan_model, though behave expected models include files. Good luck.","code":"mod <- cmdstanr::cmdstan_model(\"model.stan\") mod <- cmdstanr::cmdstan_model(\"model.stan\", dir = tempdir()) mod <- cmdstanr::cmdstan_model(\"model.stan\", dir = \"models-hipercow\") cmdstan_model_but_dont_recompile <- function(path, dir = \".\", ...) { path_exe <- file.path(dir, paste0(path, \".exe\")) is_current <- file.exists(path_exe) && file.info(path_exe)$mtime > file.info(path)$mtime if (!is_current) { stop(sprintf(\"stan model '%s' at '%s' is out of date!\", path, dir)) } cmdstanr::cmdstan_model(path, exe_file = NULL, compile = TRUE, dir = dir, ...) }"},{"path":"https://mrc-ide.github.io/hipercow/articles/stan.html","id":"a-worked-example","dir":"Articles","previous_headings":"CmdStan on the cluster","what":"A worked example","title":"Using stan","text":"example designed partly can test everything works, may ask run difficulty. Start basic hipercow--windows setup: simple stan model code.stan: little wrapper around , code.R, compiles model draws samples: need add code.R default environment: provision.txt : Install everything hipercow_provision usual Now can run stan task (need decent timeout compilation can slow): logs stan task, hopefully worked , . Note drawing samples took little time (look last bit stan output) compared total time taken task (see last line hipercow output). compilation models succeeds, remains much easier job using model amazing science.","code":"library(hipercow) hipercow_init(driver = \"windows\") #> ✔ Initialised hipercow at '.' #> ✔ Configured hipercow to use 'windows' data { int