Prune User's Manual

Last edited: May 2015

Prune is Copyright (C) 2003-2004 Douglas Thain and Copyright (C) 2005- The University of Notre Dame.
All rights reserved.
This software is distributed under the GNU General Public License.
See the file COPYING for details.

Overview

Prune is a system for executing and precisely preserving scientific workflows. Collaborators can verifiy research results and easily extend them at a granularity that makes sense to users, since the granularity was determined by a user.

Commands

The following basic commands are fundamental to PRUNE:

Functions are currently defined within a script file (which is PUT in the system) to define the types of arguments the script expects and the output files that should be preserved.
Ex. #PRUNE_INPUTS File File Text
Ex. #PRUNE_OUTPUT outfile1.txt
Ex. #PRUNE_OUTPUT outfile2.txt

Additional commands

The following commands are also available for convenience:

Notes

When PRUNE is started using the "prune" executable, an interface becomes available for the user to type commands. Ctrl-C will terminate PRUNE and upon restarting any previously running tasks revert to the "Run" status.

The user will be initially prompted to specify locations for a database file, data folder, and sandbox folder. This meta-data will be stored in the working directory as a file named .prune.conf for PRUNE to use later.

Example: Merge Sort

Here is a full example of a merge sort in PRUNE:

$ prune $ PUT sort.sh AS sort $ PUT merge.sh AS merge $ PUT nouns.txt AS nouns $ PUT verbs.txt AS verbs $ n = sort(nouns) $ v = sort(verbs) $ merged_result = merge(n,v) $ USE wq prune Work Queue master started on port 9001 with name 'prune'... $ WORK ... PRUNE finished work in: 01m16s $ GET merged_result AS test.txt

Contents of the file "sort.sh":

#!/bin/bash #PRUNE_INPUTS File #PRUNE_OUTPUT sorted_data.txt sort $1 > sorted_data.txt

Contents of the file "merge.sh":

#!/bin/bash #PRUNE_INPUTS File* #PRUNE_OUTPUT merged_output.txt sort -m $@ > merged_output.txt