SSH to worker node, remove previous working dir, copy benchmark in, unpack and run. The redirect allows ssh to return leaving benchmark to run. Results are emailed and put in directory on benchmarked node. [root@msurxx ~]# ssh cc-119-3 'rm -rf /tmp/hepspec06; cp -a /share/apps/hepspec06 /tmp; cd /tmp/hepspec06; tar zxf spec2k6-2.23.tar.gz; ./runspec-aglt2.sh > runspec-aglt2.out 2>&1 < /dev/null &' As above, but only run on 1 CPU [root@msurxx ~]# ssh cc-119-3 'rm -rf /tmp/hepspec06; cp -a /share/apps/hepspec06 /tmp; cd /tmp/hepspec06; tar zxf spec2k6-2.23.tar.gz; ./runspec-aglt2.sh -n 1 > runspec-aglt2.out 2>&1 /dev/null < /dev/null &' Specify where to send summary email [root@msurxx ~]# ssh cc-119-3 'rm -rf /tmp/hepspec06; cp -a /share/apps/hepspec06 /tmp; cd /tmp/hepspec06; tar zxf spec2k6-2.23.tar.gz; ./runspec-aglt2.sh -n 1 -e rockwell@pa.msu.edu > runspec-aglt2.out 2>&1 < /dev/null &' Using xargs; cat'd file lists nodes to benchmark [root@msurxx ~]# cat ~/nodes/rack110.txt | xargs -I QQQ -t ssh QQQ 'rm -rf /tmp/hepspec06; cp -a /share/apps/hepspec06 /tmp; cd /tmp/hepspec06; tar zxf spec2k6-2.23.tar.gz; ./runspec-aglt2.sh > runspec-aglt2.out 2>&1 < /dev/null &' Retrieve results: [root@msurxx ~]# mkdir /tmp/hs06-results [root@msurxx ~]# cd /tmp/hs06-results [root@msurxx hs06-results]# cat ~/nodes/rack110.txt | xargs -I QQQ -t scp QQQ:/tmp/hepspec06/spec2k6-c-1*/system.txt QQQ.system.txt List the results: [root@msurxx hs06-results]# grep Result: * | sort -n cc-110-10.msulocal.system.txt:Result: 198.30 cc-110-13.msulocal.system.txt:Result: 201.39 cc-110-14.msulocal.system.txt:Result: 201.20 cc-110-15.msulocal.system.txt:Result: 197.14 and/or you could pull the tarballs: [root@msurxx hs06-results]# cat ~/nodes/rack110.txt | xargs -I QQQ -t scp QQQ:/tmp/hepspec06/spec2k6-c-110-*tar.gz .