def readrun(LogLikelihood,Prior,n_dims,n_params,inpar,bin_num,n_print,outputfiles_basename,outputfiles_filename): #print "readrun() in scanmanner.py 01llllllll" #print outputfiles_basename,outputfiles_filename f_out = open(os.path.join(outputfiles_basename,outputfiles_filename),'w') import manfun as mf Ploter = mf.plot() Ploter.setPlotPar(outputfiles_basename) for i,name in enumerate(inpar): try: Ploter._data[name] except: sf.ErrorStop('Input parameter "%s" could not found in ScanInf.txt.'%name) for i,name in enumerate(inpar): ntotal = len(Ploter._data[name]) break cube = [] for i in range(n_params): cube.append(0) sf.Info('Begin read scan ...') Naccept = 0 for Nrun in range(ntotal): iner = Nrun for i,name in enumerate(inpar): cube[i] = Ploter._data[name][iner] loglike = LogLikelihood(cube, n_dims, n_params) #if loglike > sf.log_zero: if True: Naccept += 1 f_out.write('\t'.join([str(x) for x in cube])+'\t'+str(loglike)+'\n') f_out.flush() if (Nrun+1)%n_print == 0: print '------------ Num: %i ------------'%(Nrun+1) print 'Input par = '+str(cube[0:n_dims]) print 'Output par = '+str(cube[n_dims:n_params]) print ' loglike = '+str(loglike) print 'Accepted Num = '+str(Naccept) print 'Total Num = '+str(Nrun+1)
print 'rank=', rank # # common_object=dict() # common_object['ES'] = mf.EasyScanInput() # common_object['Programs'] ={} # common_object['CS'] = mf.constraint() # common_object['Ploter'] = mf.plot() # common_object['ProgID'] = readin.ReadIn(sys.argv[1],common_object['ES'],common_object['Programs'],common_object['CS'],common_object['Ploter']) # print 'Broad Casting ...' # comm.bcast(common_object,root=0) # define basic class object ES = mf.EasyScanInput() Programs = {} CS = mf.constraint() Ploter = mf.plot() ProgID = readin.ReadIn(sys.argv[1], ES, Programs, CS, Ploter) log_zero = -1e+100 print 'main: programs=', Programs print 'main:ProgID=', ProgID def LogLikelihood(cube, ndim, nparams): for i, name in enumerate(ES.InPar): ES.InPar[name] = cube[i] ES.AllPar[name] = cube[i] # Run each programs for ii in ProgID: if Programs[ii].getRunFlag(ES.AllPar): Programs[ii].WriteInputFile(ES.AllPar)
import PyPolyChord from scanmanner import PolyChordrun from mpi4py import MPI comm = MPI.COMM_WORLD rank = comm.Get_rank() common_object = dict() my_root = rank - 1 # read in ini file if rank == my_root: # common_object=dict() common_object['ES'] = mf.EasyScanInput() common_object['Programs'] = {} common_object['CS'] = mf.constraint() common_object['Ploter'] = mf.plot() common_object['ProgID'] = readin.ReadIn(sys.argv[1], common_object['ES'], common_object['Programs'], common_object['CS'], common_object['Ploter']) print 'Broad Casting ...' comm.bcast(common_object, root=my_rank) elif rank != 0: def LogLikelihood(cube, ndim, nparams): for i, name in enumerate(ES.InPar): ES.InPar[name] = cube[i] ES.AllPar[name] = cube[i] # Run each programs for ii in ProgID: