Hello World Example¶
We present a simple example based on several ‘Hello world’ workflows. First, we present the workflows and signatures for all rmodes and discuss how they compare.
Hello World Bash¶
This workflow is comprised of a bash script, writing text to a file - Specifically echo ‘Hello World’ > %o0
Hello World Python¶
This workflow is comprised of a single python script and a file. This function writes ‘Hello World’ to the linked file.
Hello Everybody Python¶
This workflow is again comprised of a single python script and file. This function writes ‘Hello Everybody’ to the linked file.
Signature Comparisons¶
By comparing the hashes of each workflow together, we arrive at the following conclusions:
Workflow |
Rerun |
Repeat |
Recompute |
Reproduce |
Replicate-SCI |
Replicate-COMP |
Replicate-TOTAL |
---|---|---|---|---|---|---|---|
HelloWorldBash |
d35a6ee278dad22b202cc092547022abe8643cb22fe262688e97ed56cdc1a47d |
86a5208e9c19113c10c564e36cd628b500b25de75a082fe979b10dd42fe39802 |
598523833e3249da2ae2e25e5caccb2694df84f9ca47085dfb20b6ebe95d30fc |
dd5d192134999d48ab9098844be9b882416eb90ee8965ed18376fc6dfabb2bec |
dd5ecdba2c1a92ed44f8e28c82e6156976b6e7e50941ad3746ab426a364e200b |
241153dbbc3534409fe89f9a0d1a16a0dd50e33f84b51fc860a6ab6400bc2dfc |
ccede91165ea6e95c82ce446d2972124c8ec956d3a12b372b94cabfa7740071c |
HelloWorldPython |
6413ca52dc807b4d9d8f0dc60f6f9d939ba363d86410ede1557a89c2d252e3d2 |
92e9988ae3cef11b2af935960d0de7feae78ca84938bbdb2f1d0b45e4b3f9ee7 |
3f4f23133903dfb2a5842468ef01ffb266ccd1051d3ed55f4c4fac558a8c97e0 |
dd5d192134999d48ab9098844be9b882416eb90ee8965ed18376fc6dfabb2bec |
dc8210e4dc1c4eec7248a9016a0d28e8032c3f56010bee4a9bf314c1e13bd69a |
04a540a06942b11dafcc9bb67a85bbdae0752024a358251a919a363d100aa856 |
2c9970ebdf2a6a4581cb2e728cf3187d3c1954146967d1724ffae5a0dddfc4b1 |
HelloEverybodyPython |
6413ca52dc807b4d9d8f0dc60f6f9d939ba363d86410ede1557a89c2d252e3d2 |
3c162ec8c42182f99643e70ba2b6a0f205f1ee36a9ab70b7af9a76badae97b03 |
7ad483dea703f6aa6587fc9c05acfe398d8a03201990ba6a42d274bc7fb978ac |
ee0d0784c46b04dc1c1578fde0c1be655ea91c1d03d9267f9888f1d45ba8985d |
24558387b6066205b7b1483dfd12954bdb5b5a0fa755c58d82c3a69e574a4914 |
383fabf6d17a0119514ade3cd53b13ff83f16f3d290db6e9070f1e12cdc6c2d1 |
09e94a24c000098fe03d58a483c16768d37bd4574303abd1a84a91a9f9179631 |
HelloEverybodyPython and HelloWorldPython are Reruns
No two workflows are repetitions
No two workflows are recomputations
HelloWorldBash and HelloWorldPython reproduce the same results
No two workflows are replicas.
Testing for repetitions is primarily useful when examining stochastic workflows to take their results in concert with confidence. Testing or replicas is useful when moving between deployment environments or verifying the validity of a workflow. When debugging a workflow or asserting if the computing environment has changed, recomputations and computational replicas are of particular use.
This simple example scratches the surface of what is possible with a robust workflow signature scheme.