##// END OF EJS Templates
Update version, fix kwargs for self operations (methods), Add SendToWeb...
Update version, fix kwargs for self operations (methods), Add SendToWeb operation to publish plots arguments

File last commit:

r887:6170db3f0d34
r906:a52f011a763e
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()