update to random seeds so as to work identically in Py2/Py3

This commit is contained in:
Remzi Arpaci-Dusseau 2020-05-30 15:16:25 -05:00
parent 44de0c852d
commit 4b15aadb85
12 changed files with 107 additions and 12 deletions

View File

@ -5,6 +5,13 @@ import sys
from optparse import OptionParser
import random
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
# process switch behavior
SCHED_SWITCH_ON_IO = 'SWITCH_ON_IO'
@ -283,7 +290,7 @@ parser.add_option('-c', help='compute answers for me', action='store_true', defa
parser.add_option('-p', '--printstats', help='print statistics at end; only useful with -c flag (otherwise stats are not printed)', action='store_true', default=False, dest='print_stats')
(options, args) = parser.parse_args()
random.seed(options.seed)
random_seed(options.seed)
assert(options.process_switch_behavior == SCHED_SWITCH_ON_IO or \
options.process_switch_behavior == SCHED_SWITCH_ON_END)

View File

@ -5,6 +5,14 @@ import sys
from optparse import OptionParser
import random
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
parser = OptionParser()
parser.add_option('-s', '--seed', default=0, help='the random seed', action='store', type='int', dest='seed')
parser.add_option('-j', '--jobs', default=3, help='number of jobs in the system', action='store', type='int', dest='jobs')
@ -16,7 +24,7 @@ parser.add_option('-c', '--compute', help='compute answers for me', action='stor
(options, args) = parser.parse_args()
random.seed(options.seed)
random_seed(options.seed)
print('ARG jlist', options.jlist)
print('ARG jobs', options.jobs)

View File

@ -5,6 +5,14 @@ import sys
from optparse import OptionParser
import random
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
# finds the highest nonempty queue
# -1 if they are all empty
def FindQueue():
@ -125,7 +133,7 @@ ioDone = {}
job = {}
# seed the random generator
random.seed(options.seed)
random_seed(options.seed)
# jlist 'startTime,runTime,ioFreq:startTime,runTime,ioFreq:...'
jobCnt = 0

View File

@ -14,6 +14,14 @@ from collections import *
from optparse import OptionParser
import random
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
# helper print function for columnar output
def print_cpu(cpu, str):
print((' ' * cpu * 35) + str)
@ -469,7 +477,7 @@ parser.add_option('-c', '--compute', default=False, help='compute answers fo
(options, args) = parser.parse_args()
random.seed(options.seed)
random_seed(options.seed)
print('ARG seed %s' % options.seed)
print('ARG job_num %s' % options.job_num)

View File

@ -5,6 +5,14 @@ import sys
from optparse import OptionParser
import random
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
parser = OptionParser()
parser.add_option("-s", "--seed", default=0, help="the random seed", action="store", type="int", dest="seed")
parser.add_option("-j", "--jobs", default=3, help="number of jobs in the system", action="store", type="int", dest="jobs")
@ -16,7 +24,7 @@ parser.add_option("-c", help="compute answers for me", action="store_true", defa
(options, args) = parser.parse_args()
random.seed(options.seed)
random_seed(options.seed)
print('ARG policy', options.policy)
if options.jlist == '':

View File

@ -4,6 +4,14 @@ from __future__ import print_function
import random
from optparse import OptionParser
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
DEBUG = False
def dprint(str):
@ -538,7 +546,7 @@ print('ARG reverse', options.reverse)
print('ARG printFinal', options.printFinal)
print('')
random.seed(options.seed)
random_seed(options.seed)
if options.reverse:
printState = False

View File

@ -5,6 +5,14 @@ import math
import random
from optparse import OptionParser
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
# minimum unit of transfer to RAID
BLOCKSIZE = 4096
@ -388,7 +396,7 @@ print('')
writeFrac = float(options.writeFrac) / 100.0
assert(writeFrac >= 0.0 and writeFrac <= 1.0)
random.seed(options.seed)
random_seed(options.seed)
size = convert(options.size)
if size % BLOCKSIZE != 0:

View File

@ -6,6 +6,14 @@ from optparse import OptionParser
import random
import math
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
def convert(size):
length = len(size)
lastchar = size[length-1]
@ -72,7 +80,7 @@ policy = str(options.policy)
notrace = options.notrace
clockbits = int(options.clockbits)
random.seed(seed)
random_seed(seed)
addrList = []
if addressFile != '':

View File

@ -4,6 +4,14 @@ from __future__ import print_function
import random
from optparse import OptionParser
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
class malloc:
def __init__(self, size, start, headerSize, policy, order, coalesce, align):
# size of space
@ -172,7 +180,7 @@ print('')
percent = int(options.opsPAlloc) / 100.0
random.seed(int(options.seed))
random_seed(int(options.seed))
p = {}
L = []
assert(percent > 0)

View File

@ -6,6 +6,14 @@ from optparse import OptionParser
import random
import math
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
def convert(size):
length = len(size)
lastchar = size[length-1]
@ -44,7 +52,7 @@ print('ARG address space size', options.asize)
print('ARG phys mem size', options.psize)
print('')
random.seed(options.seed)
random_seed(options.seed)
asize = convert(options.asize)
psize = convert(options.psize)

View File

@ -6,6 +6,14 @@ from optparse import OptionParser
import random
import math
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
def convert(size):
length = len(size)
lastchar = size[length-1]
@ -64,7 +72,7 @@ print('ARG address space size', options.asize)
print('ARG phys mem size', options.psize)
print('')
random.seed(options.seed)
random_seed(options.seed)
asize = convert(options.asize)
psize = convert(options.psize)
addresses = str(options.addresses)

View File

@ -6,6 +6,14 @@ from optparse import OptionParser
import random
import math
# to make Python2 and Python3 act the same -- how dumb
def random_seed(seed):
try:
random.seed(seed, version=1)
except:
random.seed(seed)
return
def convert(size):
length = len(size)
lastchar = size[length-1]
@ -227,7 +235,7 @@ print('ARG allocated', options.allocated)
print('ARG num', options.num)
print('')
random.seed(options.seed)
random_seed(options.seed)
# do the work now
os = OS()