import subprocess class Account(pso.ShmObject): def __init__(this, id, starting_value): this.id = id this.balance = starting_value number_of_accounts = 200 print('sys.argv: ', sys.argv) if len(sys.argv) != 3 or sys.argv[1] != 'worker': # main process coord_name = pso.init() pso.root().worker_count = 3 if len(sys.argv) >= 2: pso.root().worker_count = int(sys.argv[1]) pso.root().accounts = { f'client{i}': Account(i, random.randrange(1000)) for i in range(number_of_accounts) } #original_values = [client.balance for client in pso.root().accounts.values()] original_values = [ pso.root().accounts[f'client{i}'].balance for i in range(number_of_accounts) ] original_sum = sum(original_values)
if errcode != pso.errs['FOLDER_IS_NOT_EMPTY']: print 'errcode = ', pso.err_names[errcode] print 'message = ', msg raise else: raise pso.error, 'failed' # --+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-- def get_def_test(): global s # --+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-- try: pso.init("10701", False ) except pso.error: print "Is Quasar running? Does the shared-memory file exists?" raise try: s = pso.Session() create_test() s.create_object( 'sess_folder1', pso.BaseDef(pso.FOLDER, 0) ) s.create_object( 'sess_folder1/folder2', pso.BaseDef(pso.FOLDER, 0) ) s.create_object( 'sess_folder1/folder3', pso.BaseDef(pso.FOLDER, 0) ) s.create_object( 'sess_folder1/folder3/queue1', pso.BaseDef(pso.QUEUE, 3), [ pso.FieldDefinition('field1', pso.STRING, 20, 0, 0, 0, 0),
# imports import pso import numpy as np import matplotlib.pyplot as plt # popsize = 200 xmin = -5.12 xmax = 5.12 degree = 2000 pop, v = pso.init(popsize, xmin, xmax) value, gbest_value, gbest = pso.calfitvalue(pop) pbest = pop # plt.figure() # plt.ion() xx = [] ymax = [] ymin = [] ymean = [] for i in range(degree): plt.cla() xx.append(i) newpop, newv = pso.updatepop(pop, v, pbest, gbest, xmin, xmax) v = newv pop = newpop newvalue, newgbest_value, newgbest = pso.calfitvalue(newpop)
def main(argv): arguments = docopt(__doc__, version="PSO-Cancer-Evolution 1.0") particles = int(arguments['--particles']) iterations = int(arguments['--iterations']) alpha = float(arguments['--alpha']) beta = float(arguments['--beta']) k = int(arguments['--k']) c1 = float(arguments['--c1']) c2 = float(arguments['--c2']) seed = int(arguments['--seed']) runs = list(map(int, arguments['<runptcl>'])) with open(arguments['--infile'], 'r') as f: # reading the file and feeding it to numpy # assuring that we at least have 2D array to work with matrix = np.atleast_2d(np.loadtxt(io.StringIO(f.read()))) # number of mutations = number of columns mutations = matrix.shape[1] # number of cells = number of rows cells = matrix.shape[0] if arguments['--mutfile']: with open(arguments['--mutfile']) as f2: mutation_names = [l.strip() for l in f2.readlines()] if len(mutation_names) != mutations: raise Exception( "Mutation names number in file does not match mutation number in data!", len(mutation_names), mutations) else: mutation_names = [i + 1 for i in range(mutations)] if k == mutations: raise Exception("Cannot have same possibile losses as mutations") matrix = matrix.tolist() base_dir = "results" + datetime.now().strftime("%Y%m%d%H%M%S") if runs: runs_data = [] for r, ptcl in enumerate(runs): print("=== Run number %d ===" % r) run_dir = base_dir + "/p%d_i%d" % (ptcl, iterations) if not os.path.exists(run_dir): os.makedirs(run_dir) data, helper = pso.init(ptcl, iterations, matrix, mutations, mutation_names, cells, alpha, beta, k, c1, c2, seed) data.summary(helper, run_dir) runs_data.append(data) Data.runs_summary(runs, runs_data, base_dir) else: run_dir = base_dir + "/p%d_i%d" % (particles, iterations) if not os.path.exists(run_dir): os.makedirs(run_dir) data, helper = pso.init(particles, iterations, matrix, mutations, mutation_names, cells, alpha, beta, k, c1, c2, seed) data.summary(helper, run_dir)