##// END OF EJS Templates
sin node_modules
sin node_modules

File last commit:

r887:6170db3f0d34
r1053:aa764a53d89e
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()