[Swift-commit] r6430 - in branches/release-0.94/tests: groups stress stress/IO stress/IO/i1 stress/IO/i2 stress/apps stress/apps/data stress/apps/modis_beagle stress/apps/modis_local stress/apps/modis_midway stress/apps/modis_multiple stress/apps/modis_uc3 stress/internals
yadunandb at ci.uchicago.edu
yadunandb at ci.uchicago.edu
Thu Apr 11 15:29:13 CDT 2013
Author: yadunandb
Date: 2013-04-11 15:29:12 -0500 (Thu, 11 Apr 2013)
New Revision: 6430
Added:
branches/release-0.94/tests/groups/group-stress-heavy.sh
branches/release-0.94/tests/groups/group-stress-midway.sh
branches/release-0.94/tests/stress/IO/
branches/release-0.94/tests/stress/IO/i1/
branches/release-0.94/tests/stress/IO/i1/cf
branches/release-0.94/tests/stress/IO/i1/filegen.sh
branches/release-0.94/tests/stress/IO/i1/gendata.pl
branches/release-0.94/tests/stress/IO/i1/i1.kml
branches/release-0.94/tests/stress/IO/i1/i1.swift
branches/release-0.94/tests/stress/IO/i1/i1.swiftx
branches/release-0.94/tests/stress/IO/i1/input/
branches/release-0.94/tests/stress/IO/i1/run
branches/release-0.94/tests/stress/IO/i1/sites.xml
branches/release-0.94/tests/stress/IO/i1/sites.xml.bak
branches/release-0.94/tests/stress/IO/i1/sumall.pl
branches/release-0.94/tests/stress/IO/i1/tc
branches/release-0.94/tests/stress/IO/i2/
branches/release-0.94/tests/stress/IO/i2/cf
branches/release-0.94/tests/stress/IO/i2/filegen.sh
branches/release-0.94/tests/stress/IO/i2/gendata.pl
branches/release-0.94/tests/stress/IO/i2/i1.kml
branches/release-0.94/tests/stress/IO/i2/i1.swift
branches/release-0.94/tests/stress/IO/i2/i1.swiftx
branches/release-0.94/tests/stress/IO/i2/input/
branches/release-0.94/tests/stress/IO/i2/run
branches/release-0.94/tests/stress/IO/i2/sites.xml
branches/release-0.94/tests/stress/IO/i2/sites.xml.bak
branches/release-0.94/tests/stress/IO/i2/sumall.pl
branches/release-0.94/tests/stress/IO/i2/tc
branches/release-0.94/tests/stress/apps/
branches/release-0.94/tests/stress/apps/data/
branches/release-0.94/tests/stress/apps/data/t0
branches/release-0.94/tests/stress/apps/data/t1
branches/release-0.94/tests/stress/apps/data/t2
branches/release-0.94/tests/stress/apps/data/t3
branches/release-0.94/tests/stress/apps/data/t4
branches/release-0.94/tests/stress/apps/data/t5
branches/release-0.94/tests/stress/apps/data/t6
branches/release-0.94/tests/stress/apps/data/t7
branches/release-0.94/tests/stress/apps/data/t8
branches/release-0.94/tests/stress/apps/data/t9
branches/release-0.94/tests/stress/apps/get.sh
branches/release-0.94/tests/stress/apps/modis_beagle/
branches/release-0.94/tests/stress/apps/modis_beagle/clean
branches/release-0.94/tests/stress/apps/modis_beagle/getlanduse.pl
branches/release-0.94/tests/stress/apps/modis_beagle/input/
branches/release-0.94/tests/stress/apps/modis_beagle/makeinput
branches/release-0.94/tests/stress/apps/modis_beagle/modis.args
branches/release-0.94/tests/stress/apps/modis_beagle/modis.kml
branches/release-0.94/tests/stress/apps/modis_beagle/modis.setup.sh
branches/release-0.94/tests/stress/apps/modis_beagle/modis.swift
branches/release-0.94/tests/stress/apps/modis_beagle/modis.timeout
branches/release-0.94/tests/stress/apps/modis_beagle/run
branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml
branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml.bak
branches/release-0.94/tests/stress/apps/modis_beagle/swift.properties
branches/release-0.94/tests/stress/apps/modis_beagle/tc.template.data
branches/release-0.94/tests/stress/apps/modis_beagle/title.txt
branches/release-0.94/tests/stress/apps/modis_local/
branches/release-0.94/tests/stress/apps/modis_local/clean
branches/release-0.94/tests/stress/apps/modis_local/getlanduse.pl
branches/release-0.94/tests/stress/apps/modis_local/makeinput
branches/release-0.94/tests/stress/apps/modis_local/modis.args
branches/release-0.94/tests/stress/apps/modis_local/modis.setup.sh
branches/release-0.94/tests/stress/apps/modis_local/modis.swift
branches/release-0.94/tests/stress/apps/modis_local/modis.timeout
branches/release-0.94/tests/stress/apps/modis_local/run
branches/release-0.94/tests/stress/apps/modis_local/sites.template.xml
branches/release-0.94/tests/stress/apps/modis_local/swift.properties
branches/release-0.94/tests/stress/apps/modis_local/tc.template.data
branches/release-0.94/tests/stress/apps/modis_local/title.txt
branches/release-0.94/tests/stress/apps/modis_midway/
branches/release-0.94/tests/stress/apps/modis_midway/clean
branches/release-0.94/tests/stress/apps/modis_midway/getlanduse.pl
branches/release-0.94/tests/stress/apps/modis_midway/makeinput
branches/release-0.94/tests/stress/apps/modis_midway/modis.args
branches/release-0.94/tests/stress/apps/modis_midway/modis.setup.sh
branches/release-0.94/tests/stress/apps/modis_midway/modis.swift
branches/release-0.94/tests/stress/apps/modis_midway/modis.timeout
branches/release-0.94/tests/stress/apps/modis_midway/run
branches/release-0.94/tests/stress/apps/modis_midway/sandyb.xml
branches/release-0.94/tests/stress/apps/modis_midway/sites.template.xml
branches/release-0.94/tests/stress/apps/modis_midway/swift.properties
branches/release-0.94/tests/stress/apps/modis_midway/tc.template.data
branches/release-0.94/tests/stress/apps/modis_midway/title.txt
branches/release-0.94/tests/stress/apps/modis_midway/westmere.xml
branches/release-0.94/tests/stress/apps/modis_multiple/
branches/release-0.94/tests/stress/apps/modis_multiple/clean
branches/release-0.94/tests/stress/apps/modis_multiple/getlanduse.pl
branches/release-0.94/tests/stress/apps/modis_multiple/makeinput
branches/release-0.94/tests/stress/apps/modis_multiple/modis.args
branches/release-0.94/tests/stress/apps/modis_multiple/modis.setup.sh
branches/release-0.94/tests/stress/apps/modis_multiple/modis.swift
branches/release-0.94/tests/stress/apps/modis_multiple/modis.timeout
branches/release-0.94/tests/stress/apps/modis_multiple/run
branches/release-0.94/tests/stress/apps/modis_multiple/sites.template.xml
branches/release-0.94/tests/stress/apps/modis_multiple/swift.properties
branches/release-0.94/tests/stress/apps/modis_multiple/tc.template.data
branches/release-0.94/tests/stress/apps/modis_multiple/title.txt
branches/release-0.94/tests/stress/apps/modis_uc3/
branches/release-0.94/tests/stress/apps/modis_uc3/clean
branches/release-0.94/tests/stress/apps/modis_uc3/getlanduse.pl
branches/release-0.94/tests/stress/apps/modis_uc3/input/
branches/release-0.94/tests/stress/apps/modis_uc3/makeinput
branches/release-0.94/tests/stress/apps/modis_uc3/modis.args
branches/release-0.94/tests/stress/apps/modis_uc3/modis.kml
branches/release-0.94/tests/stress/apps/modis_uc3/modis.setup.sh
branches/release-0.94/tests/stress/apps/modis_uc3/modis.swift
branches/release-0.94/tests/stress/apps/modis_uc3/modis.timeout
branches/release-0.94/tests/stress/apps/modis_uc3/run
branches/release-0.94/tests/stress/apps/modis_uc3/sites.template.xml
branches/release-0.94/tests/stress/apps/modis_uc3/swift.properties
branches/release-0.94/tests/stress/apps/modis_uc3/tc.template.data
branches/release-0.94/tests/stress/apps/modis_uc3/title.txt
branches/release-0.94/tests/stress/internals/
branches/release-0.94/tests/stress/internals/.args.m4
branches/release-0.94/tests/stress/internals/m4_template_gen.sh
branches/release-0.94/tests/stress/internals/scripts.sh
branches/release-0.94/tests/stress/internals/test.args.m4
branches/release-0.94/tests/stress/internals/title.txt
branches/release-0.94/tests/stress/internals/x_append_iter.args
branches/release-0.94/tests/stress/internals/x_append_iter.args.m4
branches/release-0.94/tests/stress/internals/x_append_iter.swift
branches/release-0.94/tests/stress/internals/x_foreach.args
branches/release-0.94/tests/stress/internals/x_foreach.args.m4
branches/release-0.94/tests/stress/internals/x_foreach.swift
branches/release-0.94/tests/stress/internals/x_func.args
branches/release-0.94/tests/stress/internals/x_func.args.m4
branches/release-0.94/tests/stress/internals/x_func.swift
branches/release-0.94/tests/stress/internals/x_func.timeout
branches/release-0.94/tests/stress/internals/x_func_float.args
branches/release-0.94/tests/stress/internals/x_func_float.args.m4
branches/release-0.94/tests/stress/internals/x_func_float.swift
branches/release-0.94/tests/stress/internals/x_func_float.timeout
branches/release-0.94/tests/stress/internals/x_iterate.args
branches/release-0.94/tests/stress/internals/x_iterate.args.m4
branches/release-0.94/tests/stress/internals/x_iterate.swift
branches/release-0.94/tests/stress/internals/x_recursion.args
branches/release-0.94/tests/stress/internals/x_recursion.args.m4
branches/release-0.94/tests/stress/internals/x_recursion.swift
branches/release-0.94/tests/stress/internals/x_recursion.timeout
branches/release-0.94/tests/stress/internals/x_sleep.args
branches/release-0.94/tests/stress/internals/x_sleep.args.m4
branches/release-0.94/tests/stress/internals/x_sleep.swift
branches/release-0.94/tests/stress/internals/x_sleep.timeout
Log:
Adding group files for site specific tests (Midway,MODIS) and generic stress tests
Adding stress tests.
Added: branches/release-0.94/tests/groups/group-stress-heavy.sh
===================================================================
--- branches/release-0.94/tests/groups/group-stress-heavy.sh (rev 0)
+++ branches/release-0.94/tests/groups/group-stress-heavy.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,8 @@
+# GROUPLIST definition to run all local tests \
+
+GROUPLIST=(
+ $TESTDIR/stress/IO \
+ $TESTDIR/stress/internals \
+ )
+
+checkvars WORK
\ No newline at end of file
Added: branches/release-0.94/tests/groups/group-stress-midway.sh
===================================================================
--- branches/release-0.94/tests/groups/group-stress-midway.sh (rev 0)
+++ branches/release-0.94/tests/groups/group-stress-midway.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,11 @@
+# GROUPLIST definition to run all local tests \
+
+GROUPLIST=(
+ $TESTDIR/stress/apps/modis_local \
+ $TESTDIR/stress/apps/modis_midway \
+ $TESTDIR/stress/apps/modis_beagle \
+ $TESTDIR/stress/apps/modis_uc3 \
+ $TESTDIR/stress/apps/modis_multiple \
+ )
+
+checkvars WORK
\ No newline at end of file
Added: branches/release-0.94/tests/stress/IO/i1/cf
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/cf (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/cf 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,8 @@
+
+wrapperlog.always.transfer=true
+sitedir.keep=true
+execution.retries=0
+lazy.errors=false
+status.mode=provider
+use.provider.staging=true
+provider.staging.pin.swiftfiles=false
Added: branches/release-0.94/tests/stress/IO/i1/filegen.sh
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/filegen.sh (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/filegen.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+FILES=10
+rm input/* -rf
+for (( i=1; i <= 20; i=$(($i+1)) ))
+do
+ top=$(($i*5120000))
+ ./gendata.pl $top > input/file_$i.inp &
+done;
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/IO/i1/filegen.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i1/gendata.pl
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/gendata.pl (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/gendata.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+
+use strict;
+
+my @characters=('0'..'9');
+my $string="";
+my $length = $ARGV[0];
+my $width_count=0;
+
+foreach (1..$length)
+{
+ if($width_count == 5) {
+ $string .= "\n";
+ $width_count=0;
+ next;
+ }
+ $string .= $characters[rand @characters];
+ $width_count++;
+}
+
+print $string;
Property changes on: branches/release-0.94/tests/stress/IO/i1/gendata.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i1/i1.kml
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/i1.kml (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/i1.kml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,180 @@
+<project><!-- CACHE ID abf630aa-7a86-4f7c-8484-2439be2e7702-no-provenance -->
+ <import file="sys.xml"/>
+ <import file="scheduler.xml"/>
+ <import file="rlog.xml"/>
+ <import file="vdl.k"/>
+ <types>
+ <xs:schema targetNamespace="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:simpleType name="file">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ <xs:simpleType name="perlscript">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ </xs:schema>
+ </types>
+ <global name="swift#string#17002">
+ <vdl:new type="string" value="Indir" />
+ </global>
+ <global name="swift#string#17003">
+ <vdl:new type="string" value="./input/" />
+ </global>
+ <global name="swift#string#17000">
+ <vdl:new type="string" value="nfiles" />
+ </global>
+ <global name="swift#string#17007">
+ <vdl:new type="string" value=".out" />
+ </global>
+ <global name="swift#string#17005">
+ <vdl:new type="string" value=".inp" />
+ </global>
+ <global name="swift#string#17001">
+ <vdl:new type="string" value="1000" />
+ </global>
+ <element name="do__sum" arguments="output,input,ps" _defline="6">
+
+
+
+ <unitStart name="do__sum" line="6" type="PROCEDURE" outputs="output"/>
+ <vdl:execute>
+ <vdl:tr>perl</vdl:tr>
+ <vdl:stagein var="{input}"/>
+ <vdl:stagein var="{ps}"/>
+ <vdl:stageout var="{output}"/>
+
+ <vdl:arguments>
+ <swiftscript:filename _traceline="8">
+ <variable>ps</variable>
+ </swiftscript:filename>
+ <swiftscript:filename _traceline="8">
+ <variable>input</variable>
+ </swiftscript:filename>
+ </vdl:arguments>
+ <vdl:stdout>
+ <swiftscript:filename _traceline="8">
+ <variable>output</variable>
+ </swiftscript:filename>
+ </vdl:stdout>
+ </vdl:execute>
+ <vdl:closedataset var="{output}"/>
+ <unitEnd name="do__sum" line="6" type="PROCEDURE"/></element>
+
+ <set name="sumall_pl">
+ <vdl:new type="perlscript" dbgname="sumall_pl" _defline="4" input="true">
+ <vdl:mapping descriptor="single_file_mapper">
+ <vdl:parameter name="file" value="sumall.pl"/>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="nFiles">
+ <vdl:new type="int" dbgname="nFiles" waitCount="1" _defline="12"/>
+ </set>
+
+ <set name="Indir">
+ <vdl:new type="string" dbgname="Indir" waitCount="1" _defline="13"/>
+ </set>
+
+ <set name="swift#mapper#17004">
+ <vdl:new type="string" dbgname="swift#mapper#17004" _defline=""/>
+ </set>
+
+ <set name="inputs">
+ <vdl:new type="file[]" dbgname="inputs" _defline="16" input="true">
+ <vdl:mapping descriptor="filesys_mapper">
+ <vdl:parameter name="location"><variable>Indir</variable></vdl:parameter>
+ <vdl:parameter name="suffix"><vdl:new type="string" value=".inp" /></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="swift#mapper#17006">
+ <vdl:new type="string" dbgname="swift#mapper#17006" _defline=""/>
+ </set>
+
+ <set name="outputs">
+ <vdl:new type="file[]" dbgname="outputs" waitCount="1" _defline="17">
+ <vdl:mapping descriptor="simple_mapper">
+ <vdl:parameter name="location"><variable>Indir</variable></vdl:parameter>
+ <vdl:parameter name="suffix"><vdl:new type="string" value=".out" /></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <restartLog>
+ <vdl:mains>
+ <vdl:startprogressticker />
+ <vdl:mainp>
+ <uparallel>
+ <sequential>
+ <vdl:setfieldvalue _traceline="13">
+ <variable>nFiles</variable>
+ <swiftscript:to_int _traceline="12">
+ <swiftscript:arg _traceline="12">
+ <variable>swift#string#17000</variable><variable>swift#string#17001</variable>
+ </swiftscript:arg>
+ </swiftscript:to_int>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{nFiles}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="16">
+ <variable>Indir</variable>
+ <swiftscript:arg _traceline="13">
+ <variable>swift#string#17002</variable><variable>swift#string#17003</variable>
+ </swiftscript:arg>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{Indir}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17004</variable>
+ <variable>swift#string#17005</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17006</variable>
+ <variable>swift#string#17007</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:tparallelFor name="$"_kvar="i" _vvar="input" refs="outputs 1">
+ <getarrayiterator>
+ <variable>inputs</variable>
+ </getarrayiterator>
+ <set names="$$, input">
+ <each items="{$}"/>
+ </set>
+ <set name="i">
+ <vdl:new type="int" value="{$$}"/>
+ </set>
+ <unitStart line="19" type="FOREACH_IT"/>
+ <sequentialWithID>
+ <sequential>
+ <do__sum _traceline="20">
+ <vdl:getfieldsubscript>
+ <argument name="var"><variable>outputs</variable></argument>
+ <argument name="subscript"><variable>i</variable></argument>
+ </vdl:getfieldsubscript>
+ <variable>input</variable>
+ <variable>sumall_pl</variable>
+ </do__sum>
+ <partialCloseDataset var="{outputs}"/>
+ </sequential>
+ </sequentialWithID>
+ <unitEnd line="19" type="FOREACH_IT"/>
+ </vdl:tparallelFor>
+ </sequential>
+ </uparallel>
+ </vdl:mainp>
+ <vdl:stopprogressticker />
+ </vdl:mains>
+ </restartLog>
+ <vdl:cleandataset var="{inputs}"/>
+ <vdl:cleandataset var="{outputs}"/>
+ <vdl:cleandataset var="{sumall_pl}"/>
+ <vdl:cleandataset shutdown="true"/>
+</project>
Added: branches/release-0.94/tests/stress/IO/i1/i1.swift
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/i1.swift (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/i1.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,21 @@
+type file;
+type perlscript;
+
+perlscript sumall_pl <"sumall.pl">;
+
+app (file output) do_sum (file input, perlscript ps)
+{
+ perl @ps @filename(input) stdout=@filename(output);
+}
+
+# Constants and command line arguments
+int nFiles = @toInt(@arg("nfiles", "1000"));
+string Indir = @arg("Indir", "./input/");
+
+# Input Dataset
+file inputs[] <filesys_mapper; location=Indir, suffix=".inp">;
+file outputs[] <simple_mapper; location=Indir, suffix=".out">;
+
+foreach input,i in inputs {
+ outputs[i] = do_sum(input, sumall_pl);
+}
Added: branches/release-0.94/tests/stress/IO/i1/i1.swiftx
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/i1.swiftx (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/i1.swiftx 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,69 @@
+<program xmlns="http://ci.uchicago.edu/swift/2009/02/swiftscript"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <types>
+ <type>
+ <typename>file</typename>
+ <typealias>string</typealias>
+ <typestructure></typestructure>
+ </type>
+ <type>
+ <typename>perlscript</typename>
+ <typealias>string</typealias>
+ <typestructure></typestructure>
+ </type>
+ </types>
+ <procedure name="do_sum" src="line 6">
+
+ <output name="output" type="file" xsi:nil="true"/>
+
+ <input name="input" type="file" xsi:nil="true"/>
+
+ <input name="ps" type="perlscript" xsi:nil="true"/>
+ <binding>
+ <application src="line 6">
+ <executable>perl</executable>
+ <stdout><function name="filename" src="line 8">
+ <variableReference>output</variableReference></function></stdout><function name="filename" src="line 8">
+ <variableReference>ps</variableReference></function><function name="filename" src="line 8">
+ <variableReference>input</variableReference></function> </application>
+ </binding>
+ </procedure>
+ <variable name="sumall_pl" type="perlscript" isGlobal="false" src="line 4"><file name="sumall.pl"/></variable>
+ <variable name="nFiles" type="int" isGlobal="false" xsi:nil="true" src="line 12"/>
+ <assign src="line 13">
+ <variableReference>nFiles</variableReference>
+ <function name="toInt" src="line 12">
+ <function name="arg" src="line 12">
+ <stringConstant>nfiles</stringConstant><stringConstant>1000</stringConstant></function></function>
+ </assign>
+ <variable name="Indir" type="string" isGlobal="false" xsi:nil="true" src="line 13"/>
+ <assign src="line 16">
+ <variableReference>Indir</variableReference>
+ <function name="arg" src="line 13">
+ <stringConstant>Indir</stringConstant><stringConstant>./input/</stringConstant></function>
+ </assign>
+ <variable name="inputs" type="file[]" isGlobal="false" src="line 16">
+ <mapping descriptor="filesys_mapper">
+ <param name="location"><variableReference>Indir</variableReference></param>
+ <param name="suffix"><stringConstant>.inp</stringConstant></param>
+ </mapping>
+ </variable>
+ <variable name="outputs" type="file[]" isGlobal="false" src="line 17">
+ <mapping descriptor="simple_mapper">
+ <param name="location"><variableReference>Indir</variableReference></param>
+ <param name="suffix"><stringConstant>.out</stringConstant></param>
+ </mapping>
+ </variable>
+ <foreach var="input" indexVar="i" src="line 19">
+ <in><variableReference>inputs</variableReference></in>
+ <body><call proc="do_sum" src="line 20">
+ <output><arraySubscript>
+ <variableReference>outputs</variableReference>
+ <variableReference>i</variableReference>
+ </arraySubscript></output>
+ <input><variableReference>input</variableReference></input>
+ <input><variableReference>sumall_pl</variableReference></input>
+ </call></body>
+ </foreach>
+</program>
Added: branches/release-0.94/tests/stress/IO/i1/run
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/run (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/run 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+set -x
+
+export GLOBUS_HOSTNAME="swift.rcc.uchicago.edu"
+
+swift -config cf -sites.file sites.xml -tc.file tc i1.swift
Property changes on: branches/release-0.94/tests/stress/IO/i1/run
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i1/sites.xml
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/sites.xml (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/sites.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,53 @@
+<config>
+
+ <pool handle="uc3">
+ <execution provider="coaster" url="uc3-sub.uchicago.edu" jobmanager="ssh-cl:condor"/>
+ <profile namespace="karajan" key="jobThrottle">10.00</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <profile namespace="globus" key="jobsPerNode">1</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">1000</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="globus" key="condor.+AccountingGroup">"group_friends.{env.USER}"</profile>
+ <profile namespace="globus" key="jobType">nonshared</profile>
+ <!-- <profile namespace="globus" key="condor.+Requirements">isUndefined(GLIDECLIENT_Name) == FALSE</profile> -->
+ <workdirectory>.</workdirectory>
+ </pool>
+
+ <pool handle="sandyb">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">sandyb</profile>
+ <profile namespace="globus" key="jobsPerNode">16</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.64</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+ <pool handle="westmere">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">westmere</profile>
+ <profile namespace="globus" key="jobsPerNode">12</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.48</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+</config>
Added: branches/release-0.94/tests/stress/IO/i1/sites.xml.bak
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/sites.xml.bak (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/sites.xml.bak 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,71 @@
+<config>
+
+ <pool handle="uc3">
+ <execution provider="coaster" url="uc3-sub.uchicago.edu" jobmanager="ssh-cl:condor"/>
+ <profile namespace="karajan" key="jobThrottle">10.00</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <profile namespace="globus" key="jobsPerNode">1</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">1000</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="globus" key="condor.+AccountingGroup">"group_friends.{env.USER}"</profile>
+ <profile namespace="globus" key="jobType">nonshared</profile>
+ <!-- <profile namespace="globus" key="condor.+Requirements">isUndefined(GLIDECLIENT_Name) == FALSE</profile> -->
+ <workdirectory>.</workdirectory>
+ </pool>
+
+ <pool handle="beagle">
+ <execution provider="coaster" jobmanager="ssh-cl:pbs" url="login4.beagle.ci.uchicago.edu"/>
+ <profile namespace="globus" key="jobsPerNode">24</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <!-- <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24</profile> -->
+ <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24;pbs.resource_list=advres=wilde.1768</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="userHomeOverride">/lustre/beagle/{env.USER}/swiftwork</profile>
+ <profile namespace="globus" key="slots">5</profile>
+ <profile namespace="globus" key="maxnodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">4.80</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}/swiftwork</workdirectory>
+ </pool>
+
+ <pool handle="sandyb">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">sandyb</profile>
+ <profile namespace="globus" key="jobsPerNode">16</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.64</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+ <pool handle="westmere">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">westmere</profile>
+ <profile namespace="globus" key="jobsPerNode">12</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.48</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+</config>
Added: branches/release-0.94/tests/stress/IO/i1/sumall.pl
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/sumall.pl (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/sumall.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,9 @@
+#!/usr/bin/perl
+
+my $sum = 0;
+my $filename = shift;
+open(my $fd, "<", $filename) or die "Couldn;t access '$filename' \n";
+while ( my $line = <$fd> ) {
+ $sum += $line;
+}
+print "$sum\n";
Property changes on: branches/release-0.94/tests/stress/IO/i1/sumall.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i1/tc
===================================================================
--- branches/release-0.94/tests/stress/IO/i1/tc (rev 0)
+++ branches/release-0.94/tests/stress/IO/i1/tc 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,4 @@
+uc3 perl /usr/bin/perl null null null
+beagle perl /usr/bin/perl null null null
+#sandy perl /usr/bin/perl null null null
+westmere perl /usr/bin/perl null null null
Added: branches/release-0.94/tests/stress/IO/i2/cf
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/cf (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/cf 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,8 @@
+
+wrapperlog.always.transfer=true
+sitedir.keep=true
+execution.retries=0
+lazy.errors=false
+status.mode=provider
+use.provider.staging=true
+provider.staging.pin.swiftfiles=false
Added: branches/release-0.94/tests/stress/IO/i2/filegen.sh
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/filegen.sh (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/filegen.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+case $STRESS in
+ "S1")
+ FILES=100
+ SIZE=102400
+ ;;
+ "S2")
+ FILES=1000
+ SIZE=102400
+ ;;
+ "S3")
+ FILES=1000
+ SIZE=1024000
+ ;;
+ "S4")
+ FILES=10000
+ SIZE=1024000
+ ;;
+ *)
+ SIZE=102400
+ FILES=1000
+ ;;
+esac
+
+rm input/* -rf
+for (( i=1; i <= $FILES ; i=$(($i+1)) ))
+do
+ top=$SIZE
+ ./gendata.pl $top > input/file_$i.inp
+done;
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/IO/i2/filegen.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i2/gendata.pl
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/gendata.pl (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/gendata.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+
+use strict;
+
+my @characters=('0'..'9');
+my $string="";
+my $length = $ARGV[0];
+my $width_count=0;
+
+foreach (1..$length)
+{
+ if($width_count == 5) {
+ $string .= "\n";
+ $width_count=0;
+ next;
+ }
+ $string .= $characters[rand @characters];
+ $width_count++;
+}
+
+print $string;
Property changes on: branches/release-0.94/tests/stress/IO/i2/gendata.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i2/i1.kml
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/i1.kml (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/i1.kml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,180 @@
+<project><!-- CACHE ID abf630aa-7a86-4f7c-8484-2439be2e7702-no-provenance -->
+ <import file="sys.xml"/>
+ <import file="scheduler.xml"/>
+ <import file="rlog.xml"/>
+ <import file="vdl.k"/>
+ <types>
+ <xs:schema targetNamespace="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:simpleType name="file">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ <xs:simpleType name="perlscript">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ </xs:schema>
+ </types>
+ <global name="swift#string#17002">
+ <vdl:new type="string" value="Indir" />
+ </global>
+ <global name="swift#string#17003">
+ <vdl:new type="string" value="./input/" />
+ </global>
+ <global name="swift#string#17000">
+ <vdl:new type="string" value="nfiles" />
+ </global>
+ <global name="swift#string#17007">
+ <vdl:new type="string" value=".out" />
+ </global>
+ <global name="swift#string#17005">
+ <vdl:new type="string" value=".inp" />
+ </global>
+ <global name="swift#string#17001">
+ <vdl:new type="string" value="1000" />
+ </global>
+ <element name="do__sum" arguments="output,input,ps" _defline="6">
+
+
+
+ <unitStart name="do__sum" line="6" type="PROCEDURE" outputs="output"/>
+ <vdl:execute>
+ <vdl:tr>perl</vdl:tr>
+ <vdl:stagein var="{input}"/>
+ <vdl:stagein var="{ps}"/>
+ <vdl:stageout var="{output}"/>
+
+ <vdl:arguments>
+ <swiftscript:filename _traceline="8">
+ <variable>ps</variable>
+ </swiftscript:filename>
+ <swiftscript:filename _traceline="8">
+ <variable>input</variable>
+ </swiftscript:filename>
+ </vdl:arguments>
+ <vdl:stdout>
+ <swiftscript:filename _traceline="8">
+ <variable>output</variable>
+ </swiftscript:filename>
+ </vdl:stdout>
+ </vdl:execute>
+ <vdl:closedataset var="{output}"/>
+ <unitEnd name="do__sum" line="6" type="PROCEDURE"/></element>
+
+ <set name="sumall_pl">
+ <vdl:new type="perlscript" dbgname="sumall_pl" _defline="4" input="true">
+ <vdl:mapping descriptor="single_file_mapper">
+ <vdl:parameter name="file" value="sumall.pl"/>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="nFiles">
+ <vdl:new type="int" dbgname="nFiles" waitCount="1" _defline="12"/>
+ </set>
+
+ <set name="Indir">
+ <vdl:new type="string" dbgname="Indir" waitCount="1" _defline="13"/>
+ </set>
+
+ <set name="swift#mapper#17004">
+ <vdl:new type="string" dbgname="swift#mapper#17004" _defline=""/>
+ </set>
+
+ <set name="inputs">
+ <vdl:new type="file[]" dbgname="inputs" _defline="16" input="true">
+ <vdl:mapping descriptor="filesys_mapper">
+ <vdl:parameter name="location"><variable>Indir</variable></vdl:parameter>
+ <vdl:parameter name="suffix"><vdl:new type="string" value=".inp" /></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="swift#mapper#17006">
+ <vdl:new type="string" dbgname="swift#mapper#17006" _defline=""/>
+ </set>
+
+ <set name="outputs">
+ <vdl:new type="file[]" dbgname="outputs" waitCount="1" _defline="17">
+ <vdl:mapping descriptor="simple_mapper">
+ <vdl:parameter name="location"><variable>Indir</variable></vdl:parameter>
+ <vdl:parameter name="suffix"><vdl:new type="string" value=".out" /></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <restartLog>
+ <vdl:mains>
+ <vdl:startprogressticker />
+ <vdl:mainp>
+ <uparallel>
+ <sequential>
+ <vdl:setfieldvalue _traceline="13">
+ <variable>nFiles</variable>
+ <swiftscript:to_int _traceline="12">
+ <swiftscript:arg _traceline="12">
+ <variable>swift#string#17000</variable><variable>swift#string#17001</variable>
+ </swiftscript:arg>
+ </swiftscript:to_int>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{nFiles}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="16">
+ <variable>Indir</variable>
+ <swiftscript:arg _traceline="13">
+ <variable>swift#string#17002</variable><variable>swift#string#17003</variable>
+ </swiftscript:arg>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{Indir}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17004</variable>
+ <variable>swift#string#17005</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17006</variable>
+ <variable>swift#string#17007</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:tparallelFor name="$"_kvar="i" _vvar="input" refs="outputs 1">
+ <getarrayiterator>
+ <variable>inputs</variable>
+ </getarrayiterator>
+ <set names="$$, input">
+ <each items="{$}"/>
+ </set>
+ <set name="i">
+ <vdl:new type="int" value="{$$}"/>
+ </set>
+ <unitStart line="19" type="FOREACH_IT"/>
+ <sequentialWithID>
+ <sequential>
+ <do__sum _traceline="20">
+ <vdl:getfieldsubscript>
+ <argument name="var"><variable>outputs</variable></argument>
+ <argument name="subscript"><variable>i</variable></argument>
+ </vdl:getfieldsubscript>
+ <variable>input</variable>
+ <variable>sumall_pl</variable>
+ </do__sum>
+ <partialCloseDataset var="{outputs}"/>
+ </sequential>
+ </sequentialWithID>
+ <unitEnd line="19" type="FOREACH_IT"/>
+ </vdl:tparallelFor>
+ </sequential>
+ </uparallel>
+ </vdl:mainp>
+ <vdl:stopprogressticker />
+ </vdl:mains>
+ </restartLog>
+ <vdl:cleandataset var="{inputs}"/>
+ <vdl:cleandataset var="{outputs}"/>
+ <vdl:cleandataset var="{sumall_pl}"/>
+ <vdl:cleandataset shutdown="true"/>
+</project>
Added: branches/release-0.94/tests/stress/IO/i2/i1.swift
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/i1.swift (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/i1.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,21 @@
+type file;
+type perlscript;
+
+perlscript sumall_pl <"sumall.pl">;
+
+app (file output) do_sum (file input, perlscript ps)
+{
+ perl @ps @filename(input) stdout=@filename(output);
+}
+
+# Constants and command line arguments
+int nFiles = @toInt(@arg("nfiles", "1000"));
+string Indir = @arg("Indir", "./input/");
+
+# Input Dataset
+file inputs[] <filesys_mapper; location=Indir, suffix=".inp">;
+file outputs[] <simple_mapper; location=Indir, suffix=".out">;
+
+foreach input,i in inputs {
+ outputs[i] = do_sum(input, sumall_pl);
+}
Added: branches/release-0.94/tests/stress/IO/i2/i1.swiftx
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/i1.swiftx (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/i1.swiftx 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,69 @@
+<program xmlns="http://ci.uchicago.edu/swift/2009/02/swiftscript"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <types>
+ <type>
+ <typename>file</typename>
+ <typealias>string</typealias>
+ <typestructure></typestructure>
+ </type>
+ <type>
+ <typename>perlscript</typename>
+ <typealias>string</typealias>
+ <typestructure></typestructure>
+ </type>
+ </types>
+ <procedure name="do_sum" src="line 6">
+
+ <output name="output" type="file" xsi:nil="true"/>
+
+ <input name="input" type="file" xsi:nil="true"/>
+
+ <input name="ps" type="perlscript" xsi:nil="true"/>
+ <binding>
+ <application src="line 6">
+ <executable>perl</executable>
+ <stdout><function name="filename" src="line 8">
+ <variableReference>output</variableReference></function></stdout><function name="filename" src="line 8">
+ <variableReference>ps</variableReference></function><function name="filename" src="line 8">
+ <variableReference>input</variableReference></function> </application>
+ </binding>
+ </procedure>
+ <variable name="sumall_pl" type="perlscript" isGlobal="false" src="line 4"><file name="sumall.pl"/></variable>
+ <variable name="nFiles" type="int" isGlobal="false" xsi:nil="true" src="line 12"/>
+ <assign src="line 13">
+ <variableReference>nFiles</variableReference>
+ <function name="toInt" src="line 12">
+ <function name="arg" src="line 12">
+ <stringConstant>nfiles</stringConstant><stringConstant>1000</stringConstant></function></function>
+ </assign>
+ <variable name="Indir" type="string" isGlobal="false" xsi:nil="true" src="line 13"/>
+ <assign src="line 16">
+ <variableReference>Indir</variableReference>
+ <function name="arg" src="line 13">
+ <stringConstant>Indir</stringConstant><stringConstant>./input/</stringConstant></function>
+ </assign>
+ <variable name="inputs" type="file[]" isGlobal="false" src="line 16">
+ <mapping descriptor="filesys_mapper">
+ <param name="location"><variableReference>Indir</variableReference></param>
+ <param name="suffix"><stringConstant>.inp</stringConstant></param>
+ </mapping>
+ </variable>
+ <variable name="outputs" type="file[]" isGlobal="false" src="line 17">
+ <mapping descriptor="simple_mapper">
+ <param name="location"><variableReference>Indir</variableReference></param>
+ <param name="suffix"><stringConstant>.out</stringConstant></param>
+ </mapping>
+ </variable>
+ <foreach var="input" indexVar="i" src="line 19">
+ <in><variableReference>inputs</variableReference></in>
+ <body><call proc="do_sum" src="line 20">
+ <output><arraySubscript>
+ <variableReference>outputs</variableReference>
+ <variableReference>i</variableReference>
+ </arraySubscript></output>
+ <input><variableReference>input</variableReference></input>
+ <input><variableReference>sumall_pl</variableReference></input>
+ </call></body>
+ </foreach>
+</program>
Added: branches/release-0.94/tests/stress/IO/i2/run
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/run (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/run 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+./filegen.sh
+
+set -x
+
+export GLOBUS_HOSTNAME="swift.rcc.uchicago.edu"
+
+swift -config cf -sites.file sites.xml -tc.file tc i1.swift
Property changes on: branches/release-0.94/tests/stress/IO/i2/run
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i2/sites.xml
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/sites.xml (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/sites.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,53 @@
+<config>
+
+ <pool handle="uc3">
+ <execution provider="coaster" url="uc3-sub.uchicago.edu" jobmanager="ssh-cl:condor"/>
+ <profile namespace="karajan" key="jobThrottle">10.00</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <profile namespace="globus" key="jobsPerNode">1</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">1000</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="globus" key="condor.+AccountingGroup">"group_friends.{env.USER}"</profile>
+ <profile namespace="globus" key="jobType">nonshared</profile>
+ <!-- <profile namespace="globus" key="condor.+Requirements">isUndefined(GLIDECLIENT_Name) == FALSE</profile> -->
+ <workdirectory>.</workdirectory>
+ </pool>
+
+ <pool handle="sandyb">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">sandyb</profile>
+ <profile namespace="globus" key="jobsPerNode">16</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.64</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+ <pool handle="westmere">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">westmere</profile>
+ <profile namespace="globus" key="jobsPerNode">12</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.48</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+</config>
Added: branches/release-0.94/tests/stress/IO/i2/sites.xml.bak
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/sites.xml.bak (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/sites.xml.bak 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,71 @@
+<config>
+
+ <pool handle="uc3">
+ <execution provider="coaster" url="uc3-sub.uchicago.edu" jobmanager="ssh-cl:condor"/>
+ <profile namespace="karajan" key="jobThrottle">10.00</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <profile namespace="globus" key="jobsPerNode">1</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">1000</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="globus" key="condor.+AccountingGroup">"group_friends.{env.USER}"</profile>
+ <profile namespace="globus" key="jobType">nonshared</profile>
+ <!-- <profile namespace="globus" key="condor.+Requirements">isUndefined(GLIDECLIENT_Name) == FALSE</profile> -->
+ <workdirectory>.</workdirectory>
+ </pool>
+
+ <pool handle="beagle">
+ <execution provider="coaster" jobmanager="ssh-cl:pbs" url="login4.beagle.ci.uchicago.edu"/>
+ <profile namespace="globus" key="jobsPerNode">24</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <!-- <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24</profile> -->
+ <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24;pbs.resource_list=advres=wilde.1768</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="userHomeOverride">/lustre/beagle/{env.USER}/swiftwork</profile>
+ <profile namespace="globus" key="slots">5</profile>
+ <profile namespace="globus" key="maxnodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">4.80</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}/swiftwork</workdirectory>
+ </pool>
+
+ <pool handle="sandyb">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">sandyb</profile>
+ <profile namespace="globus" key="jobsPerNode">16</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.64</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+ <pool handle="westmere">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">westmere</profile>
+ <profile namespace="globus" key="jobsPerNode">12</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.48</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+</config>
Added: branches/release-0.94/tests/stress/IO/i2/sumall.pl
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/sumall.pl (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/sumall.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,9 @@
+#!/usr/bin/perl
+
+my $sum = 0;
+my $filename = shift;
+open(my $fd, "<", $filename) or die "Couldn;t access '$filename' \n";
+while ( my $line = <$fd> ) {
+ $sum += $line;
+}
+print "$sum\n";
Property changes on: branches/release-0.94/tests/stress/IO/i2/sumall.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/IO/i2/tc
===================================================================
--- branches/release-0.94/tests/stress/IO/i2/tc (rev 0)
+++ branches/release-0.94/tests/stress/IO/i2/tc 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,4 @@
+uc3 perl /usr/bin/perl null null null
+beagle perl /usr/bin/perl null null null
+#sandy perl /usr/bin/perl null null null
+westmere perl /usr/bin/perl null null null
Added: branches/release-0.94/tests/stress/apps/data/t0
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t0
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t1
===================================================================
--- branches/release-0.94/tests/stress/apps/data/t1 (rev 0)
+++ branches/release-0.94/tests/stress/apps/data/t1 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,13792 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Added: branches/release-0.94/tests/stress/apps/data/t2
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t2
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t3
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t3
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t4
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t4
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t5
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t5
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t6
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t6
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t7
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t7
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t8
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t8
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/data/t9
===================================================================
(Binary files differ)
Property changes on: branches/release-0.94/tests/stress/apps/data/t9
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/release-0.94/tests/stress/apps/get.sh
===================================================================
--- branches/release-0.94/tests/stress/apps/get.sh (rev 0)
+++ branches/release-0.94/tests/stress/apps/get.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+
+
Property changes on: branches/release-0.94/tests/stress/apps/get.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_beagle/clean
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/clean (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/clean 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+rm -rf *~ *log *.d ../*.{kml,swiftx} *.out landuse
Property changes on: branches/release-0.94/tests/stress/apps/modis_beagle/clean
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_beagle/getlanduse.pl
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/getlanduse.pl (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/getlanduse.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+
+# Input to this program should be a raw, greyscale RGB file
+# Usage: rgb_histogram.pl myfile.rgb
+
+my $image_filename = shift;
+open(IMAGEFILE, "$image_filename") || die "Unable to open $image_filename!\n";
+binmode IMAGEFILE;
+
+my @pixelcount;
+foreach my $count (0..255) { $pixelcount[$count] = 0; }
+
+# Read values, three bytes at a time
+$/ = \3;
+foreach(<IMAGEFILE>) {
+ $pixelcount[unpack('C', $_)]++;
+}
+close(IMAGEFILE);
+
+ at sortedcount = sort {$b <=> $a} @pixelcount;
+
+foreach my $count (0..255) {
+ if($sortedcount[$count] == 0) { next; }
+ printf("%d %d %02x\n", $sortedcount[$count], $count, $count);
+}
+
+system("hostname -f 2>&1");
+
+sleep(1);
Property changes on: branches/release-0.94/tests/stress/apps/modis_beagle/getlanduse.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_beagle/makeinput
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/makeinput (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/makeinput 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,22 @@
+#! /bin/sh
+
+nfiles=${1:-10}
+
+rm -rf input
+mkdir input
+cp ../data/t? input/
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
Property changes on: branches/release-0.94/tests/stress/apps/modis_beagle/makeinput
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_beagle/modis.args
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/modis.args (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/modis.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-modisdir=input/
\ No newline at end of file
Added: branches/release-0.94/tests/stress/apps/modis_beagle/modis.kml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/modis.kml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/modis.kml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,200 @@
+<project><!-- CACHE ID abf630aa-7a86-4f7c-8484-2439be2e7702-no-provenance -->
+ <import file="sys.xml"/>
+ <import file="scheduler.xml"/>
+ <import file="rlog.xml"/>
+ <import file="vdl.k"/>
+ <types>
+ <xs:schema targetNamespace="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:simpleType name="imagefile">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ <xs:simpleType name="landuse">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ <xs:simpleType name="perlscript">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ </xs:schema>
+ </types>
+ <global name="swift#string#17009">
+ <vdl:new type="string" value="landuse/\1.landuse.byfreq" />
+ </global>
+ <global name="swift#string#17002">
+ <vdl:new type="string" value="modisdir" />
+ </global>
+ <global name="swift#string#17007">
+ <vdl:new type="string" value="(h..v..)" />
+ </global>
+ <global name="swift#string#17000">
+ <vdl:new type="string" value="nfiles" />
+ </global>
+ <global name="swift#string#17003">
+ <vdl:new type="string" value="../data/modis/2002" />
+ </global>
+ <global name="swift#string#17005">
+ <vdl:new type="string" value=".rgb" />
+ </global>
+ <global name="swift#string#17001">
+ <vdl:new type="string" value="1000" />
+ </global>
+ <element name="get_land_use" arguments="output,input,ps" _defline="7">
+
+
+
+ <unitStart name="get_land_use" line="7" type="PROCEDURE" outputs="output"/>
+ <vdl:execute>
+ <vdl:tr>perl</vdl:tr>
+ <vdl:stagein var="{input}"/>
+ <vdl:stagein var="{ps}"/>
+ <vdl:stageout var="{output}"/>
+
+ <vdl:arguments>
+ <swiftscript:filename _traceline="9">
+ <variable>ps</variable>
+ </swiftscript:filename>
+ <swiftscript:filename _traceline="9">
+ <variable>input</variable>
+ </swiftscript:filename>
+ </vdl:arguments>
+ <vdl:stdout>
+ <swiftscript:filename _traceline="9">
+ <variable>output</variable>
+ </swiftscript:filename>
+ </vdl:stdout>
+ </vdl:execute>
+ <vdl:closedataset var="{output}"/>
+ <unitEnd name="get_land_use" line="7" type="PROCEDURE"/></element>
+
+ <set name="getlanduse_pl">
+ <vdl:new type="perlscript" dbgname="getlanduse_pl" _defline="5" input="true">
+ <vdl:mapping descriptor="single_file_mapper">
+ <vdl:parameter name="file" value="getlanduse.pl"/>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="nFiles">
+ <vdl:new type="int" dbgname="nFiles" waitCount="1" _defline="13"/>
+ </set>
+
+ <set name="MODISdir">
+ <vdl:new type="string" dbgname="MODISdir" waitCount="1" _defline="14"/>
+ </set>
+
+ <set name="swift#mapper#17004">
+ <vdl:new type="string" dbgname="swift#mapper#17004" _defline=""/>
+ </set>
+
+ <set name="geos">
+ <vdl:new type="imagefile[]" dbgname="geos" _defline="17" input="true">
+ <vdl:mapping descriptor="filesys_mapper">
+ <vdl:parameter name="location"><variable>MODISdir</variable></vdl:parameter>
+ <vdl:parameter name="suffix"><vdl:new type="string" value=".rgb" /></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="swift#mapper#17006">
+ <vdl:new type="string" dbgname="swift#mapper#17006" _defline=""/>
+ </set>
+
+ <set name="swift#mapper#17008">
+ <vdl:new type="string" dbgname="swift#mapper#17008" _defline=""/>
+ </set>
+
+ <set name="land">
+ <vdl:new type="landuse[]" dbgname="land" waitCount="1" _defline="20">
+ <vdl:mapping descriptor="structured_regexp_mapper">
+ <vdl:parameter name="source"><variable>geos</variable></vdl:parameter>
+ <vdl:parameter name="match"><vdl:new type="string" value="(h..v..)" /></vdl:parameter>
+ <vdl:parameter name="transform"><variable>swift#mapper#17008</variable></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <restartLog>
+ <vdl:mains>
+ <vdl:startprogressticker />
+ <vdl:mainp>
+ <uparallel>
+ <sequential>
+ <vdl:setfieldvalue _traceline="14">
+ <variable>nFiles</variable>
+ <swiftscript:to_int _traceline="13">
+ <swiftscript:arg _traceline="13">
+ <variable>swift#string#17000</variable><variable>swift#string#17001</variable>
+ </swiftscript:arg>
+ </swiftscript:to_int>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{nFiles}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="17">
+ <variable>MODISdir</variable>
+ <swiftscript:arg _traceline="14">
+ <variable>swift#string#17002</variable><variable>swift#string#17003</variable>
+ </swiftscript:arg>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{MODISdir}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17004</variable>
+ <variable>swift#string#17005</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17006</variable>
+ <variable>swift#string#17007</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17008</variable>
+ <swiftscript:strcat _traceline="21">
+ <variable>swift#string#17009</variable>
+ </swiftscript:strcat>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:tparallelFor name="$"_kvar="i" _vvar="g" refs="land 1">
+ <getarrayiterator>
+ <variable>geos</variable>
+ </getarrayiterator>
+ <set names="$$, g">
+ <each items="{$}"/>
+ </set>
+ <set name="i">
+ <vdl:new type="int" value="{$$}"/>
+ </set>
+ <unitStart line="23" type="FOREACH_IT"/>
+ <sequentialWithID>
+ <sequential>
+ <get_land_use _traceline="24">
+ <vdl:getfieldsubscript>
+ <argument name="var"><variable>land</variable></argument>
+ <argument name="subscript"><variable>i</variable></argument>
+ </vdl:getfieldsubscript>
+ <variable>g</variable>
+ <variable>getlanduse_pl</variable>
+ </get_land_use>
+ <partialCloseDataset var="{land}"/>
+ </sequential>
+ </sequentialWithID>
+ <unitEnd line="23" type="FOREACH_IT"/>
+ </vdl:tparallelFor>
+ </sequential>
+ </uparallel>
+ </vdl:mainp>
+ <vdl:stopprogressticker />
+ </vdl:mains>
+ </restartLog>
+ <vdl:cleandataset var="{geos}"/>
+ <vdl:cleandataset var="{getlanduse_pl}"/>
+ <vdl:cleandataset var="{land}"/>
+ <vdl:cleandataset shutdown="true"/>
+</project>
Added: branches/release-0.94/tests/stress/apps/modis_beagle/modis.setup.sh
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/modis.setup.sh (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/modis.setup.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+case $STRESS in
+ "S1")
+ FILES=10
+ ;;
+ "S2")
+ FILES=1000
+ ;;
+ "S3")
+ FILES=10000
+ ;;
+ "S4")
+ FILES=10000
+ ;;
+ *)
+ FILES=1000
+ ;;
+esac
+
+export GLOBUS_HOSTNAME="128.135.112.73"
+export GLOBUS_TCP_PORT_RANGE=50000,51000
+#OVERRIDE_GLOBUS_HOSTNAME "128.135.112.73"
+
+nfiles=${FILES:-10}
+
+rm -rf input
+mkdir input
+cp $(dirname $GROUP)/data/t? input/
+cp $GROUP/getlanduse.pl ./
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
+
+#makeinput
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/apps/modis_beagle/modis.setup.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_beagle/modis.swift
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/modis.swift (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/modis.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,25 @@
+type imagefile;
+type landuse;
+type perlscript;
+
+perlscript getlanduse_pl <"getlanduse.pl">;
+
+app (landuse output) getLandUse (imagefile input, perlscript ps)
+{
+ perl @ps @filename(input) stdout=@filename(output);
+}
+
+# Constants and command line arguments
+int nFiles = @toInt(@arg("nfiles", "1000"));
+string MODISdir = @arg("modisdir", "../data/modis/2002");
+
+# Input Dataset
+imagefile geos[] <filesys_mapper; location=MODISdir, suffix=".rgb">;
+
+# Compute the land use summary of each MODIS tile
+landuse land[] <structured_regexp_mapper; source=geos, match="(h..v..)",
+ transform=@strcat("landuse/\\1.landuse.byfreq")>;
+
+foreach g,i in geos {
+ land[i] = getLandUse(g, getlanduse_pl);
+}
Added: branches/release-0.94/tests/stress/apps/modis_beagle/modis.timeout
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/modis.timeout (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/modis.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+999999
Added: branches/release-0.94/tests/stress/apps/modis_beagle/run
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/run (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/run 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+set -x
+export GLOBUS_HOSTNAME="128.135.112.73"
+export GLOBUS_TCP_PORT_RANGE=50000,51000
+
+swift -config swift.properties -sites.file sites.template.xml -tc.file tc.template.data modis.swift -modisdir=input/
Property changes on: branches/release-0.94/tests/stress/apps/modis_beagle/run
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,35 @@
+<config>
+
+ <pool handle="beagle">
+
+ <execution provider="coaster" jobmanager="ssh-cl:pbs" url="login4.beagle.ci.uchicago.edu"/>
+
+ <profile namespace="globus" key="jobsPerNode">24</profile>
+
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+
+ <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24</profile>
+
+ <profile namespace="globus" key="maxtime">3600</profile>
+
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+
+ <profile namespace="globus" key="userHomeOverride">/lustre/beagle/$USER/swiftwork</profile>
+
+ <profile namespace="globus" key="slots">20</profile>
+
+ <profile namespace="globus" key="maxnodes">1</profile>
+
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+
+ <profile namespace="karajan" key="jobThrottle">4.80</profile>
+
+ <profile namespace="karajan" key="initialScore">10000</profile>
+
+ <workdirectory>/tmp/$USER/swiftwork</workdirectory>
+
+ </pool>
+
+</config>
\ No newline at end of file
Added: branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml.bak
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml.bak (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/sites.template.xml.bak 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,19 @@
+<config>
+ <pool handle="beagle">
+ <execution provider="coaster" jobmanager="ssh-cl:pbs" url="login4.beagle.ci.uchicago.edu"/>
+ <profile namespace="globus" key="jobsPerNode">24</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <!-- <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24</profile> -->
+ <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24;pbs.resource_list=advres=wilde.1768</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="userHomeOverride">/lustre/beagle/{env.USER}/swiftwork</profile>
+ <profile namespace="globus" key="slots">20</profile>
+ <profile namespace="globus" key="maxnodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">4.80</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}/swiftwork</workdirectory>
+ </pool>
+</config>
Added: branches/release-0.94/tests/stress/apps/modis_beagle/swift.properties
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/swift.properties (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/swift.properties 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,8 @@
+
+wrapperlog.always.transfer=true
+sitedir.keep=true
+execution.retries=0
+lazy.errors=false
+status.mode=provider
+use.provider.staging=true
+provider.staging.pin.swiftfiles=false
Added: branches/release-0.94/tests/stress/apps/modis_beagle/tc.template.data
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/tc.template.data (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/tc.template.data 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+beagle perl /usr/bin/perl null null null
Added: branches/release-0.94/tests/stress/apps/modis_beagle/title.txt
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_beagle/title.txt (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_beagle/title.txt 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+Modis-Beagle
Added: branches/release-0.94/tests/stress/apps/modis_local/clean
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/clean (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/clean 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+rm -rf *~ *log *.d ../*.{kml,swiftx} *.out landuse
Property changes on: branches/release-0.94/tests/stress/apps/modis_local/clean
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_local/getlanduse.pl
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/getlanduse.pl (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/getlanduse.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+
+# Input to this program should be a raw, greyscale RGB file
+# Usage: rgb_histogram.pl myfile.rgb
+
+my $image_filename = shift;
+open(IMAGEFILE, "$image_filename") || die "Unable to open $image_filename!\n";
+binmode IMAGEFILE;
+
+my @pixelcount;
+foreach my $count (0..255) { $pixelcount[$count] = 0; }
+
+# Read values, three bytes at a time
+$/ = \3;
+foreach(<IMAGEFILE>) {
+ $pixelcount[unpack('C', $_)]++;
+}
+close(IMAGEFILE);
+
+ at sortedcount = sort {$b <=> $a} @pixelcount;
+
+foreach my $count (0..255) {
+ if($sortedcount[$count] == 0) { next; }
+ printf("%d %d %02x\n", $sortedcount[$count], $count, $count);
+}
+
+system("hostname -f 2>&1");
+
+sleep(1);
Property changes on: branches/release-0.94/tests/stress/apps/modis_local/getlanduse.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_local/makeinput
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/makeinput (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/makeinput 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,22 @@
+#! /bin/sh
+
+nfiles=${1:-10}
+
+rm -rf input
+mkdir input
+cp ../data/t? input/
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
Property changes on: branches/release-0.94/tests/stress/apps/modis_local/makeinput
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_local/modis.args
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/modis.args (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/modis.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-modisdir=input/
\ No newline at end of file
Added: branches/release-0.94/tests/stress/apps/modis_local/modis.setup.sh
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/modis.setup.sh (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/modis.setup.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+case $STRESS in
+ "S1")
+ FILES=100
+ ;;
+ "S2")
+ FILES=1000
+ ;;
+ "S3")
+ FILES=10000
+ ;;
+ "S4")
+ FILES=10000
+ ;;
+ *)
+ FILES=1000
+ ;;
+esac
+
+nfiles=${FILES:-10}
+
+rm -rf input
+mkdir input
+cp $(dirname $GROUP)/data/t? input/
+cp $GROUP/getlanduse.pl ./
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
+
+#makeinput
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/apps/modis_local/modis.setup.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_local/modis.swift
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/modis.swift (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/modis.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,25 @@
+type imagefile;
+type landuse;
+type perlscript;
+
+perlscript getlanduse_pl <"getlanduse.pl">;
+
+app (landuse output) getLandUse (imagefile input, perlscript ps)
+{
+ perl @ps @filename(input) stdout=@filename(output);
+}
+
+# Constants and command line arguments
+int nFiles = @toInt(@arg("nfiles", "1000"));
+string MODISdir = @arg("modisdir", "../data/modis/2002");
+
+# Input Dataset
+imagefile geos[] <filesys_mapper; location=MODISdir, suffix=".rgb">;
+
+# Compute the land use summary of each MODIS tile
+landuse land[] <structured_regexp_mapper; source=geos, match="(h..v..)",
+ transform=@strcat("landuse/\\1.landuse.byfreq")>;
+
+foreach g,i in geos {
+ land[i] = getLandUse(g, getlanduse_pl);
+}
Added: branches/release-0.94/tests/stress/apps/modis_local/modis.timeout
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/modis.timeout (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/modis.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+999999
Added: branches/release-0.94/tests/stress/apps/modis_local/run
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/run (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/run 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+set -x
+
+swift -config cf -sites.file local.xml -tc.file tc ../modis.swift -modisdir=input/
Property changes on: branches/release-0.94/tests/stress/apps/modis_local/run
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_local/sites.template.xml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/sites.template.xml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/sites.template.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,16 @@
+<config>
+ <pool handle="local">
+ <execution provider="coaster" jobmanager="local:local"/>
+ <profile namespace="globus" key="jobsPerNode">4</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">1</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">0.03</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <filesystem provider="local"/>
+ <workdirectory>/scratch/midway/{env.USER}</workdirectory>
+ </pool>
+</config>
Added: branches/release-0.94/tests/stress/apps/modis_local/swift.properties
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/swift.properties (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/swift.properties 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,8 @@
+
+wrapperlog.always.transfer=true
+sitedir.keep=true
+execution.retries=0
+lazy.errors=false
+status.mode=provider
+use.provider.staging=false
+provider.staging.pin.swiftfiles=false
Added: branches/release-0.94/tests/stress/apps/modis_local/tc.template.data
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/tc.template.data (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/tc.template.data 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+local perl /usr/bin/perl null null null
Added: branches/release-0.94/tests/stress/apps/modis_local/title.txt
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_local/title.txt (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_local/title.txt 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+Modis Local
Added: branches/release-0.94/tests/stress/apps/modis_midway/clean
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/clean (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/clean 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+rm -rf *~ *log *.d ../*.{kml,swiftx} *.out landuse
Property changes on: branches/release-0.94/tests/stress/apps/modis_midway/clean
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_midway/getlanduse.pl
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/getlanduse.pl (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/getlanduse.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+
+# Input to this program should be a raw, greyscale RGB file
+# Usage: rgb_histogram.pl myfile.rgb
+
+my $image_filename = shift;
+open(IMAGEFILE, "$image_filename") || die "Unable to open $image_filename!\n";
+binmode IMAGEFILE;
+
+my @pixelcount;
+foreach my $count (0..255) { $pixelcount[$count] = 0; }
+
+# Read values, three bytes at a time
+$/ = \3;
+foreach(<IMAGEFILE>) {
+ $pixelcount[unpack('C', $_)]++;
+}
+close(IMAGEFILE);
+
+ at sortedcount = sort {$b <=> $a} @pixelcount;
+
+foreach my $count (0..255) {
+ if($sortedcount[$count] == 0) { next; }
+ printf("%d %d %02x\n", $sortedcount[$count], $count, $count);
+}
+
+system("hostname -f 2>&1");
+
+sleep(1);
Property changes on: branches/release-0.94/tests/stress/apps/modis_midway/getlanduse.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_midway/makeinput
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/makeinput (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/makeinput 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,22 @@
+#! /bin/sh
+
+nfiles=${1:-10}
+
+rm -rf input
+mkdir input
+cp ../data/t? input/
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
Property changes on: branches/release-0.94/tests/stress/apps/modis_midway/makeinput
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_midway/modis.args
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/modis.args (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/modis.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-modisdir=input/
\ No newline at end of file
Added: branches/release-0.94/tests/stress/apps/modis_midway/modis.setup.sh
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/modis.setup.sh (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/modis.setup.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+case $STRESS in
+ "S1")
+ FILES=10
+ ;;
+ "S2")
+ FILES=1000
+ ;;
+ "S3")
+ FILES=10000
+ ;;
+ "S4")
+ FILES=10000
+ ;;
+ *)
+ FILES=1000
+ ;;
+esac
+
+nfiles=${FILES:-10}
+
+rm -rf input
+mkdir input
+cp $(dirname $GROUP)/data/t? input/
+cp $GROUP/getlanduse.pl ./
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
+
+#makeinput
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/apps/modis_midway/modis.setup.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_midway/modis.swift
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/modis.swift (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/modis.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,25 @@
+type imagefile;
+type landuse;
+type perlscript;
+
+perlscript getlanduse_pl <"getlanduse.pl">;
+
+app (landuse output) getLandUse (imagefile input, perlscript ps)
+{
+ perl @ps @filename(input) stdout=@filename(output);
+}
+
+# Constants and command line arguments
+int nFiles = @toInt(@arg("nfiles", "1000"));
+string MODISdir = @arg("modisdir", "../data/modis/2002");
+
+# Input Dataset
+imagefile geos[] <filesys_mapper; location=MODISdir, suffix=".rgb">;
+
+# Compute the land use summary of each MODIS tile
+landuse land[] <structured_regexp_mapper; source=geos, match="(h..v..)",
+ transform=@strcat("landuse/\\1.landuse.byfreq")>;
+
+foreach g,i in geos {
+ land[i] = getLandUse(g, getlanduse_pl);
+}
Added: branches/release-0.94/tests/stress/apps/modis_midway/modis.timeout
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/modis.timeout (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/modis.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+999999
Added: branches/release-0.94/tests/stress/apps/modis_midway/run
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/run (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/run 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+set -x
+
+swift -config cf -sites.file local.xml -tc.file tc ../modis.swift -modisdir=input/
Property changes on: branches/release-0.94/tests/stress/apps/modis_midway/run
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_midway/sandyb.xml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/sandyb.xml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/sandyb.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,17 @@
+<config>
+ <pool handle="midway">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">sandyb</profile>
+ <profile namespace="globus" key="jobsPerNode">16</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.64</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+</config>
Added: branches/release-0.94/tests/stress/apps/modis_midway/sites.template.xml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/sites.template.xml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/sites.template.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,17 @@
+<config>
+ <pool handle="midway">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">sandyb</profile>
+ <profile namespace="globus" key="jobsPerNode">16</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.64</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+</config>
Added: branches/release-0.94/tests/stress/apps/modis_midway/swift.properties
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/swift.properties (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/swift.properties 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,9 @@
+
+wrapperlog.always.transfer=true
+sitedir.keep=true
+execution.retries=0
+lazy.errors=false
+status.mode=provider
+use.provider.staging=true
+provider.staging.pin.swiftfiles=true
+
Added: branches/release-0.94/tests/stress/apps/modis_midway/tc.template.data
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/tc.template.data (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/tc.template.data 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+midway perl /usr/bin/perl null null null
Added: branches/release-0.94/tests/stress/apps/modis_midway/title.txt
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/title.txt (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/title.txt 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+Modis Midway
Added: branches/release-0.94/tests/stress/apps/modis_midway/westmere.xml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_midway/westmere.xml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_midway/westmere.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,19 @@
+<config>
+
+ <pool handle="midway">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">westmere</profile>
+ <profile namespace="globus" key="jobsPerNode">12</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.48</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+</config>
Added: branches/release-0.94/tests/stress/apps/modis_multiple/clean
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/clean (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/clean 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+rm -rf *~ *log *.d ../*.{kml,swiftx} *.out landuse
Property changes on: branches/release-0.94/tests/stress/apps/modis_multiple/clean
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_multiple/getlanduse.pl
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/getlanduse.pl (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/getlanduse.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+
+# Input to this program should be a raw, greyscale RGB file
+# Usage: rgb_histogram.pl myfile.rgb
+
+my $image_filename = shift;
+open(IMAGEFILE, "$image_filename") || die "Unable to open $image_filename!\n";
+binmode IMAGEFILE;
+
+my @pixelcount;
+foreach my $count (0..255) { $pixelcount[$count] = 0; }
+
+# Read values, three bytes at a time
+$/ = \3;
+foreach(<IMAGEFILE>) {
+ $pixelcount[unpack('C', $_)]++;
+}
+close(IMAGEFILE);
+
+ at sortedcount = sort {$b <=> $a} @pixelcount;
+
+foreach my $count (0..255) {
+ if($sortedcount[$count] == 0) { next; }
+ printf("%d %d %02x\n", $sortedcount[$count], $count, $count);
+}
+
+system("hostname -f 2>&1");
+
+sleep(1);
Property changes on: branches/release-0.94/tests/stress/apps/modis_multiple/getlanduse.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_multiple/makeinput
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/makeinput (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/makeinput 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,22 @@
+#! /bin/sh
+
+nfiles=${1:-10}
+
+rm -rf input
+mkdir input
+cp ../data/t? input/
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
Property changes on: branches/release-0.94/tests/stress/apps/modis_multiple/makeinput
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_multiple/modis.args
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/modis.args (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/modis.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-modisdir=input/
\ No newline at end of file
Added: branches/release-0.94/tests/stress/apps/modis_multiple/modis.setup.sh
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/modis.setup.sh (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/modis.setup.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+case $STRESS in
+ "S1")
+ FILES=10
+ ;;
+ "S2")
+ FILES=1000
+ ;;
+ "S3")
+ FILES=10000
+ ;;
+ "S4")
+ FILES=10000
+ ;;
+ *)
+ FILES=1000
+ ;;
+esac
+
+nfiles=${FILES:-10}
+#OVERRIDE_GLOBUS_HOSTNAME "swift.rcc.uchicago.edu"
+rm -rf input
+mkdir input
+cp $(dirname $GROUP)/data/t? input/
+cp $GROUP/getlanduse.pl ./
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
+
+#makeinput
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/apps/modis_multiple/modis.setup.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_multiple/modis.swift
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/modis.swift (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/modis.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,25 @@
+type imagefile;
+type landuse;
+type perlscript;
+
+perlscript getlanduse_pl <"getlanduse.pl">;
+
+app (landuse output) getLandUse (imagefile input, perlscript ps)
+{
+ perl @ps @filename(input) stdout=@filename(output);
+}
+
+# Constants and command line arguments
+int nFiles = @toInt(@arg("nfiles", "1000"));
+string MODISdir = @arg("modisdir", "../data/modis/2002");
+
+# Input Dataset
+imagefile geos[] <filesys_mapper; location=MODISdir, suffix=".rgb">;
+
+# Compute the land use summary of each MODIS tile
+landuse land[] <structured_regexp_mapper; source=geos, match="(h..v..)",
+ transform=@strcat("landuse/\\1.landuse.byfreq")>;
+
+foreach g,i in geos {
+ land[i] = getLandUse(g, getlanduse_pl);
+}
Added: branches/release-0.94/tests/stress/apps/modis_multiple/modis.timeout
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/modis.timeout (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/modis.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+999999
Added: branches/release-0.94/tests/stress/apps/modis_multiple/run
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/run (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/run 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+set -x
+
+swift -config cf -sites.file local.xml -tc.file tc ../modis.swift -modisdir=input/
Property changes on: branches/release-0.94/tests/stress/apps/modis_multiple/run
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_multiple/sites.template.xml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/sites.template.xml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/sites.template.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,71 @@
+<config>
+
+ <pool handle="uc3">
+ <execution provider="coaster" url="uc3-sub.uchicago.edu" jobmanager="ssh-cl:condor"/>
+ <profile namespace="karajan" key="jobThrottle">10.00</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <profile namespace="globus" key="jobsPerNode">1</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">1000</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="globus" key="condor.+AccountingGroup">"group_friends.{env.USER}"</profile>
+ <profile namespace="globus" key="jobType">nonshared</profile>
+ <!-- <profile namespace="globus" key="condor.+Requirements">isUndefined(GLIDECLIENT_Name) == FALSE</profile> -->
+ <workdirectory>.</workdirectory>
+ </pool>
+
+ <pool handle="beagle">
+ <execution provider="coaster" jobmanager="ssh-cl:pbs" url="login4.beagle.ci.uchicago.edu"/>
+ <profile namespace="globus" key="jobsPerNode">24</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <!-- <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24</profile> -->
+ <profile namespace="globus" key="providerAttributes">pbs.aprun;pbs.mpp;depth=24;pbs.resource_list=advres=wilde.1768</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="userHomeOverride">/lustre/beagle/{env.USER}/swiftwork</profile>
+ <profile namespace="globus" key="slots">5</profile>
+ <profile namespace="globus" key="maxnodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">4.80</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}/swiftwork</workdirectory>
+ </pool>
+
+ <pool handle="sandyb">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">sandyb</profile>
+ <profile namespace="globus" key="jobsPerNode">16</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.64</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+ <pool handle="westmere">
+ <execution provider="coaster" jobmanager="local:slurm"/>
+ <profile namespace="globus" key="queue">westmere</profile>
+ <profile namespace="globus" key="jobsPerNode">12</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="maxTime">3600</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">4</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="karajan" key="jobThrottle">.48</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <workdirectory>/tmp/{env.USER}</workdirectory>
+ </pool>
+
+</config>
Added: branches/release-0.94/tests/stress/apps/modis_multiple/swift.properties
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/swift.properties (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/swift.properties 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,8 @@
+
+wrapperlog.always.transfer=true
+sitedir.keep=true
+execution.retries=0
+lazy.errors=false
+status.mode=provider
+use.provider.staging=true
+provider.staging.pin.swiftfiles=false
Added: branches/release-0.94/tests/stress/apps/modis_multiple/tc.template.data
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/tc.template.data (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/tc.template.data 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,4 @@
+uc3 perl /usr/bin/perl null null null
+beagle perl /usr/bin/perl null null null
+#sandy perl /usr/bin/perl null null null
+westmere perl /usr/bin/perl null null null
Added: branches/release-0.94/tests/stress/apps/modis_multiple/title.txt
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_multiple/title.txt (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_multiple/title.txt 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+Modis Multiple Sites
Added: branches/release-0.94/tests/stress/apps/modis_uc3/clean
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/clean (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/clean 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+rm -rf *~ *log *.d ../*.{kml,swiftx} *.out landuse
Property changes on: branches/release-0.94/tests/stress/apps/modis_uc3/clean
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_uc3/getlanduse.pl
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/getlanduse.pl (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/getlanduse.pl 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+
+# Input to this program should be a raw, greyscale RGB file
+# Usage: rgb_histogram.pl myfile.rgb
+
+my $image_filename = shift;
+open(IMAGEFILE, "$image_filename") || die "Unable to open $image_filename!\n";
+binmode IMAGEFILE;
+
+my @pixelcount;
+foreach my $count (0..255) { $pixelcount[$count] = 0; }
+
+# Read values, three bytes at a time
+$/ = \3;
+foreach(<IMAGEFILE>) {
+ $pixelcount[unpack('C', $_)]++;
+}
+close(IMAGEFILE);
+
+ at sortedcount = sort {$b <=> $a} @pixelcount;
+
+foreach my $count (0..255) {
+ if($sortedcount[$count] == 0) { next; }
+ printf("%d %d %02x\n", $sortedcount[$count], $count, $count);
+}
+
+system("hostname -f 2>&1");
+
+sleep(1);
Property changes on: branches/release-0.94/tests/stress/apps/modis_uc3/getlanduse.pl
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_uc3/makeinput
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/makeinput (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/makeinput 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,22 @@
+#! /bin/sh
+
+nfiles=${1:-10}
+
+rm -rf input
+mkdir input
+cp ../data/t? input/
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
Property changes on: branches/release-0.94/tests/stress/apps/modis_uc3/makeinput
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_uc3/modis.args
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/modis.args (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/modis.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-modisdir=input/
\ No newline at end of file
Added: branches/release-0.94/tests/stress/apps/modis_uc3/modis.kml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/modis.kml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/modis.kml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,200 @@
+<project><!-- CACHE ID 5384750e-183f-421c-bdc7-502c4e357001-no-provenance -->
+ <import file="sys.xml"/>
+ <import file="scheduler.xml"/>
+ <import file="rlog.xml"/>
+ <import file="vdl.k"/>
+ <types>
+ <xs:schema targetNamespace="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns="http://ci.uchicago.edu/swift/2009/02/swiftscript" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:simpleType name="imagefile">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ <xs:simpleType name="landuse">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ <xs:simpleType name="perlscript">
+ <xs:restriction base="string"/>
+ </xs:simpleType>
+ </xs:schema>
+ </types>
+ <global name="swift#string#17009">
+ <vdl:new type="string" value="landuse/\1.landuse.byfreq" />
+ </global>
+ <global name="swift#string#17002">
+ <vdl:new type="string" value="modisdir" />
+ </global>
+ <global name="swift#string#17007">
+ <vdl:new type="string" value="(h..v..)" />
+ </global>
+ <global name="swift#string#17000">
+ <vdl:new type="string" value="nfiles" />
+ </global>
+ <global name="swift#string#17003">
+ <vdl:new type="string" value="../data/modis/2002" />
+ </global>
+ <global name="swift#string#17005">
+ <vdl:new type="string" value=".rgb" />
+ </global>
+ <global name="swift#string#17001">
+ <vdl:new type="string" value="1000" />
+ </global>
+ <element name="get_land_use" arguments="output,input,ps" _defline="7">
+
+
+
+ <unitStart name="get_land_use" line="7" type="PROCEDURE" outputs="output"/>
+ <vdl:execute>
+ <vdl:tr>perl</vdl:tr>
+ <vdl:stagein var="{input}"/>
+ <vdl:stagein var="{ps}"/>
+ <vdl:stageout var="{output}"/>
+
+ <vdl:arguments>
+ <swiftscript:filename _traceline="9">
+ <variable>ps</variable>
+ </swiftscript:filename>
+ <swiftscript:filename _traceline="9">
+ <variable>input</variable>
+ </swiftscript:filename>
+ </vdl:arguments>
+ <vdl:stdout>
+ <swiftscript:filename _traceline="9">
+ <variable>output</variable>
+ </swiftscript:filename>
+ </vdl:stdout>
+ </vdl:execute>
+ <vdl:closedataset var="{output}"/>
+ <unitEnd name="get_land_use" line="7" type="PROCEDURE"/></element>
+
+ <set name="getlanduse_pl">
+ <vdl:new type="perlscript" dbgname="getlanduse_pl" _defline="5" input="true">
+ <vdl:mapping descriptor="single_file_mapper">
+ <vdl:parameter name="file" value="getlanduse.pl"/>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="nFiles">
+ <vdl:new type="int" dbgname="nFiles" waitCount="1" _defline="13"/>
+ </set>
+
+ <set name="MODISdir">
+ <vdl:new type="string" dbgname="MODISdir" waitCount="1" _defline="14"/>
+ </set>
+
+ <set name="swift#mapper#17004">
+ <vdl:new type="string" dbgname="swift#mapper#17004" _defline=""/>
+ </set>
+
+ <set name="geos">
+ <vdl:new type="imagefile[]" dbgname="geos" _defline="17" input="true">
+ <vdl:mapping descriptor="filesys_mapper">
+ <vdl:parameter name="location"><variable>MODISdir</variable></vdl:parameter>
+ <vdl:parameter name="suffix"><vdl:new type="string" value=".rgb" /></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <set name="swift#mapper#17006">
+ <vdl:new type="string" dbgname="swift#mapper#17006" _defline=""/>
+ </set>
+
+ <set name="swift#mapper#17008">
+ <vdl:new type="string" dbgname="swift#mapper#17008" _defline=""/>
+ </set>
+
+ <set name="land">
+ <vdl:new type="landuse[]" dbgname="land" waitCount="1" _defline="20">
+ <vdl:mapping descriptor="structured_regexp_mapper">
+ <vdl:parameter name="source"><variable>geos</variable></vdl:parameter>
+ <vdl:parameter name="match"><vdl:new type="string" value="(h..v..)" /></vdl:parameter>
+ <vdl:parameter name="transform"><variable>swift#mapper#17008</variable></vdl:parameter>
+ </vdl:mapping>
+ </vdl:new>
+ </set>
+
+ <restartLog>
+ <vdl:mains>
+ <vdl:startprogressticker />
+ <vdl:mainp>
+ <uparallel>
+ <sequential>
+ <vdl:setfieldvalue _traceline="14">
+ <variable>nFiles</variable>
+ <swiftscript:to_int _traceline="13">
+ <swiftscript:arg _traceline="13">
+ <variable>swift#string#17000</variable><variable>swift#string#17001</variable>
+ </swiftscript:arg>
+ </swiftscript:to_int>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{nFiles}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="17">
+ <variable>MODISdir</variable>
+ <swiftscript:arg _traceline="14">
+ <variable>swift#string#17002</variable><variable>swift#string#17003</variable>
+ </swiftscript:arg>
+ </vdl:setfieldvalue>
+ <partialCloseDataset var="{MODISdir}"/>
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17004</variable>
+ <variable>swift#string#17005</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17006</variable>
+ <variable>swift#string#17007</variable>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:setfieldvalue _traceline="-1">
+ <variable>swift#mapper#17008</variable>
+ <swiftscript:strcat _traceline="21">
+ <variable>swift#string#17009</variable>
+ </swiftscript:strcat>
+ </vdl:setfieldvalue>
+
+ </sequential>
+ <sequential>
+ <vdl:tparallelFor name="$"_kvar="i" _vvar="g" refs="land 1">
+ <getarrayiterator>
+ <variable>geos</variable>
+ </getarrayiterator>
+ <set names="$$, g">
+ <each items="{$}"/>
+ </set>
+ <set name="i">
+ <vdl:new type="int" value="{$$}"/>
+ </set>
+ <unitStart line="23" type="FOREACH_IT"/>
+ <sequentialWithID>
+ <sequential>
+ <get_land_use _traceline="24">
+ <vdl:getfieldsubscript>
+ <argument name="var"><variable>land</variable></argument>
+ <argument name="subscript"><variable>i</variable></argument>
+ </vdl:getfieldsubscript>
+ <variable>g</variable>
+ <variable>getlanduse_pl</variable>
+ </get_land_use>
+ <partialCloseDataset var="{land}"/>
+ </sequential>
+ </sequentialWithID>
+ <unitEnd line="23" type="FOREACH_IT"/>
+ </vdl:tparallelFor>
+ </sequential>
+ </uparallel>
+ </vdl:mainp>
+ <vdl:stopprogressticker />
+ </vdl:mains>
+ </restartLog>
+ <vdl:cleandataset var="{geos}"/>
+ <vdl:cleandataset var="{getlanduse_pl}"/>
+ <vdl:cleandataset var="{land}"/>
+ <vdl:cleandataset shutdown="true"/>
+</project>
Added: branches/release-0.94/tests/stress/apps/modis_uc3/modis.setup.sh
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/modis.setup.sh (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/modis.setup.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+case $STRESS in
+ "S1")
+ FILES=10
+ ;;
+ "S2")
+ FILES=1000
+ ;;
+ "S3")
+ FILES=10000
+ ;;
+ "S4")
+ FILES=10000
+ ;;
+ *)
+ FILES=1000
+ ;;
+esac
+
+nfiles=${FILES:-10}
+#OVERRIDE_GLOBUS_HOSTNAME "swift.rcc.uchicago.edu"
+rm -rf input
+mkdir input
+cp $(dirname $GROUP)/data/t? input/
+cp $GROUP/getlanduse.pl ./
+( cd input
+ n=0
+ for h in $(seq -w 00 99); do
+ for v in $(seq -w 00 99); do
+ n=$((n+1))
+ if [ $n -gt $nfiles ]; then
+ break;
+ else
+ f=t$(echo $RANDOM | sed -e 's/.*\(.\)/\1/')
+ ln $f h${h}v${v}.rgb
+ fi
+ done
+ done
+ rm t?
+)
+
+#makeinput
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/apps/modis_uc3/modis.setup.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_uc3/modis.swift
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/modis.swift (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/modis.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,25 @@
+type imagefile;
+type landuse;
+type perlscript;
+
+perlscript getlanduse_pl <"getlanduse.pl">;
+
+app (landuse output) getLandUse (imagefile input, perlscript ps)
+{
+ perl @ps @filename(input) stdout=@filename(output);
+}
+
+# Constants and command line arguments
+int nFiles = @toInt(@arg("nfiles", "1000"));
+string MODISdir = @arg("modisdir", "../data/modis/2002");
+
+# Input Dataset
+imagefile geos[] <filesys_mapper; location=MODISdir, suffix=".rgb">;
+
+# Compute the land use summary of each MODIS tile
+landuse land[] <structured_regexp_mapper; source=geos, match="(h..v..)",
+ transform=@strcat("landuse/\\1.landuse.byfreq")>;
+
+foreach g,i in geos {
+ land[i] = getLandUse(g, getlanduse_pl);
+}
Added: branches/release-0.94/tests/stress/apps/modis_uc3/modis.timeout
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/modis.timeout (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/modis.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+999999
Added: branches/release-0.94/tests/stress/apps/modis_uc3/run
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/run (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/run 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+set -x
+
+swift -config swift.properties -sites.file sites.template.xml -tc.file tc.template.data modis.swift -modisdir=input/
Property changes on: branches/release-0.94/tests/stress/apps/modis_uc3/run
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/apps/modis_uc3/sites.template.xml
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/sites.template.xml (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/sites.template.xml 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,19 @@
+<config>
+ <pool handle="uc3">
+ <execution provider="coaster" url="uc3-sub.uchicago.edu" jobmanager="ssh-cl:condor"/>
+ <profile namespace="karajan" key="jobThrottle">10.00</profile>
+ <profile namespace="karajan" key="initialScore">10000</profile>
+ <profile namespace="globus" key="jobsPerNode">1</profile>
+ <profile namespace="globus" key="maxtime">3600</profile>
+ <profile namespace="globus" key="maxWalltime">00:05:00</profile>
+ <profile namespace="globus" key="highOverAllocation">100</profile>
+ <profile namespace="globus" key="lowOverAllocation">100</profile>
+ <profile namespace="globus" key="slots">1000</profile>
+ <profile namespace="globus" key="maxNodes">1</profile>
+ <profile namespace="globus" key="nodeGranularity">1</profile>
+ <profile namespace="globus" key="condor.+AccountingGroup">"group_friends.{env.USER}"</profile>
+ <profile namespace="globus" key="jobType">nonshared</profile>
+ <workdirectory>.</workdirectory>
+ </pool>
+
+</config>
Added: branches/release-0.94/tests/stress/apps/modis_uc3/swift.properties
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/swift.properties (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/swift.properties 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,8 @@
+
+wrapperlog.always.transfer=true
+sitedir.keep=true
+execution.retries=0
+lazy.errors=false
+status.mode=provider
+use.provider.staging=true
+provider.staging.pin.swiftfiles=false
Added: branches/release-0.94/tests/stress/apps/modis_uc3/tc.template.data
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/tc.template.data (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/tc.template.data 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+uc3 perl /usr/bin/perl null null null
Added: branches/release-0.94/tests/stress/apps/modis_uc3/title.txt
===================================================================
--- branches/release-0.94/tests/stress/apps/modis_uc3/title.txt (rev 0)
+++ branches/release-0.94/tests/stress/apps/modis_uc3/title.txt 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+Modis UC3
Added: branches/release-0.94/tests/stress/internals/.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,7 @@
+#NIGHTLY 1000 10000
+#WEEKLY 10000 100000 1000000
+define(S3, 100000)
+define(S2, 10000)
+define(S1, 1000)
+-loops=$(esyscmd(`printf $STRESS') )
+
Added: branches/release-0.94/tests/stress/internals/m4_template_gen.sh
===================================================================
--- branches/release-0.94/tests/stress/internals/m4_template_gen.sh (rev 0)
+++ branches/release-0.94/tests/stress/internals/m4_template_gen.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+for i in $(ls *swift)
+do
+ NAME=${i%.swift};
+ ARGS="$NAME.args.m4"
+ if [ -f $ARGS ]; then
+ rm $ARGS;
+ fi;
+ grep "#NIGHTLY" $i >> $ARGS
+ grep "#WEEKLY" $i >> $ARGS
+ cat test.args.m4 >> $ARGS
+done
\ No newline at end of file
Property changes on: branches/release-0.94/tests/stress/internals/m4_template_gen.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/internals/scripts.sh
===================================================================
--- branches/release-0.94/tests/stress/internals/scripts.sh (rev 0)
+++ branches/release-0.94/tests/stress/internals/scripts.sh 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+SWIFTSCRIPT=x_func.swift;
+
+SWIFT_ITERATIONS=`grep "#NIGHTLY" $SWIFTSCRIPT`;
+if [ "$?" == "0" ]; then
+ echo "SWIFT_ITERATIONS : $SWIFT_ITERATIONS";
+ SWIFT_ITERATIONS=($SWIFT_ITERATIONS);
+ echo "${SWIFT_ITERATIONS[1]}";
+ echo "${SWIFT_ITERATIONS[2]}";
+
+fi;
Property changes on: branches/release-0.94/tests/stress/internals/scripts.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/release-0.94/tests/stress/internals/test.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/test.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/test.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 100000)dnl
+define(S3, 100000)dnl
+define(S2, 10000)dnl
+define(S1, 1000)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/title.txt
===================================================================
--- branches/release-0.94/tests/stress/internals/title.txt (rev 0)
+++ branches/release-0.94/tests/stress/internals/title.txt 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+Stress-Swift Internals
Added: branches/release-0.94/tests/stress/internals/x_append_iter.args
===================================================================
--- branches/release-0.94/tests/stress/internals/x_append_iter.args (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_append_iter.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-loops=100
Added: branches/release-0.94/tests/stress/internals/x_append_iter.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/x_append_iter.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_append_iter.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 10000)dnl
+define(S3, 10000)dnl
+define(S2, 1000)dnl
+define(S1, 100)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/x_append_iter.swift
===================================================================
--- branches/release-0.94/tests/stress/internals/x_append_iter.swift (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_append_iter.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,27 @@
+/*
+ Iterate loops with variable number of loops
+ to be called with cmdline arg -loops=<Number>
+
+ todo : Fails to compile on 0.94 ? check
+ Compiles on 0.93 (Regression noted)
+ perhaps this isn't a very scalable test :(
+ stats: 1K -> 2.458s real
+ 10K -> Java heap space ? exec failed
+ 100K -> ?
+ 1M -> java.langOutOfMemoryError thrown
+ 10M -> ?
+#NIGHTLY 1000
+#WEEKLY 1000 10000
+*/
+
+int limit = @toint(@arg("loops"));
+string result[];
+result[0] = "banana";
+
+iterate current {
+ result[current+1] = @strcat(result[current], "banana");
+ // tracef("result[current] = %s \n", result[current]);
+} until ( current > limit );
+
+tracef("Result[0] = %s \n", result[0]);
+tracef("Result[%i] = %s \n", limit, result[limit]);
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_foreach.args
===================================================================
--- branches/release-0.94/tests/stress/internals/x_foreach.args (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_foreach.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-loops=1000
Added: branches/release-0.94/tests/stress/internals/x_foreach.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/x_foreach.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_foreach.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 1000000)dnl
+define(S3, 100000)dnl
+define(S2, 10000)dnl
+define(S1, 1000)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/x_foreach.swift
===================================================================
--- branches/release-0.94/tests/stress/internals/x_foreach.swift (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_foreach.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,17 @@
+/*
+ Foreach loops with variable number of loops
+ to be called with cmdline arg -loops=<Number>
+
+#NIGHTLY 10000 100000
+#WEEKLY 1000 10000 1000000
+*/
+
+int limit = @toint(@arg("loops"));
+int result[];
+
+foreach num, index in [1:limit:1] {
+ result[index] = index;
+}
+
+tracef("Result[0] = %i \n", result[0]);
+tracef("Result[%i] = %i \n", limit, result[limit]);
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_func.args
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func.args (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-loops=1000
Added: branches/release-0.94/tests/stress/internals/x_func.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 1000000)dnl
+define(S3, 100000)dnl
+define(S2, 10000)dnl
+define(S1, 1000)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/x_func.swift
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func.swift (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,36 @@
+/*
+ Test reliability of function calls over large scale
+
+ tested on : 0.94
+ using ints
+
+ stats: 1K -> 3.059s
+ 10K -> 5.047s (result is probably wrong)
+ 100K -> 31.85s
+ 1M -> Exception in thread "Hang checker"
+ java.lang.StackOverflowError
+ at java.util.HashMap.put(HashMap.java:484)
+ at java.util.HashSet.add(HashSet.java:217)
+
+#NIGHTLY 1000 10000 100000
+#WEEKLY 1000 10000 100000 1000000
+ */
+
+int limit = @toInt(@arg("loops"));
+int range[] = [2:limit:1];
+int array[];
+
+(int out) sum (int a, int b){
+ out = a + b ;
+}
+
+array[0] = 0;
+array[1] = 1;
+
+foreach num in range {
+ array[num] = sum(array[num-1], array[num-2]);
+}
+
+tracef("Fibonacci[2] = %i \n", array[2]);
+tracef("Fibinacci[%i] = %i \n", limit, array[limit]);
+
Added: branches/release-0.94/tests/stress/internals/x_func.timeout
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func.timeout (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+99999
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_func_float.args
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func_float.args (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func_float.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-loops=1000
Added: branches/release-0.94/tests/stress/internals/x_func_float.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func_float.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func_float.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 1000000)dnl
+define(S3, 100000)dnl
+define(S2, 10000)dnl
+define(S1, 1000)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/x_func_float.swift
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func_float.swift (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func_float.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,36 @@
+/*
+ Test reliability of function calls over large scale
+
+ tested on : 0.94
+ todo : Redo with floats as numbers either become too big
+ Floats give infinity for fib[10K]
+ stats: 10K -> ?
+ 100K ->
+ 1M -> Exception in thread "Hang checker"
+ java.lang.StackOverflowError
+ at java.util.HashMap.put(HashMap.java:484)
+ at java.util.HashSet.add(HashSet.java:217)
+
+#NIGHTLY 1000 10000 100000
+#WEEKLY 1000 10000 100000 1000000
+
+ */
+
+int limit = @toInt(@arg("loops"));
+int range[] = [2:limit:1];
+float array[];
+
+(float out) sum (float a, float b){
+ out = a + b ;
+}
+
+array[0] = 0.0;
+array[1] = 1.0;
+
+foreach num in range {
+ array[num] = sum(array[num-1], array[num-2]);
+}
+
+tracef("Fibonacci[2] = %f \n", array[2]);
+tracef("Fibinacci[%i] = %f \n", limit, array[limit]);
+
Added: branches/release-0.94/tests/stress/internals/x_func_float.timeout
===================================================================
--- branches/release-0.94/tests/stress/internals/x_func_float.timeout (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_func_float.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+999999
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_iterate.args
===================================================================
--- branches/release-0.94/tests/stress/internals/x_iterate.args (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_iterate.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-loops=100000
Added: branches/release-0.94/tests/stress/internals/x_iterate.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/x_iterate.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_iterate.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 1000000)dnl
+define(S3, 1000000)dnl
+define(S2, 100000)dnl
+define(S1, 10000)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/x_iterate.swift
===================================================================
--- branches/release-0.94/tests/stress/internals/x_iterate.swift (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_iterate.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,23 @@
+/*
+ Iterate loops with variable number of loops
+ to be called with cmdline arg -loops=<Number>
+
+ todo : Fails to compile on 0.94
+ Compiles on 0.93 (Regression noted)
+ stats: 100k -> 17s (core i5)
+ 1M -> java.langOutOfMemoryError thrown
+
+#NIGHTLY 1000 10000 100000
+#WEEKLY 1000 10000 100000 1000000
+*/
+
+int limit = @toint(@arg("loops"));
+int result[];
+
+iterate current {
+ result[current] = current;
+ // tracef("result[current] = %i \n", result[current]);
+} until ( current > limit );
+
+tracef("Result[0] = %i \n", result[0]);
+tracef("Result[%i] = %i \n", limit, result[limit]);
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_recursion.args
===================================================================
--- branches/release-0.94/tests/stress/internals/x_recursion.args (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_recursion.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-loops=10000
Added: branches/release-0.94/tests/stress/internals/x_recursion.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/x_recursion.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_recursion.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 100000)dnl
+define(S3, 100000)dnl
+define(S2, 10000)dnl
+define(S1, 1000)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/x_recursion.swift
===================================================================
--- branches/release-0.94/tests/stress/internals/x_recursion.swift (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_recursion.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,45 @@
+/*
+ Linear tail recursion.
+ Expect linear growth only, so usual loop numbers match
+ as for earlier scripts.
+
+ stats: 1K -> 25s real (i5 8gb)
+ 10K -> (10% ram 8gb in use by java)
+Uncaught exception: java.lang.StackOverflowError in vdl:unitstart @ x_recursion.kml, line: 45
+java.lang.StackOverflowError
+ at java.lang.String.valueOf(String.java:2959)
+ at org.globus.cog.karajan.util.ThreadingContext.toString(ThreadingContext.java:87)
+ at org.globus.cog.karajan.util.ThreadingContext.toString(ThreadingContext.java:87)
+ ...
+Exception is: java.lang.StackOverflowError
+Near Karajan line: vdl:unitstart @ x_recursion.kml, line: 45
+Another uncaught exception while handling an uncaught exception.
+java.lang.StackOverflowError
+ at org.globus.cog.karajan.workflow.nodes.FlowNode.failImmediately(FlowNode.java:77)
+ at org.globus.cog.karajan.workflow.nodes.FlowNode.failed(FlowNode.java:245)
+ ...
+The initial exception was
+java.lang.StackOverflowError
+ at java.lang.String.valueOf(String.java:2959)
+ at org.globus.cog.karajan.util.ThreadingContext.toString(ThreadingContext.java:87)
+ at org.globus.cog.karajan.util.ThreadingContext.toString(ThreadingContext.java:87)
+
+ 100K -> ?
+
+#NIGHTLY 1000 10000
+#WEEKLY 1000 10000 100000
+*/
+
+int limit = @toint(@arg("loops"));
+
+(int out) sum (int n){
+ if ( n == 0 ){
+ out = 0;
+ }else{
+ out = n + sum( n-1 );
+ }
+}
+
+int result = sum(limit);
+
+tracef("Sum(%i) = %i \n", limit, result);
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_recursion.timeout
===================================================================
--- branches/release-0.94/tests/stress/internals/x_recursion.timeout (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_recursion.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+99999
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_sleep.args
===================================================================
--- branches/release-0.94/tests/stress/internals/x_sleep.args (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_sleep.args 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+-loops=10000
Added: branches/release-0.94/tests/stress/internals/x_sleep.args.m4
===================================================================
--- branches/release-0.94/tests/stress/internals/x_sleep.args.m4 (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_sleep.args.m4 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,6 @@
+define(S4, 1000000)dnl
+define(S3, 100000)dnl
+define(S2, 10000)dnl
+define(S1, 1000)dnl
+-loops=esyscmd(`printf $STRESS') dnl
+
Added: branches/release-0.94/tests/stress/internals/x_sleep.swift
===================================================================
--- branches/release-0.94/tests/stress/internals/x_sleep.swift (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_sleep.swift 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1,24 @@
+/*
+ Foreach loops with variable number of loops
+ to be called with cmdline arg -loops=<Number>
+ todo: measure actual times with expected times.
+
+ This is probably better for a larger system.
+ Could take forever to execute on i5s for even modest scales.
+ stats: 1K -> real 41m55.779s
+
+#NIGHTLY 1000 10000
+#WEEKLY 10000 100000 1000000
+*/
+
+int limit = @toint(@arg("loops"));
+int range[] = [0:limit:1];
+int result[];
+
+app sleep (int seconds){
+ sleep seconds;
+}
+
+foreach num in range {
+ sleep(num%%5);
+}
\ No newline at end of file
Added: branches/release-0.94/tests/stress/internals/x_sleep.timeout
===================================================================
--- branches/release-0.94/tests/stress/internals/x_sleep.timeout (rev 0)
+++ branches/release-0.94/tests/stress/internals/x_sleep.timeout 2013-04-11 20:29:12 UTC (rev 6430)
@@ -0,0 +1 @@
+999999
\ No newline at end of file
More information about the Swift-commit
mailing list