from mpi4py import MPI import datetime import os, sys #import timeit path = os.path.split(os.getcwd())[0] sys.path.append(path) from controller import * def conversion(x1,x2): a=[x1,x2] for x in a: m,s = divmod(x,60) h,m = divmod(m,60) if x==x1: startime= str("%02d:%02d:%02d" % (h, m, s)) if x==x2: endtime =str("%02d:%02d:%02d" % (h, m, s)) return startime,endtime def loop(startime,endtime,rank): desc = "HF_EXAMPLE"+str(rank) path= "/home/alex/Documents/hysell_data/pdata/sp1_f0" figpath= "/home/alex/Pictures/pdata_plot"+str(rank) filename = "hf_test"+str(rank)+".xml" controllerObj = Project() controllerObj.setup(id = '191', name='test01'+str(rank), description=desc) readUnitConfObj = controllerObj.addReadUnit(datatype='SpectraReader', path=path, startDate='2015/09/26', endDate='2015/09/26', startTime=startime, endTime=endtime, online=0, #set=1426485881, delay=10, walk=1 #timezone=-5*3600 ) #opObj11 = readUnitConfObj.addOperation(name='printNumberOfBlock') procUnitConfObj1 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=readUnitConfObj.getId()) opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other') opObj11.addParameter(name='id', value='1000', format='int') opObj11.addParameter(name='wintitle', value='HF_Jicamarca_Spc', format='str') #opObj11.addParameter(name='channelList', value='0', format='intlist') opObj11.addParameter(name='zmin', value='-120', format='float') opObj11.addParameter(name='zmax', value='-70', format='float') opObj11.addParameter(name='save', value='1', format='int') opObj11.addParameter(name='figpath', value=figpath, format='str') print "Escribiendo el archivo XML" controllerObj.writeXml(filename) print "Leyendo el archivo XML" controllerObj.readXml(filename) controllerObj.createObjects() controllerObj.connectObjects() #timeit.timeit('controllerObj.run()', number=2) controllerObj.run() def parallel(): comm = MPI.COMM_WORLD rank = comm.Get_rank() size = comm.Get_size() totalStartTime = time.time() print "Hello world from process %d/%d"%(rank,size) # First just for one day :D! num_hours = 4/size time1,time2 = rank*num_hours*3600,(rank+1)*num_hours*3600-60 #print time1,time2 startime,endtime =conversion(time1,time2) print startime,endtime loop(startime,endtime,rank) print "Total time %f seconds" %(time.time() -totalStartTime) if __name__=='__main__': parallel()