[Swift-commit] r7428 - in trunk/examples/tutorial: . bin part01 part02 part03 part04 part05 part06
davidk at ci.uchicago.edu
davidk at ci.uchicago.edu
Fri Dec 13 15:30:34 CST 2013
Author: davidk
Date: 2013-12-13 15:30:34 -0600 (Fri, 13 Dec 2013)
New Revision: 7428
Added:
trunk/examples/tutorial/bin/
trunk/examples/tutorial/bin/cleanup
trunk/examples/tutorial/bin/simulate
trunk/examples/tutorial/bin/stats
trunk/examples/tutorial/part01/
trunk/examples/tutorial/part01/p1.swift
trunk/examples/tutorial/part01/swift.properties
trunk/examples/tutorial/part02/
trunk/examples/tutorial/part02/p2.swift
trunk/examples/tutorial/part02/swift.properties
trunk/examples/tutorial/part03/
trunk/examples/tutorial/part03/p3.swift
trunk/examples/tutorial/part03/swift.properties
trunk/examples/tutorial/part04/
trunk/examples/tutorial/part04/p4.swift
trunk/examples/tutorial/part04/swift.properties
trunk/examples/tutorial/part05/
trunk/examples/tutorial/part05/p5.swift
trunk/examples/tutorial/part05/swift.properties
trunk/examples/tutorial/part06/
trunk/examples/tutorial/part06/p6.swift
trunk/examples/tutorial/part06/swift.properties
trunk/examples/tutorial/setup.sh
Removed:
trunk/examples/tutorial/MyFirstMapper.java
trunk/examples/tutorial/ParameterSweep/
trunk/examples/tutorial/arrays.swift
trunk/examples/tutorial/capitalise.swift
trunk/examples/tutorial/capitalise_anonymous.swift
trunk/examples/tutorial/default.swift
trunk/examples/tutorial/fixed_array_mapper.1.txt
trunk/examples/tutorial/fixed_array_mapper.2.txt
trunk/examples/tutorial/fixed_array_mapper.3.txt
trunk/examples/tutorial/fixed_array_mapper.swift
trunk/examples/tutorial/foreach.1.txt
trunk/examples/tutorial/foreach.2.txt
trunk/examples/tutorial/foreach.3.txt
trunk/examples/tutorial/foreach.swift
trunk/examples/tutorial/hello.swift
trunk/examples/tutorial/if.swift
trunk/examples/tutorial/manyparam.swift
trunk/examples/tutorial/my_first_mapper.swift
trunk/examples/tutorial/one.txt
trunk/examples/tutorial/parameter.swift
trunk/examples/tutorial/regexp_mapper.swift
trunk/examples/tutorial/regexp_mapper.words.txt
trunk/examples/tutorial/restart.swift
trunk/examples/tutorial/sequential_iteration.swift
trunk/examples/tutorial/three.txt
trunk/examples/tutorial/two.txt
trunk/examples/tutorial/types.swift
trunk/examples/tutorial/wcl
trunk/examples/tutorial/words.txt
Log:
Use new tutorial scripts
Deleted: trunk/examples/tutorial/MyFirstMapper.java
===================================================================
--- trunk/examples/tutorial/MyFirstMapper.java 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/MyFirstMapper.java 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,50 +0,0 @@
-/*
- * Copyright 2012 University of Chicago
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package tutorial;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.griphyn.vdl.mapping.AbsFile;
-import org.griphyn.vdl.mapping.AbstractMapper;
-import org.griphyn.vdl.mapping.Path;
-import org.griphyn.vdl.mapping.PhysicalFormat;
-
-public class MyFirstMapper extends AbstractMapper {
-
- AbsFile myfile = new AbsFile("myfile.txt");
-
- public boolean isStatic() {
- return false;
- }
-
- public Collection existing() {
- if (myfile.exists())
- return Arrays.asList(new Path[] {Path.EMPTY_PATH});
- else
- return Collections.EMPTY_LIST;
- }
-
- public PhysicalFormat map(Path p) {
- if(p.equals(Path.EMPTY_PATH))
- return myfile;
- else
- return null;
- }
-}
Deleted: trunk/examples/tutorial/arrays.swift
===================================================================
--- trunk/examples/tutorial/arrays.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/arrays.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,12 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting (string s[]) {
- echo s[0] s[1] s[2] stdout=@filename(t);
-}
-
-messagefile outfile <"arrays.txt">;
-
-string words[] = ["how","are","you"];
-
-outfile = greeting(words);
-
Added: trunk/examples/tutorial/bin/cleanup
===================================================================
--- trunk/examples/tutorial/bin/cleanup (rev 0)
+++ trunk/examples/tutorial/bin/cleanup 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,2 @@
+rm -rf *.rlog *.kml *.swiftx *.out output outdir logs hi.* _concurrent .swift/tmp run0*
+
Property changes on: trunk/examples/tutorial/bin/cleanup
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/examples/tutorial/bin/simulate
===================================================================
--- trunk/examples/tutorial/bin/simulate (rev 0)
+++ trunk/examples/tutorial/bin/simulate 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,137 @@
+#! /bin/bash
+#
+# Simulate is a
+
+printparams()
+{
+ printf "\nSimulation parameters:\n\n"
+ echo bias=$bias
+ echo biasfile=$biasfile
+ echo initseed=$initseed
+ echo log=$log
+ echo paramfile=$paramfile
+ echo range=$range
+ echo scale=$scale
+ echo seedfile=$seedfile
+ echo timesteps=$timesteps
+ echo output width=$width
+}
+
+log() {
+ printf "\nCalled as: $0: $cmdargs\n\n"
+ printf "Start time: "; /bin/date
+ printf "Running as user: "; /usr/bin/id
+ printf "Running on node: "; /bin/hostname
+ printf "Node IP address: "; /bin/hostname -I
+ printparams
+ printf "\nEnvironment:\n\n"
+ printenv | sort
+}
+
+addsims() {
+ while read f1 ; do
+ read -u 3 f2
+ if [ _$f1 = _ ]; then f1=$lastf1; fi
+ if [ _$f2 = _ ]; then f2=$lastf2; fi
+ printf "%${width}d\n" $(($f1+$f2))
+ lastf1=$f1
+ lastf2=$f2
+ done <$1 3<$2
+}
+
+# set defaults
+
+bias=0
+biasfile=none
+initseed=none
+log=yes
+paramfile=none
+range=100
+scale=1
+seedfile=none
+timesteps=0
+nvalues=1
+width=8
+cmdargs="$*"
+
+usage()
+{
+ echo $( basename $0 ): usage:
+ cat <<END
+ -b|--bias offset bias: add this integer to all results
+ -B|--biasfile file of integer biases to add to results
+ -l|--log generate a log in stderr if not null
+ -n|--nvalues print this many values per simulation
+ -r|--range range (limit) of generated results
+ -s|--seed use this integer [0..32767] as a seed
+ -S|--seedfile use this file (containing integer seeds [0..32767]) one per line
+ -t|--timesteps number of simulated "timesteps" in seconds (determines runtime)
+ -x|--scale scale the results by this integer
+ -h|-?|?|--help print this help
+END
+}
+
+# FIXME: NOT YET IMPLEMENTED:
+# -p|--paramfile take these parameters (in form param=value) from this file
+# -p|--paramfile) paramfile=$2 ;;
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -b|--bias) bias=$2 ;;
+ -B|--biasfile) biasfile=$2 ;;
+ -l|--log) log=$2 ;;
+ -n|--nvalues) nvalues=$2 ;;
+ -s|--seed) initseed=$2 ;;
+ -S|--seedfile) seedfile=$2 ;;
+ -t|--timesteps) timesteps=$2 ;;
+ -r|--range) range=$2 ;;
+ -w|--width) width=$2 ;;
+ -x|--scale) scale=$2 ;;
+ -h|-?|--help|*) usage; exit ;;
+ esac
+ shift 2
+done
+
+# process initial seed
+
+if [ $initseed != none ]; then
+ RANDOM=$initseed
+fi
+
+# process file of seeds
+
+if [ $seedfile != none ]; then
+ seed=0
+ while read $seedfile s; do
+ seed=$(($seed+$s))
+ done <$seedfile
+ RANDOM=$seed
+fi
+
+# run for some number of "timesteps"
+
+sleep $timesteps
+
+# emit N (nvalues) "simulation results" scaled and biased by argument values
+
+simout=$(mktemp simout.XXXX)
+for ((i=0;i<nvalues;i++)); do
+ # value=$(( (($RANDOM)*(2**16))+$RANDOM ))
+ value=$(( (($RANDOM)*(2**48)) + (($RANDOM)*(2**32)) + (($RANDOM)*(2**16)) + $RANDOM ))
+ printf "%${width}d\n" $(( ($value%range)*scale+bias))
+done >$simout
+
+# process file of biases
+
+if [ $biasfile != none ]; then
+ addsims $simout $biasfile
+else
+ cat $simout
+fi
+rm $simout
+
+# log environmental data
+
+if [ $log != off ]; then
+ log 1>&2
+fi
Property changes on: trunk/examples/tutorial/bin/simulate
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/examples/tutorial/bin/stats
===================================================================
--- trunk/examples/tutorial/bin/stats (rev 0)
+++ trunk/examples/tutorial/bin/stats 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+log() {
+ printf "\nCalled as: $0: $cmdargs\n\n"
+ printf "Start time: "; /bin/date
+ printf "Running as user: "; /usr/bin/id
+ printf "Running on node: "; /bin/hostname
+ printf "Node IP address: "; /bin/hostname -I
+ printf "\nEnvironment:\n\n"
+ printenv | sort
+}
+
+awk '
+
+{ sum += $1}
+
+END { printf("%d\n",sum/NR) }
+' $*
+log 1>&2
Property changes on: trunk/examples/tutorial/bin/stats
___________________________________________________________________
Added: svn:executable
+ *
Deleted: trunk/examples/tutorial/capitalise.swift
===================================================================
--- trunk/examples/tutorial/capitalise.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/capitalise.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,14 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting (string s) {
- echo s stdout=@filename(t);
-}
-
-app (messagefile o) capitalise(messagefile i) {
- tr "[a-z]" "[A-Z]" stdin=@filename(i) stdout=@filename(o);
-}
-
-messagefile hellofile <"capitalise.1.txt">;
-messagefile final <"capitalise.2.txt">;
-hellofile = greeting("hello from Swift");
-final = capitalise(hellofile);
Deleted: trunk/examples/tutorial/capitalise_anonymous.swift
===================================================================
--- trunk/examples/tutorial/capitalise_anonymous.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/capitalise_anonymous.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,14 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting (string s) {
- echo s stdout=@filename(t);
-}
-
-app (messagefile o) capitalise(messagefile i) {
- tr "[a-z]" "[A-Z]" stdin=@filename(i) stdout=@filename(o);
-}
-
-messagefile hellofile;
-messagefile final <"capitalise_anonymous.txt">;
-hellofile = greeting("hello from Swift");
-final = capitalise(hellofile);
Deleted: trunk/examples/tutorial/default.swift
===================================================================
--- trunk/examples/tutorial/default.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/default.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,15 +0,0 @@
-type file;
-
-// s has a default value
-app (file t) echo (string s="hello world") {
- echo s stdout=@filename(t);
-}
-
-file hw1<"default.1.txt">;
-file hw2<"default.2.txt">;
-
-// procedure call using the default value
-hw1 = echo();
-
-// using a different value
-hw2 = echo(s="hello again");
Deleted: trunk/examples/tutorial/fixed_array_mapper.1.txt
===================================================================
--- trunk/examples/tutorial/fixed_array_mapper.1.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/fixed_array_mapper.1.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-one
Deleted: trunk/examples/tutorial/fixed_array_mapper.2.txt
===================================================================
--- trunk/examples/tutorial/fixed_array_mapper.2.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/fixed_array_mapper.2.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-two words
Deleted: trunk/examples/tutorial/fixed_array_mapper.3.txt
===================================================================
--- trunk/examples/tutorial/fixed_array_mapper.3.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/fixed_array_mapper.3.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-three words now
Deleted: trunk/examples/tutorial/fixed_array_mapper.swift
===================================================================
--- trunk/examples/tutorial/fixed_array_mapper.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/fixed_array_mapper.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,16 +0,0 @@
-type messagefile;
-type countfile;
-
-app (countfile t) countwords (messagefile f) {
- wc "-w" @filename(f) stdout=@filename(t);
-}
-
-string inputNames = "fixed_array_mapper.1.txt fixed_array_mapper.2.txt fixed_array_mapper.3.txt";
-string outputNames = "fixed_array_mapper.1.count fixed_array_mapper.2.count fixed_array_mapper.3.count";
-
-messagefile inputfiles[] <fixed_array_mapper;files=inputNames>;
-countfile outputfiles[] <fixed_array_mapper;files=outputNames>;
-
-outputfiles[0] = countwords(inputfiles[0]);
-outputfiles[1] = countwords(inputfiles[1]);
-outputfiles[2] = countwords(inputfiles[2]);
Deleted: trunk/examples/tutorial/foreach.1.txt
===================================================================
--- trunk/examples/tutorial/foreach.1.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/foreach.1.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-one
Deleted: trunk/examples/tutorial/foreach.2.txt
===================================================================
--- trunk/examples/tutorial/foreach.2.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/foreach.2.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-two words
Deleted: trunk/examples/tutorial/foreach.3.txt
===================================================================
--- trunk/examples/tutorial/foreach.3.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/foreach.3.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-three words now
Deleted: trunk/examples/tutorial/foreach.swift
===================================================================
--- trunk/examples/tutorial/foreach.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/foreach.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,18 +0,0 @@
-type messagefile;
-type countfile;
-
-app (countfile t) countwords (messagefile f) {
- wc "-w" @filename(f) stdout=@filename(t);
-}
-
-string inputNames = "foreach.1.txt foreach.2.txt foreach.3.txt";
-
-messagefile inputfiles[] <fixed_array_mapper;files=inputNames>;
-
-foreach f in inputfiles {
- countfile c<regexp_mapper;
- source=@f,
- match="(.*)txt",
- transform="\\1count">;
- c = countwords(f);
-}
Deleted: trunk/examples/tutorial/hello.swift
===================================================================
--- trunk/examples/tutorial/hello.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/hello.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,10 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting() {
- echo "Hello, world!" stdout=@filename(t);
-}
-
-messagefile outfile <"hello.txt">;
-
-outfile = greeting();
-
Deleted: trunk/examples/tutorial/if.swift
===================================================================
--- trunk/examples/tutorial/if.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/if.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,16 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting (string s) {
- echo s stdout=@filename(t);
-}
-
-messagefile outfile <"if.txt">;
-
-boolean morning = true;
-
-if(morning) {
- outfile = greeting("good morning");
-} else {
- outfile = greeting("good afternoon");
-}
-
Deleted: trunk/examples/tutorial/manyparam.swift
===================================================================
--- trunk/examples/tutorial/manyparam.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/manyparam.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,13 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting (string s) {
- echo s stdout=@filename(t);
-}
-
-messagefile english <"manyparam.english.txt">;
-messagefile french <"manyparam.french.txt">;
-messagefile japanese <"manyparam.japanese.txt">;
-
-english = greeting("hello");
-french = greeting("bonjour");
-japanese = greeting("konnichiwa");
Deleted: trunk/examples/tutorial/my_first_mapper.swift
===================================================================
--- trunk/examples/tutorial/my_first_mapper.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/my_first_mapper.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,9 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting() {
- echo "hello" stdout=@filename(t);
-}
-
-messagefile outfile <my_first_mapper>;
-
-outfile = greeting();
Deleted: trunk/examples/tutorial/one.txt
===================================================================
--- trunk/examples/tutorial/one.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/one.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-one
Deleted: trunk/examples/tutorial/parameter.swift
===================================================================
--- trunk/examples/tutorial/parameter.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/parameter.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,8 +0,0 @@
-type messagefile;
-
-app (messagefile t) greeting (string s) {
- echo s stdout=@filename(t);
-}
-
-messagefile outfile <"parameter.hello.txt">;
-outfile = greeting("hello world");
Added: trunk/examples/tutorial/part01/p1.swift
===================================================================
--- trunk/examples/tutorial/part01/p1.swift (rev 0)
+++ trunk/examples/tutorial/part01/p1.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,9 @@
+type file;
+
+app (file o) simulation ()
+{
+ simulate stdout=filename(o);
+}
+
+file f <"sim.out">;
+f = simulation();
Added: trunk/examples/tutorial/part01/swift.properties
===================================================================
--- trunk/examples/tutorial/part01/swift.properties (rev 0)
+++ trunk/examples/tutorial/part01/swift.properties 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1 @@
+site=local
Added: trunk/examples/tutorial/part02/p2.swift
===================================================================
--- trunk/examples/tutorial/part02/p2.swift (rev 0)
+++ trunk/examples/tutorial/part02/p2.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,11 @@
+type file;
+
+app (file o) simulation ()
+{
+ simulate stdout=filename(o);
+}
+
+foreach i in [0:9] {
+ file f <single_file_mapper; file=strcat("output/sim_",i,".out")>;
+ f = simulation();
+}
Added: trunk/examples/tutorial/part02/swift.properties
===================================================================
--- trunk/examples/tutorial/part02/swift.properties (rev 0)
+++ trunk/examples/tutorial/part02/swift.properties 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1 @@
+site=local
Added: trunk/examples/tutorial/part03/p3.swift
===================================================================
--- trunk/examples/tutorial/part03/p3.swift (rev 0)
+++ trunk/examples/tutorial/part03/p3.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,27 @@
+type file;
+
+app (file o) simulation (int sim_steps, int sim_range, int sim_values)
+{
+ simulate "--timesteps" sim_steps "--range" sim_range "--nvalues" sim_values stdout=filename(o);
+}
+
+app (file o) analyze (file s[])
+{
+ stats filenames(s) stdout=filename(o);
+}
+
+int nsim = toInt(arg("nsim","10"));
+int steps = toInt(arg("steps","1"));
+int range = toInt(arg("range","100"));
+int values = toInt(arg("values","5"));
+
+file sims[];
+
+foreach i in [0:nsim-1] {
+ file simout <single_file_mapper; file=strcat("output/sim_",i,".out")>;
+ simout = simulation(steps,range,values);
+ sims[i] = simout;
+}
+
+file stats<"output/average.out">;
+stats = analyze(sims);
Added: trunk/examples/tutorial/part03/swift.properties
===================================================================
--- trunk/examples/tutorial/part03/swift.properties (rev 0)
+++ trunk/examples/tutorial/part03/swift.properties 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1 @@
+site=local
Added: trunk/examples/tutorial/part04/p4.swift
===================================================================
--- trunk/examples/tutorial/part04/p4.swift (rev 0)
+++ trunk/examples/tutorial/part04/p4.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,29 @@
+type file;
+
+app (file out, file log) simulation (int sim_steps, int sim_range, int sim_values)
+{
+ simulate "--timesteps" sim_steps "--range" sim_range "--nvalues" sim_values stdout=@out stderr=@log;
+}
+
+app (file out, file log) analyze (file s[])
+{
+ stats filenames(s) stdout=@out stderr=@log;
+}
+
+int nsim = toInt(arg("nsim", "10"));
+int steps = toInt(arg("steps", "1"));
+int range = toInt(arg("range", "100"));
+int values = toInt(arg("values", "5"));
+
+file sims[];
+
+foreach i in [0:nsim-1] {
+ file simout <single_file_mapper; file=strcat("output/sim_",i,".out")>;
+ file simlog <single_file_mapper; file=strcat("output/sim_",i,".log")>;
+ (simout,simlog) = simulation(steps,range,values);
+ sims[i] = simout;
+}
+
+file stats_out<"output/average.out">;
+file stats_log<"output/average.log">;
+(stats_out, stats_log) = analyze(sims);
Added: trunk/examples/tutorial/part04/swift.properties
===================================================================
--- trunk/examples/tutorial/part04/swift.properties (rev 0)
+++ trunk/examples/tutorial/part04/swift.properties 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1 @@
+site=local
Added: trunk/examples/tutorial/part05/p5.swift
===================================================================
--- trunk/examples/tutorial/part05/p5.swift (rev 0)
+++ trunk/examples/tutorial/part05/p5.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,29 @@
+type file;
+
+app (file out, file log) simulation (int sim_steps, int sim_range, int sim_values)
+{
+ simulate "--timesteps" sim_steps "--range" sim_range "--nvalues" sim_values stdout=@out stderr=@log;
+}
+
+app (file out, file log) analyze (file s[])
+{
+ stats filenames(s) stdout=@out stderr=@log;
+}
+
+int nsim = toInt(arg("nsim", "10"));
+int steps = toInt(arg("steps", "1"));
+int range = toInt(arg("range", "100"));
+int values = toInt(arg("values", "5"));
+
+file sims[];
+
+foreach i in [0:nsim-1] {
+ file simout <single_file_mapper; file=strcat("output/sim_",i,".out")>;
+ file simlog <single_file_mapper; file=strcat("output/sim_",i,".log")>;
+ (simout,simlog) = simulation(steps,range,values);
+ sims[i] = simout;
+}
+
+file stats_out<"output/average.out">;
+file stats_log<"output/average.log">;
+(stats_out, stats_log) = analyze(sims);
Added: trunk/examples/tutorial/part05/swift.properties
===================================================================
--- trunk/examples/tutorial/part05/swift.properties (rev 0)
+++ trunk/examples/tutorial/part05/swift.properties 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1 @@
+site=local
Added: trunk/examples/tutorial/part06/p6.swift
===================================================================
--- trunk/examples/tutorial/part06/p6.swift (rev 0)
+++ trunk/examples/tutorial/part06/p6.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,53 @@
+type file;
+
+# app() functions for application programs to be called:
+
+app (file out) genseed (int nseeds)
+{
+ simulate "-r" 2000000 "-n" nseeds stdout=@out;
+}
+
+app (file out) genbias (int bias_range, int nvalues)
+{
+ simulate "-r" bias_range "-n" nvalues stdout=@out;
+}
+
+app (file out, file log) simulation (int timesteps, int sim_range, file bias_file,
+ int scale, int sim_count, file seed_file)
+{
+ simulate "-t" timesteps "-r" sim_range "-B" @bias_file "-x" scale
+ "-n" sim_count "-S" @seed_file stdout=@out stderr=@log;
+}
+
+app (file out, file log) analyze (file s[])
+{
+ stats filenames(s) stdout=@out stderr=@log;
+}
+
+# Command line arguments
+
+int nsim = toInt(arg("nsim", "10")); # number of simulation programs to run
+int steps = toInt(arg("steps", "1")); # number of timesteps (seconds) per simulation
+int range = toInt(arg("range", "100")); # range of the generated random numbers
+int values = toInt(arg("values", "10")); # number of values generated per simulation
+
+# Main script and data
+file seedfile <"output/seed.dat">; # Dynamically generated bias for simulation ensemble
+
+tracef("\n*** Script parameters: nsim=%i range=%i num values=%i\n\n", nsim, range, values);
+seedfile = genseed(1);
+
+file sims[]; # Array of files to hold each simulation output
+
+foreach i in [0:nsim-1] {
+ file biasfile <single_file_mapper; file=strcat("output/bias_",i,".dat")>;
+ file simout <single_file_mapper; file=strcat("output/sim_",i,".out")>;
+ file simlog <single_file_mapper; file=strcat("output/sim_",i,".log")>;
+ biasfile = genbias(1000, 20);
+ (simout,simlog) = simulation(steps, range, biasfile, 1000000, values, seedfile);
+ sims[i] = simout;
+}
+
+file stats_out<"output/average.out">;
+file stats_log<"output/average.log">;
+(stats_out,stats_log) = analyze(sims);
Added: trunk/examples/tutorial/part06/swift.properties
===================================================================
--- trunk/examples/tutorial/part06/swift.properties (rev 0)
+++ trunk/examples/tutorial/part06/swift.properties 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1 @@
+site=local
Deleted: trunk/examples/tutorial/regexp_mapper.swift
===================================================================
--- trunk/examples/tutorial/regexp_mapper.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/regexp_mapper.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,16 +0,0 @@
-type messagefile;
-type countfile;
-
-app (countfile t) countwords (messagefile f) {
- wc "-w" @filename(f) stdout=@filename(t);
-}
-
-messagefile inputfile <"regexp_mapper.words.txt">;
-
-countfile c <regexp_mapper;
- source=@inputfile,
- match="(.*)txt",
- transform="\\1count">;
-
-c = countwords(inputfile);
-
Deleted: trunk/examples/tutorial/regexp_mapper.words.txt
===================================================================
--- trunk/examples/tutorial/regexp_mapper.words.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/regexp_mapper.words.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-Testing is so much fun!
Deleted: trunk/examples/tutorial/restart.swift
===================================================================
--- trunk/examples/tutorial/restart.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/restart.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,24 +0,0 @@
-type file;
-
-app (file f) touch() {
- touch @f;
-}
-
-app (file f) processL(file inp) {
- echo "processL" stdout=@f;
-}
-
-app (file f) processR(file inp) {
- broken "process" stdout=@f;
-}
-
-app (file f) join(file left, file right) {
- echo "join" @left @right stdout=@f;
-}
-
-file f = touch();
-
-file g = processL(f);
-file h = processR(f);
-
-file i = join(g,h);
Deleted: trunk/examples/tutorial/sequential_iteration.swift
===================================================================
--- trunk/examples/tutorial/sequential_iteration.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/sequential_iteration.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,12 +0,0 @@
-
-string alphabet[];
-alphabet[0] = "a";
-alphabet[1] = "b";
-alphabet[2] = "c";
-alphabet[3] = "d";
-alphabet[4] = "e";
-
-iterate i
-{
- tracef("Letter %i is: %s\n", i, alphabet[i]);
-} until(i == 5);
Added: trunk/examples/tutorial/setup.sh
===================================================================
--- trunk/examples/tutorial/setup.sh (rev 0)
+++ trunk/examples/tutorial/setup.sh 2013-12-13 21:30:34 UTC (rev 7428)
@@ -0,0 +1,8 @@
+#
+# Program to set up tutorial PATH
+# Run as: source setup.sh
+#
+
+# Add tutorial apps to $PATH
+TUTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+export PATH=$TUTDIR/bin:$PATH
Deleted: trunk/examples/tutorial/three.txt
===================================================================
--- trunk/examples/tutorial/three.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/three.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-three words now
Deleted: trunk/examples/tutorial/two.txt
===================================================================
--- trunk/examples/tutorial/two.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/two.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-two words
Deleted: trunk/examples/tutorial/types.swift
===================================================================
--- trunk/examples/tutorial/types.swift 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/types.swift 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,20 +0,0 @@
-type messagefile;
-
-type details {
- string name;
- int pies;
-}
-
-app (messagefile t) greeting (details d) {
- echo "Hello. Your name is" d.name "and you have eaten" d.pies "pies." stdout=@filename(t);
-}
-
-details person;
-
-person.name = "John";
-person.pies = 3;
-
-messagefile outfile <"types.pies.txt">;
-
-outfile = greeting(person);
-
Deleted: trunk/examples/tutorial/wcl
===================================================================
--- trunk/examples/tutorial/wcl 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/wcl 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1,3 +0,0 @@
-#!/bin/bash
-echo -n $(wc -c < $1) > $2
-
Deleted: trunk/examples/tutorial/words.txt
===================================================================
--- trunk/examples/tutorial/words.txt 2013-12-13 20:50:59 UTC (rev 7427)
+++ trunk/examples/tutorial/words.txt 2013-12-13 21:30:34 UTC (rev 7428)
@@ -1 +0,0 @@
-Hello world, this is a test
More information about the Swift-commit
mailing list