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

../../_images/HelloWorldBash.png

Hello World Python

This workflow is comprised of a single python script and a file. This function writes ‘Hello World’ to the linked file.

../../_images/HelloWorldPython.png

Hello Everybody Python

This workflow is again comprised of a single python script and file. This function writes ‘Hello Everybody’ to the linked file.

../../_images/HelloEverybodyPython.png

Signature Comparisons

By comparing the hashes of each workflow together, we arrive at the following conclusions:

Table 1 Workflow Hashes

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.