def start(): maxAngle = request.args['maxAngle'] minAngle = request.args['minAngle'] numSamples = request.args['numSamples'] chartID = 'chart_ID' chart_type = 'line' chart_height = 350 if minAngle > maxAngle: return angle_list = input_form_user(minAngle,maxAngle,numSamples) a_list = [] db_a_list = [] for ang in angle_list: a = check_db(ang) if a == False: a_list.append(ang) else: x = get_from_db(ang) db_a_list.append(x) start = time.time() print "The process have started!" print "Creating " + str(len(a_list)) +" tasks*******" tasks = [calc_lift_force.s(angle) for angle in a_list] task_group = group(tasks) group_result = task_group() print "Waiting for workers to finnish..." while (group_result.ready() == False): time.sleep(2) res = group_result.get() # (av_l, av_d, angle, dl_url) end = time.time() tot_time = end-start for (av_l,av_d,angle,dl_url) in res: add_to_db(angle,(av_l, av_d, angle, dl_url)) resx = res + db_a_list resy = sorted(resx, key=lambda tup: int(tup[2])) chart = {"renderTo": chartID, "type": chart_type, "height": chart_height,} sd = [a for (a,b,c,d) in resy] sd2 = [b for (a,b,c,d) in resy] series = [{"name": 'Avrage drag force', "data": sd}, {"name": 'Avrage Lift force', "data": sd2}] title = {"text": 'Result plot'} xd = [str(c) for (a,b,c,d) in resy] dls = [d for (a,b,c,d) in resy] xAxis = {"categories": xd} yAxis = {"title": {"text": 'Force'}} utasks = str(len(a_list)) dbtasks = str(len(db_a_list)) return render_template('result.html', chartID=chartID, chart=chart, series=series, title=title, xAxis=xAxis, yAxis=yAxis,maxAngle=maxAngle,minAngle=minAngle,numSamples=numSamples,tot_time=tot_time,utasks=utasks,dbtasks=dbtasks,dls=dls)
def start(): maxAngle = request.args['maxAngle'] minAngle = request.args['minAngle'] numSamples = request.args['numSamples'] chartID = 'chart_ID' chart_type = 'line' chart_height = 350 if minAngle > maxAngle: return angle_list = input_form_user(minAngle, maxAngle, numSamples) a_list = [] db_a_list = [] for ang in angle_list: a = check_db(ang) if a == False: a_list.append(ang) else: x = get_from_db(ang) db_a_list.append(x) start = time.time() print "The process have started!" print "Creating " + str(len(a_list)) + " tasks*******" tasks = [calc_lift_force.s(angle) for angle in a_list] task_group = group(tasks) group_result = task_group() print "Waiting for workers to finnish..." while (group_result.ready() == False): time.sleep(2) res = group_result.get() # (av_l, av_d, angle, dl_url) end = time.time() tot_time = end - start for (av_l, av_d, angle, dl_url) in res: add_to_db(angle, (av_l, av_d, angle, dl_url)) resx = res + db_a_list resy = sorted(resx, key=lambda tup: int(tup[2])) chart = { "renderTo": chartID, "type": chart_type, "height": chart_height, } sd = [a for (a, b, c, d) in resy] sd2 = [b for (a, b, c, d) in resy] series = [{ "name": 'Avrage drag force', "data": sd }, { "name": 'Avrage Lift force', "data": sd2 }] title = {"text": 'Result plot'} xd = [str(c) for (a, b, c, d) in resy] dls = [d for (a, b, c, d) in resy] xAxis = {"categories": xd} yAxis = {"title": {"text": 'Force'}} utasks = str(len(a_list)) dbtasks = str(len(db_a_list)) return render_template('result.html', chartID=chartID, chart=chart, series=series, title=title, xAxis=xAxis, yAxis=yAxis, maxAngle=maxAngle, minAngle=minAngle, numSamples=numSamples, tot_time=tot_time, utasks=utasks, dbtasks=dbtasks, dls=dls)
conn = swiftclient.client.Connection(auth_version=2, **config) # Clean up container in Swift (r, ol) = conn.get_container(bucket_name) # DELETE ALL OBJECTS for obj in ol: conn.delete_object(bucket_name, obj['name']) print "All Objects deleted..." angle_list = input_form_user(0,40,20) start = time.time() print "STARTRING!!!!!!!" tasks = [calc_lift_force.s(angle) for angle in angle_list] task_group = group(tasks) group_result = task_group() print "Waiting for workers to finnish..." while (group_result.ready() != True): time.sleep(2) if group_result.ready() == True: res = group_result.get() end = time.time() tot_time = end-start print "DONE!!!!!!!"
def start(): worker_names = ["Group1-Worker-1","Group1-Worker-2","Group1-Worker-3","Group1-Worker-4","Group1-Worker-5","Group1-Worker-6","Group1-Worker-7","Group1-Worker-8"] maxAngle = request.args['maxAngle'] minAngle = request.args['minAngle'] numSamples = request.args['numSamples'] chartID = 'chart_ID' chart_type = 'line' chart_height = 350 if minAngle > maxAngle: return angle_list = input_form_user(minAngle,maxAngle,numSamples) a_list = [] db_a_list = [] for ang in angle_list: a = check_db(ang) if a == False: a_list.append(ang) else: x = get_from_db(ang) db_a_list.append(x) print "The process have started!" print "Creating " + str(len(a_list)) +" tasks*******" pushed_tasks = len(a_list) optimal_tasks_per_worker = 1 nc = Client('2',**config) sa = get_workers_with_status('ACTIVE',nc,worker_names) # GET SERVERS (nc) for s in sa: print "FOUND SERVER WITH STATUS: " + "NAME " +str(s.name) +" :" +s.status sb = get_workers_with_status('PAUSED',nc,worker_names) for s in sb: print "FOUND SERVER WITH STATUS: " + "NAME " +str(s.name) +" :" +s.status sa = get_workers_with_status('ACTIVE',nc,worker_names) servers = sa start = time.time() #print "LISTS::::::::" #print a_list #print db_a_list tasks = [calc_lift_force.s(angle) for angle in a_list] task_group = group(tasks) group_result = task_group() #print tasks #print "pushed_tasks: " +str(pushed_tasks) #print "nr_of_workers: "+str(len(sb)) if pushed_tasks < len(sb): print "Resuming " +str(pushed_tasks) + " workers..." for n in range(0,pushed_tasks): s = sb[n] try: s.unpause() except: pass else: print "STARTING ALL WORKERS:" for i in sb: try: i.unpause() except: pass """ servers = [] active_names = [] for w in worker_names: try: server = nc.servers.find(name=w) servers.append(server) active_names.append(str(w)) print "SERVER added: " +str(w) except: pass # END GET SERVERS """ # SUSPEND_ALL_SERVERS (servers) """ s_aux = [] print "WORKING WITH: " + str(len(servers)) + " servers" for s in servers: try: s.suspend() s_aux.append(nc.servers.find(name=s.name)) print "server initially suspended!" except: print "Could not suspend server!" s_aux.append(nc.servers.find(name=s.name)) pass # END SUSPEND_ALL_SERVERS """ # START_SERVERS (nr_of_tasks) """ # s_aux should only have suspended instances if (pushed_tasks > (optimal_tasks_per_worker * len(servers))): print "Using all instances!" for s in sb: try: s.resume() #s_auxx.append(nc.servers.find(name=s.name)) except: print "Could not resume server in resume_all!" pass else: i = 0 for s in sb: if i == (len(servers)-1): break try: s.resume() #s_auxx.append(nc.servers.find(name=s.name)) i += 1 print "server resumed!!!!!!!" except: print "ERROR: Could not resume..." pass """ # END START_SERVERS print "sleeping" time.sleep(10) serx = get_workers_with_status('ACTIVE',nc,worker_names) print "Have the following workers......:" #for x in serx: #print x.name + " STATUS: " +str(x.status) nrworkers = len(serx) print "Waiting for workers to finnish..." while (group_result.ready() == False): time.sleep(2) res = group_result.get() # (av_l, av_d, angle, dl_url) end = time.time() tot_time = end-start for (av_l,av_d,angle,dl_url) in res: add_to_db(angle,(av_l, av_d, angle, dl_url)) resx = res + db_a_list resy = sorted(resx, key=lambda tup: int(tup[2])) chart = {"renderTo": chartID, "type": chart_type, "height": chart_height,} sd = [a for (a,b,c,d) in resy] sd2 = [b for (a,b,c,d) in resy] series = [{"name": 'Avrage Lift force', "data": sd}, {"name": 'Avrage Drag force', "data": sd2}] title = {"text": 'Result plot'} xd = [str(c) for (a,b,c,d) in resy] dls = [d for (a,b,c,d) in resy] xAxis = {"categories": xd} yAxis = {"title": {"text": 'Force'}} utasks = str(len(a_list)) dbtasks = str(len(db_a_list)) # s_auxx should only have active instances sers = get_workers_with_status('ACTIVE',nc,worker_names) for s in sers: try: s.pause() #print "Suspended: " + str(s.name) except: pass return render_template('result.html', chartID=chartID, chart=chart, series=series, title=title, xAxis=xAxis, yAxis=yAxis,maxAngle=maxAngle,minAngle=minAngle,numSamples=numSamples,tot_time=tot_time,utasks=utasks,dbtasks=dbtasks,dls=dls,nrworkers=nrworkers)
'authurl': os.environ['OS_AUTH_URL'] } conn = swiftclient.client.Connection(auth_version=2, **config) # Clean up container in Swift (r, ol) = conn.get_container(bucket_name) # DELETE ALL OBJECTS for obj in ol: conn.delete_object(bucket_name, obj['name']) print "All Objects deleted..." angle_list = input_form_user(0, 40, 20) start = time.time() print "STARTRING!!!!!!!" tasks = [calc_lift_force.s(angle) for angle in angle_list] task_group = group(tasks) group_result = task_group() print "Waiting for workers to finnish..." while (group_result.ready() != True): time.sleep(2) if group_result.ready() == True: res = group_result.get() end = time.time() tot_time = end - start print "DONE!!!!!!!" (response, obj_list) = conn.get_container(bucket_name) object_name_list = []
def start(): worker_names = [ "Group1-Worker-1", "Group1-Worker-2", "Group1-Worker-3", "Group1-Worker-4", "Group1-Worker-5", "Group1-Worker-6", "Group1-Worker-7", "Group1-Worker-8" ] maxAngle = request.args['maxAngle'] minAngle = request.args['minAngle'] numSamples = request.args['numSamples'] chartID = 'chart_ID' chart_type = 'line' chart_height = 350 if minAngle > maxAngle: return angle_list = input_form_user(minAngle, maxAngle, numSamples) a_list = [] db_a_list = [] for ang in angle_list: a = check_db(ang) if a == False: a_list.append(ang) else: x = get_from_db(ang) db_a_list.append(x) print "The process have started!" print "Creating " + str(len(a_list)) + " tasks*******" pushed_tasks = len(a_list) optimal_tasks_per_worker = 1 nc = Client('2', **config) sa = get_workers_with_status('ACTIVE', nc, worker_names) # GET SERVERS (nc) for s in sa: print "FOUND SERVER WITH STATUS: " + "NAME " + str( s.name) + " :" + s.status sb = get_workers_with_status('PAUSED', nc, worker_names) for s in sb: print "FOUND SERVER WITH STATUS: " + "NAME " + str( s.name) + " :" + s.status sa = get_workers_with_status('ACTIVE', nc, worker_names) servers = sa start = time.time() #print "LISTS::::::::" #print a_list #print db_a_list tasks = [calc_lift_force.s(angle) for angle in a_list] task_group = group(tasks) group_result = task_group() #print tasks #print "pushed_tasks: " +str(pushed_tasks) #print "nr_of_workers: "+str(len(sb)) if pushed_tasks < len(sb): print "Resuming " + str(pushed_tasks) + " workers..." for n in range(0, pushed_tasks): s = sb[n] try: s.unpause() except: pass else: print "STARTING ALL WORKERS:" for i in sb: try: i.unpause() except: pass """ servers = [] active_names = [] for w in worker_names: try: server = nc.servers.find(name=w) servers.append(server) active_names.append(str(w)) print "SERVER added: " +str(w) except: pass # END GET SERVERS """ # SUSPEND_ALL_SERVERS (servers) """ s_aux = [] print "WORKING WITH: " + str(len(servers)) + " servers" for s in servers: try: s.suspend() s_aux.append(nc.servers.find(name=s.name)) print "server initially suspended!" except: print "Could not suspend server!" s_aux.append(nc.servers.find(name=s.name)) pass # END SUSPEND_ALL_SERVERS """ # START_SERVERS (nr_of_tasks) """ # s_aux should only have suspended instances if (pushed_tasks > (optimal_tasks_per_worker * len(servers))): print "Using all instances!" for s in sb: try: s.resume() #s_auxx.append(nc.servers.find(name=s.name)) except: print "Could not resume server in resume_all!" pass else: i = 0 for s in sb: if i == (len(servers)-1): break try: s.resume() #s_auxx.append(nc.servers.find(name=s.name)) i += 1 print "server resumed!!!!!!!" except: print "ERROR: Could not resume..." pass """ # END START_SERVERS print "sleeping" time.sleep(10) serx = get_workers_with_status('ACTIVE', nc, worker_names) print "Have the following workers......:" #for x in serx: #print x.name + " STATUS: " +str(x.status) nrworkers = len(serx) print "Waiting for workers to finnish..." while (group_result.ready() == False): time.sleep(2) res = group_result.get() # (av_l, av_d, angle, dl_url) end = time.time() tot_time = end - start for (av_l, av_d, angle, dl_url) in res: add_to_db(angle, (av_l, av_d, angle, dl_url)) resx = res + db_a_list resy = sorted(resx, key=lambda tup: int(tup[2])) chart = { "renderTo": chartID, "type": chart_type, "height": chart_height, } sd = [a for (a, b, c, d) in resy] sd2 = [b for (a, b, c, d) in resy] series = [{ "name": 'Avrage Lift force', "data": sd }, { "name": 'Avrage Drag force', "data": sd2 }] title = {"text": 'Result plot'} xd = [str(c) for (a, b, c, d) in resy] dls = [d for (a, b, c, d) in resy] xAxis = {"categories": xd} yAxis = {"title": {"text": 'Force'}} utasks = str(len(a_list)) dbtasks = str(len(db_a_list)) # s_auxx should only have active instances sers = get_workers_with_status('ACTIVE', nc, worker_names) for s in sers: try: s.pause() #print "Suspended: " + str(s.name) except: pass return render_template('result.html', chartID=chartID, chart=chart, series=series, title=title, xAxis=xAxis, yAxis=yAxis, maxAngle=maxAngle, minAngle=minAngle, numSamples=numSamples, tot_time=tot_time, utasks=utasks, dbtasks=dbtasks, dls=dls, nrworkers=nrworkers)