about summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorArun Isaac2023-11-14 22:18:38 +0000
committerArun Isaac2023-11-14 22:52:03 +0000
commit060ddf677d01e408c7a49791150bfd24b76416e0 (patch)
treed32a9fed56fb06d944a4d9b8bbdd6414b54168d5 /doc
parent7a43162925dffeb6cc1a70cfe6297f9ae62427a3 (diff)
downloadccwl-060ddf677d01e408c7a49791150bfd24b76416e0.tar.gz
ccwl-060ddf677d01e408c7a49791150bfd24b76416e0.tar.lz
ccwl-060ddf677d01e408c7a49791150bfd24b76416e0.zip
ccwl: Implement scatter.
* ccwl/ccwl.scm (<step>): Wrap constructor make-step.
[scattered-inputs, scatter-method]: New fields.
(collect-scatter-step): New function.
(collect-steps): Implement scatter.
(key->output): If step scatters, convert output to an array type.
(workflow): Add syntax to initialize scattered-inputs and
scatter-method fields of <step> object.
* ccwl/cwl.scm (workflow->cwl-scm): Add ScatterFeatureRequirement if
workflow contains scattering steps. Serialize scattered-inputs and
scatter-method.
* doc/ccwl.skb (Cookbook)[Scatter/gather]: New section.
Diffstat (limited to 'doc')
-rw-r--r--doc/ccwl.skb7
1 files changed, 7 insertions, 0 deletions
diff --git a/doc/ccwl.skb b/doc/ccwl.skb
index 69e5a38..2e84d58 100644
--- a/doc/ccwl.skb
+++ b/doc/ccwl.skb
@@ -332,6 +332,13 @@ to ,(emph "stage") the input file into the output directory. We may
 express this in ccwl using the ,(code "#:stage?") parameter to the
 inputs to be staged. Here is a rather concocted example.]
          (scheme-source "doc/staging-input-files.scm")))
+    (section :title [Scatter/gather]
+      (p [ccwl supports CWL's dotproduct scatter/gather feature using
+the following syntax. Here, the ,(code [other-messages]) input to the
+workflow is an array of strings that is scattered over the ,(code
+[print]) step. Each run of the ,(code [print]) step gets an element of
+,(code [other-messages]) as its ,(code [other-message]) argument.]
+         (scheme-source "doc/scatter-gather.scm")))
     (section :title [Reuse external CWL workflows]
       (p [Even though you may be a ccwl convert (hurrah!), others may
 not be. And, you might have to work with CWL workflows written by