def main(): if '@' in ARGS.filename: tokens = ARGS.filename.split('@') assert len(tokens) == 2, 'wrong format of shared file' filenames = createShardFilenames(tokens[0], int(tokens[1])) else: filenames = [ARGS.filename] mData = [loadTrace(filename, ('reward')) for filename in filenames if os.path.isfile(filename)] windowStats = multipleRunRollingMean(mData, 'reward', ARGS.windowSize, ARGS.plotInterval) ptNumber = len(windowStats['mean']) runNumber = len(filenames) rewardMean = windowStats['mean'] rewardStd= windowStats['std'] sampleNumber = runNumber * ARGS.windowSize rewardSem = rewardStd / (P.sqrt(sampleNumber)) confidenceLevel = 0.95 yerr = ss.t.ppf((confidenceLevel + 1) / 2.0, sampleNumber-1) * rewardSem plotWithCI(range(ptNumber), rewardMean, yerr) if ARGS.exportFigPath is None: ARGS.exportFigPath = os.path.dirname(ARGS.filename) + '/fig.json' import json data = { 'x': range(ptNumber), 'y': rewardMean, } json.dump(data, open(ARGS.exportFigPath, 'w')) # P.errorbar(range(ptNumber), rewardMean, yerr=yerr, fmt='--o', ecolor='g', # capthick=2) if ARGS.showFig: P.show()
parser.add_argument('script_filename', help='path of the script that will be run') parser.add_argument('output_filename', help='output sharded filename. It has format of prefix@N, ' 'where N is the # of runs') args = parser.parse_args() def myExecute(filename): startTime = datetime.datetime.now() check_call('./blaze run %s > %s' % (args.script_filename, filename), shell=True) endTime = datetime.datetime.now() timeDelta = endTime - startTime fmt = "%Y-%m-%d %H:%M:%S" message = ("start time: %s \n" "end time: %s \n" "elapsed time: %i seconds\n") % (startTime.strftime(fmt), endTime.strftime(fmt), timeDelta.total_seconds()) check_call('echo "%s" > %s.done' % (message, filename), shell=True) tokens = args.output_filename.split('@') assert len(tokens) == 2, 'wrong format of output file' outputPrefix = tokens[0] shardNumber = int(tokens[1]) p = multiprocessing.Pool() outputFilenames = createShardFilenames(outputPrefix, shardNumber) p.map(myExecute, outputFilenames)