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.