##// END OF EJS Templates
Now there are two receiver units one for data and one for plots
Now there are two receiver units one for data and one for plots

File last commit:

r887:6170db3f0d34
r957:d3acc9060c1d
Show More
schain_paralel.py
92 lines | 3.1 KiB | text/x-python | PythonLexer
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()