From 8c3c293aeaf5e585db13de5644d813253fac7f06 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Sat, 07 Jan 2017 13:30:29 +0000 Subject: [PATCH] Changed analysis; written example in nir_log --- nir_log | 115 ++++++++++++++++++++++++++++++++++++++ trisurf/tsmgr.py | 11 ++- 2 files changed, 123 insertions(+), 3 deletions(-) diff --git a/nir_log b/nir_log new file mode 100644 index 0000000..69b7c71 --- /dev/null +++ b/nir_log @@ -0,0 +1,115 @@ +#!/usr/bin/python3 +from trisurf import tsmgr +from trisurf import trisurf +from trisurf import statistics + +print("Running trisurf version "+ tsmgr.getTrisurfVersion()) +Runs=[] +Nshell=25 + +#--------- F = 0 ------------ +#kapa_list=[10,20,30,40,50] +#p=[5,10,15,20,25] + +#N=5*Nshell**2+2 +#Nc_list=[int(N*pp/100) for pp in p] + +#for kapa in kapa_list: +# for Nc in Nc_list: +# run=trisurf.Runner(tape='tape_Nc'+str(Nc)+'_k'+str(kapa)) +# run.setMaindir(("N", "k", "V", "_Nc", "_c","_w"), ("nshell","xk0","constvolswitch","number_of_vertices_with_c0","c0", "w")) +# run.setSubdir("run0") +# Runs.append(run) + +#---------------------------- +#--------- F = 0 ------------ +kapa_list=[15,16,17,18,19,20,21,22] +#p=[5,7.5,10,12.5] +p=[8,8.5,9,9.5,10.5,11,11.5,12] + +N=5*Nshell**2+2 +Nc_list=[int(N*pp/100) for pp in p] +#print(Nc_list) + +#spremenil sem, ker nimam vseh podatkov!!! +kapa_list=[15,16,18,19,20,21,21,22] +Nc_list=[156,234,312,390] + +for kapa in kapa_list: + for Nc in Nc_list: + #print('tape_Nc'+str(Nc)+'_k'+str(kapa)) + run=trisurf.Runner(tape='tape_Nc'+str(Nc)+'_k'+str(kapa)) + run.setMaindir(("N", "k", "V", "_Nc", "_c","_w"), ("nshell","xk0","constvolswitch","number_of_vertices_with_c0","c0", "w")) + run.setSubdir("run0") + Runs.append(run) + +#---------------------------- + +#kapa_list=[20,30] +#p=[10] +# +#N=5*Nshell**2+2 +#Nc_list=[int(N*pp/100) for pp in p] +# +#for kapa in kapa_list: +# for Nc in Nc_list: +# run=trisurf.Runner(snapshot='is_from_N25k'+str(kapa)+'V0_Nc312_c1.0.vtu') +# run.setMaindir(("N", "k", "V", "_Nc", "_c","_w","_F"), ("nshell","xk0","constvolswitch","number_of_vertices_with_c0","c0", "w","F")) +# run.setSubdir("run0") +# +# Runs.append(run) + +#---------------------------- + + + +#Nov format: +#hosts=({'name':'Hestia','address':'127.0.0.1', 'runs':Runs, 'username':'samo'},) + +def analyze(run, **kwargs): + host=kwargs.get('host', None) + print("Demo analysis") + print("Analysis on host "+host['name']+" for run "+run.Dir.fullpath()+" completed") + +def plothbar(run, **kwargs): + import matplotlib.pyplot as plt + + def smooth(y, box_pts): + import numpy as np + box = np.ones(box_pts)/box_pts + y_smooth = np.convolve(y, box, mode='same') + return y_smooth + table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable() + plt.plot(table['hbar'], '.') + plt.title(run.Dir.fullpath()) + plt.xlabel('Iteration') + plt.ylabel('hbar') + smooth_window=10 + smoothed=smooth(table['hbar'],smooth_window) + plt.plot(tuple(range(int(smooth_window/2),len(smoothed)-int(smooth_window/2))),smoothed[int(smooth_window/2):-int(smooth_window/2)]) + plt.show() + print + #if return False or no return statement, the analysis will continue with next running instance in the list. if return True, the analysis will stop after this run. + return False + +def plotrunningavg(run, **kwargs): + import matplotlib.pyplot as plt + table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable() + def running_avg(col): + import numpy as np + avg=[] + for i in range(0,len(col)): + avg.append(np.average(col[:-i])) + return avg + ra=running_avg(table['hbar']) + plt.plot(ra) + plt.title('Running average') + plt.ylabel('1/n sum_i=niter^n(hbar_i)') + plt.xlabel('n') + plt.show() + +#start manager with configured runs +tsmgr.start(Runs, analyses={'analyze1':analyze, 'plotrunningavg':plotrunningavg, 'plothbar':plothbar}) + +#statistics.combine(Runs) +#statistics.combine([Runs[1],Runs[2]]) diff --git a/trisurf/tsmgr.py b/trisurf/tsmgr.py index ffe9278..2c83881 100644 --- a/trisurf/tsmgr.py +++ b/trisurf/tsmgr.py @@ -201,7 +201,12 @@ print("Analysis '"+anal+"' is not known. Available analyses: "+", ".join(a_dict.keys())+".") exit(0) for anal in analysis: - a_dict[anal](host['runs'][i-1],host=host) + retval=a_dict[anal](host['runs'][i-1],host=host) + #try: + if(retval): + exit(0) + #except: + # pass def perform_action(args,host,**kwargs): @@ -277,9 +282,9 @@ for host in hosts: if host['name'] == socket.gethostname(): if(args['html']): - print("Host <font color='orange'>"+host['name']+"</font> reports the following:") + print("Host <font color='orange'>"+host['name']+"</font> reports:") else: - print("Host "+bcolors.WARNING+host['name']+bcolors.ENDC+" reports the following:") + print("Host "+bcolors.WARNING+host['name']+bcolors.ENDC+" reports:") perform_action(args,host, analyses=analyses) elif not args['local_only']: output=host['_conn'].execute('python3 ./remote_control.py -x '+" ".join(argv)) -- Gitblit v1.9.3