Index: python/aubio/bench/broadcast.py
===================================================================
--- python/aubio/bench/broadcast.py	(revision 4cc9fe5d89c4e4281cf9015429bd92e9773c1ea1)
+++ python/aubio/bench/broadcast.py	(revision 4cc9fe5d89c4e4281cf9015429bd92e9773c1ea1)
@@ -0,0 +1,25 @@
+from config import *
+
+class run_broadcast:
+        def __init__(self,command,*args):
+                for host in REMOTEHOSTS:
+                        command(host,args[0],args[1:])
+
+def remote_sync(host,path='',options=''):
+        optstring = ''
+        for i in options:
+                optstring = "%s %s" % (optstring,i)
+        print RSYNC_CMD,optstring,RSYNC_OPT,' --delete', 
+        print '%s%s%s%s%s' % (path,'/ ',host,':',path)
+
+
+def fetch_results(host,path='',options=''):
+        optstring = ''
+        for i in options:
+                optstring = "%s %s" % (optstring,i)
+        print RSYNC_CMD,optstring,RSYNC_OPT,' --update', 
+        print '%s%s%s%s%s' % (host,':',path,'/ ',path)
+
+def remote_queue(host,command,options=''):
+        print 'oarsub -p "hostname = \'',host,'\'',command
+        
Index: python/aubio/bench/config.py
===================================================================
--- python/aubio/bench/config.py	(revision 4cc9fe5d89c4e4281cf9015429bd92e9773c1ea1)
+++ python/aubio/bench/config.py	(revision 4cc9fe5d89c4e4281cf9015429bd92e9773c1ea1)
@@ -0,0 +1,21 @@
+
+filefound = 0
+try:
+        filename = "/etc/aubio-bench.conf"
+        execfile(filename)
+        filefound = 1
+except IOError:
+        print "no system wide configuration file found in", filename
+
+try:
+        import os
+        filename = "%s%s%s" % (os.getenv('HOME'),os.sep,".aubio-bench.conf")
+        execfile(filename)
+        filefound = 1
+except IOError:
+        print "no user configuration file found in", filename
+
+if filefound == 0:
+        import sys
+        print "error: no configuration file found at all"
+        sys.exit(1)
Index: python/aubio/bench/node.py
===================================================================
--- python/aubio/bench/node.py	(revision 4cc9fe5d89c4e4281cf9015429bd92e9773c1ea1)
+++ python/aubio/bench/node.py	(revision 4cc9fe5d89c4e4281cf9015429bd92e9773c1ea1)
@@ -0,0 +1,48 @@
+from config import *
+import commands,sys
+import re
+
+def runcommand(cmd,debug=0):
+        if VERBOSE >= VERBOSE_CMD or debug: print cmd
+        if debug: return 
+        status, output = commands.getstatusoutput(cmd)
+        if status == 0 or VERBOSE >= VERBOSE_OUT:
+                output = output.split('\n')
+        if VERBOSE >= VERBOSE_OUT: 
+                for i in output: 
+                        if i: print i
+        if not status == 0: 
+                print 'error:',status,output
+                print 'command returning error was',cmd
+                sys.exit(1)
+        return output 
+
+def list_files(datapath,filter='f'):
+        cmd = '%s%s%s%s' % ('find ',datapath,' -type ',filter)
+        return runcommand(cmd)
+
+def mkdir(path):
+        cmd = '%s%s' % ('mkdir -p ',path)
+        return runcommand(cmd)
+
+def act_on_data (action,datapath,respath,suffix='.txt',filter='f'):
+        """ execute action(datafile,resfile) on all files in datapath """
+        dirlist = list_files(datapath,filter=filter)
+        respath_in_datapath = re.split(datapath, respath,maxsplit=1)[1:]
+        if(respath_in_datapath and suffix == ''): 
+                print 'error: respath in datapath and no suffix used'
+                sys.exit(1)
+        for i in dirlist:
+                s = re.split(datapath, i,maxsplit=1)[1]
+                j = "%s%s%s%s"%(respath,'/',s,suffix)
+                action(i,j)
+
+def act_on_results (action,datapath,respath,filter='d'):
+        """ execute action(respath) an all subdirectories in respath """
+        dirlist = list_files(datapath,filter='d')
+        respath_in_datapath = re.split(datapath, respath,maxsplit=1)[1:]
+        if(respath_in_datapath and not filter == 'd' and suffix == ''): 
+                print 'warning: respath is in datapath'
+        for i in dirlist:
+                s = re.split(datapath, i ,maxsplit=1)[1]
+                action("%s%s%s"%(respath,'/',s))
