Example #1
0
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)
Example #2
0
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)
Example #3
0
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!!!!!!!"


Example #4
0
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)
Example #5
0
    '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 = []
Example #6
0
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)