[Swift-commit] r7203 - SwiftTutorials/swift-cloud-tutorial/app

davidk at ci.uchicago.edu davidk at ci.uchicago.edu
Tue Oct 22 10:53:09 CDT 2013


Author: davidk
Date: 2013-10-22 10:53:09 -0500 (Tue, 22 Oct 2013)
New Revision: 7203

Added:
   SwiftTutorials/swift-cloud-tutorial/app/simulate.py
   SwiftTutorials/swift-cloud-tutorial/app/stats.py
Log:
Python version of scripts


Added: SwiftTutorials/swift-cloud-tutorial/app/simulate.py
===================================================================
--- SwiftTutorials/swift-cloud-tutorial/app/simulate.py	                        (rev 0)
+++ SwiftTutorials/swift-cloud-tutorial/app/simulate.py	2013-10-22 15:53:09 UTC (rev 7203)
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+import sys
+import os
+import socket
+import time
+import math
+import random
+
+def parse():
+    from optparse import OptionParser
+    parser=OptionParser()
+    parser.add_option("-b", "--bias", type="int", dest="bias", default=0,
+                      help="offset bias: add this integer to all results");
+
+    parser.add_option("-B", "--biasfile", type="string", dest="biasfile",
+                      default="none", help="file of integer biases to add to results" );
+
+    parser.add_option("-l", "--log", type="string", dest="log", default="yes",
+                      help="generate a log in stderr if not nul");
+
+    parser.add_option("-n", "--nvalues", type="int", dest="nvalues",default=1,
+                      help="print this many values per simulation" );
+
+    parser.add_option("-s", "--seed", type="int", dest="initseed", default=0,
+                      help="use this integer [0..32767] as a seed");
+
+    parser.add_option("-S", "--seedfile", type="string", dest="seedfile",
+                      default="none", help="use this file (containing integer seeds [0..32767]) one per line" );
+
+    parser.add_option("-t", "--timesteps", type="int", dest="timesteps",
+                      default=0, help='number of simulated "timesteps" in seconds (determines runtime)' );
+
+    parser.add_option("-r", "--range", type="int", dest="range", default=100,
+                      help="range (limit) of generated results" );
+
+    parser.add_option("-w", "--width", type="int", dest="width", default=8,
+                      help="Width ?" );
+
+    parser.add_option("-x", "--scale", type="int", dest="scale", default=1,
+                      help="scale the results by this integer" );
+    # Not implemented yet
+    parser.add_option("-p", "--paramfile", type="string", dest="paramfile", default="none",
+                      help="Not implemented yet" );
+    return (parser.parse_args());
+
+def log():
+    import datetime
+    print >> sys.stderr, "Called as: ", str(sys.argv)
+    print >> sys.stderr, "Start time: ", datetime.datetime.now()
+    print >> sys.stderr, "Running on node: ", socket.gethostname()
+    print >> sys.stderr, "Running as user: ",os.getlogin()
+    print >> sys.stderr, "\nEnvironment:\n\n"
+    print >> sys.stderr, os.environ
+
+def printparams(options):
+    print 'bias =',options.bias
+    print 'biasfile = ',options.biasfile
+    print 'log = ', options.log
+    print 'nvalues = ',options.nvalues
+    print 'seed = ', options.initseed
+    print 'seedfile = ', options.seedfile
+    print 'timesteps = ', options.timesteps
+    print 'range = ', options.range
+    print 'width = ', options.width
+    print 'scale = ', options.scale
+    print 'paramfile = ', options.paramfile
+
+def simulate(options):
+    time.sleep(options.timesteps)
+    bias=[];
+    if (options.biasfile != "none"):
+        try:
+            with open(options.biasfile) as biasfile:
+                lines = biasfile.read().splitlines()
+                for line in lines:
+                    bias.append(int(line))
+        except IOError:
+            print "Error accessing content from file: ", options.biasfile 
+    bias_count = len(bias)
+
+    for i in range(options.nvalues):
+        value = (random.random() +
+        random.random()*math.pow(2,16) +
+        random.random()*math.pow(2,32) +
+        random.random()*math.pow(2,48))
+        value=( (int(value)%options.range) * options.scale + options.bias)
+        if ( i < bias_count ):
+            value = value + bias[i]
+        elif ( bias_count > 0 ):
+            value = value + bias[bias_count-1]
+
+        print '{num:{fill}{width}}'.format(num=value, fill=' ', width=options.width)
+
+
+def seed(options):
+    if (options.initseed != 0 ):
+        random.seed(options.initseed)
+    if (options.seedfile != "none"):
+        try:
+            with open(options.seedfile) as seedfile:
+                lines=seedfile.read().splitlines()
+                seed = 0
+                for line in lines:
+                    seed = seed + int(line)
+            random.seed(seed)
+        except IOError:
+            print "Could not open file: ", options.seedfile
+
+
+if __name__ == "__main__":
+    (options, args) = parse()
+    printparams(options)
+    seed(options)
+    simulate(options)
+    log()
+
+
+
+
+
+
+
+
+


Property changes on: SwiftTutorials/swift-cloud-tutorial/app/simulate.py
___________________________________________________________________
Added: svn:executable
   + *

Added: SwiftTutorials/swift-cloud-tutorial/app/stats.py
===================================================================
--- SwiftTutorials/swift-cloud-tutorial/app/stats.py	                        (rev 0)
+++ SwiftTutorials/swift-cloud-tutorial/app/stats.py	2013-10-22 15:53:09 UTC (rev 7203)
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+import socket
+import sys
+import os
+
+def log():
+    import datetime
+    print >> sys.stderr, "Called as: ", str(sys.argv)
+    print >> sys.stderr, "Start time: ", datetime.datetime.now()
+    print >> sys.stderr, "Running on node: ", socket.gethostname()
+    print >> sys.stderr, "Running as user: ",os.getlogin()
+    print >> sys.stderr, "\nEnvironment:\n\n"
+    print >> sys.stderr, os.environ
+
+def stat():
+    total = 0
+    count = 0
+    for f in sys.argv[1:]:
+        try:
+            with open(f) as ifile:
+                lines = ifile.read().splitlines()
+                for line in lines:
+                    total += int(line)
+                    count += 1
+        except IOError:
+            print "Error accessing content from file: ", options.biasfile
+        print total/count
+
+if __name__ == "__main__":
+    log()
+    stat()


Property changes on: SwiftTutorials/swift-cloud-tutorial/app/stats.py
___________________________________________________________________
Added: svn:executable
   + *




More information about the Swift-commit mailing list