Example #1
0
class MyApp(object):
    def __init__(self, slaves):
        self.master = Master(slaves)
        self.work_queue = WorkQueue(self.master)

    def terminate_slaves(self):
        self.master.terminate_slaves()

    def run(self):

        for i in np.arange(MPI.COMM_WORLD.Get_size() - 1):
            self.work_queue.add_work(data=('Do stuff', i))

        while not self.work_queue.done():

            self.work_queue.do_work()

            #
            # reclaim returned data from completed slaves
            #
            for slave_return_data in self.work_queue.get_completed_work():
                done, message = slave_return_data
                if done:
                    print("Slave {0} is clear".format(message))

            # sleep some time
            sleeptime.sleep(0.3)
Example #2
0
class MyApp(object):
    def __init__(self, slaves):
        self.master = Master(slaves)
        self.work_queue = WorkQueue(self.master)

    def terminate_slaves(self):
        self.master.terminate_slaves()

    def run(self):

        time = datetime.now()
        movs = loadMovids()
        movs_length = loadLengths()

        start = 0
        end = 396901

        #Put longer task at start.
        if end == 396901:
            order = np.argsort(movs_length[start:])
        else:
            order = np.argsort(movs_length[start:end])

        #For statistics
        totWork = 0
        completed = 0

        print("Master loading work queue.")
        for i in np.arange(start, end)[order]:

            totWork += 1
            movid = movs[i]
            self.work_queue.add_work(data=('Do stuff', movid))

        print("Master loading work queue done.")

        while not self.work_queue.done():

            self.work_queue.do_work()

            #
            # reclaim returned data from completed slaves
            #
            for slave_return_data in self.work_queue.get_completed_work():
                done, message, movidf = slave_return_data
                if done:
                    if message == "FAILED":
                        self.work_queue.add_work(data=('Do stuff', movidf))
                    else:
                        completed += 1
                        print("Progress: {0}/{1}, took {2}. {3}".format(
                            str(completed).rjust(6),
                            str(totWork).rjust(6), str(datetime.now() - time),
                            message))

            # sleep some time
            sleeptime.sleep(0.001)
Example #3
0
class MyApp(object):
    def __init__(self, slaves):
        self.master = Master(slaves)
        self.work_queue = WorkQueue(self.master)

    def terminate_slaves(self):
        self.master.terminate_slaves()

    def run(self):

        time = datetime.now()

        movs = loadMovids()
        #13b: np.arange(30598,30695)
        #1584
        totWork = 1584 - 0
        completed = 0
        shadno = 0
        shadyes = 0
        shadwhat = 0

        for i in np.arange(0, 1584):
            movid = movs[i]
            self.work_queue.add_work(data=('Do stuff', movid))

        #for i in range(tasks):
        #    self.work_queue.add_work(data=('Do stuff', i))

        while not self.work_queue.done():

            self.work_queue.do_work()

            #
            # reclaim returned data from completed slaves
            #
            for slave_return_data in self.work_queue.get_completed_work():
                done, message, n, y, w = slave_return_data
                shadno += n
                shadyes += y
                shadwhat += w

                if done:
                    completed += 1
                    print("Progress: {0}/{1}, took {2}. {3}".format(
                        str(completed).rjust(6), totWork,
                        str(datetime.now() - time), message),
                          end="\r")

            # sleep some time
            sleeptime.sleep(0.1)

        print("Progress: {0}/{1}, took {2}. {3}".format(
            str(completed).rjust(6), totWork, str(datetime.now() - time),
            message))
        print("FEIF return {0} true".format(shadyes))
        print("FEIF return {0} false".format(shadno))
        print("total of {0} detection have no contour".format(shadwhat))
Example #4
0
class MyApp(object):

    def __init__(self, slaves):
        self.master = Master(slaves)
        self.work_queue = WorkQueue(self.master)

    def terminate_slaves(self):
        self.master.terminate_slaves()

    def run(self):
        
        time = datetime.now()
        movs = loadMovids()
        movs_length = loadLengths()
        
        #13b: 30598-30695
        start = 30598
        end = 30695
        
        #Put longer task at start.
        order = np.argsort(movs_length[start:end])
        
        #For statistics
        totWork = end - start
        completed = 0
        
        for i in np.arange(start,end)[order]:
            movid = movs[i]
            #It's modified that task is appended at front
            self.work_queue.add_work(data=('Do stuff', movid))

                
        #for i in range(tasks):
        #    self.work_queue.add_work(data=('Do stuff', i))
       
        while not self.work_queue.done():

            self.work_queue.do_work()

            #
            # reclaim returned data from completed slaves
            #
            for slave_return_data in self.work_queue.get_completed_work():
                done, message, movidf = slave_return_data
                if done:
                    if message == "FAILED":
                        self.work_queue.add_work(data=('Do stuff', movidf))
                    else:
                        completed += 1
                        print("Progress: {0}/{1}, took {2}. {3}"
                          .format(str(completed).rjust(6),str(totWork).rjust(6),str(datetime.now()-time),message))

            # sleep some time
            sleeptime.sleep(0.001)
Example #5
0
class MyApp(object):

    def __init__(self, slaves):
        self.master = Master(slaves)
        self.work_queue = WorkQueue(self.master)

    def terminate_slaves(self):
        self.master.terminate_slaves()

    def run(self):
        
        time = datetime.now()
        
        totWork = 0#end - start
        completed = 0
        
        for i in np.arange(folds): #Fold
            for j in np.arange(gammas): #Gamma
                for k in np.arange(cs): #C
                    for n in np.arange(pcs):
                        totWork += 1
                        self.work_queue.add_work(data=('Do stuff', i, j, k, n))
                
        scores = np.zeros((folds,gammas,cs,pcs))

                
        #for i in range(tasks):
        #    self.work_queue.add_work(data=('Do stuff', i))
       
        while not self.work_queue.done():

            self.work_queue.do_work()

            #
            # reclaim returned data from completed slaves
            #
            for slave_return_data in self.work_queue.get_completed_work():
                done, message, i, j, k, n, score = slave_return_data
                if done:
                    completed += 1
                    scores[i,j,k,n] = score
                    print("Progress: {0}/{1}, took {2}. {3}"
                      .format(str(completed).rjust(6),str(totWork).rjust(6),str(datetime.now()-time),message))

            # sleep some time
            sleeptime.sleep(0.001)
        np.save("/afs/inf.ed.ac.uk/group/ug4-projects/s1413557/training/svmscore/scores", scores)
Example #6
0
 def __init__(self, slaves):
     self.master = Master(slaves)
     self.work_queue = WorkQueue(self.master)
Example #7
0
class MyApp(object):

    def __init__(self, slaves):
        self.master = Master(slaves)
        self.work_queue = WorkQueue(self.master)

    def terminate_slaves(self):
        self.master.terminate_slaves()

    def run(self):
        
        time = datetime.now()
        movs = loadMovids()
        movs_length = loadLengths()
        
        #13b: 30598-30695
        
        #0: 0-24941
        #1: 24941-49433
        #2: 49433-74100
        #3: 74100-99012
        #4: 99012-123658
        #5: 123658-148701
        #6: 148701-173761
        #7: 173761-198372
        #8: 198372-223132
        #9: 223132-247825
        #a: 247825-272495
        #b: 272495-297592
        #c: 297592-322424
        #d: 322424-347142
        #e: 347142-372011
        #f: 372011-396901
        
        start = 0
        end = 1584
        
        #Put longer task at start.
        if end == 396901:
            order = np.argsort(np.append(movs_length[372011:396901-1],(movs_length[-1])))
        else:
            order = np.argsort(movs_length[start:end])
        
        #For statistics
        totWork = 0#end - start
        completed = 0
        
        #for i in np.arange(start,end)[order]:
            
        idlist = np.array([396853,396857,396859,396860,396866,396876,396880,396892,396895,396900,
                        396823,396829,396843,396852,396862,396870,396882,396885,396889,396894,
                        396856,396863,396864,396868,396869,396893,396896,396897,396898,396899,
                        396624,396639,396662,396675,396728,396737,396759,396777,396790,396804,
                        396750,396760,396767,396784,396792,396793,396872,396877,396878,396886,
                        396824,396836,396839,396854,396858,396861,396865,396871,396874,396884,
                        396720,396733,396778,396815,396820,396827,396830,396834,396879,396890,
                        396840,396841,396845,396849,396850,396851,396867,396883,396887,396891,
                        396785,396802,396811,396822,396838,396844,396873,396875,396881,396888])
        order = np.argsort(movs_length[idlist])
        #forty = [112,180,272,285,330,447,469,474,498,500,517,527,545,550,622]
        #fortyone = [10, 33, 75, 82, 101, 114, 182, 183, 275, 279, 282, 291, 306, 325, 338, 380, 420, 424]
        for i in idlist[order]:
            
            if False and earlyRemoval(movs[i], movs_length[i]):
                idee = movs[i][0]
                savepath = "/afs/inf.ed.ac.uk/group/ug4-projects/s1413557/features/{0}/{1}/{2}"
                savepath = savepath.format(idee[0],idee[0:2],idee)
                
                if not os.path.isfile(savepath+".COMPLETE.npy"):
                    print("Master removes movid {0} with early removal".format(movs[i][0]))
                    np.save(savepath+".COMPLETE",np.array([]))
                
            else:
                totWork += 1
                movid = movs[i]
                #It's modified that task is appended at front
                self.work_queue.add_work(data=('Do stuff', movid))

                
        #for i in range(tasks):
        #    self.work_queue.add_work(data=('Do stuff', i))
       
        while not self.work_queue.done():

            self.work_queue.do_work()

            #
            # reclaim returned data from completed slaves
            #
            for slave_return_data in self.work_queue.get_completed_work():
                done, message, movidf = slave_return_data
                if done:
                    if message == "FAILED":
                        self.work_queue.add_work(data=('Do stuff', movidf))
                    else:
                        completed += 1
                        print("Progress: {0}/{1}, took {2}. {3}"
                          .format(str(completed).rjust(6),str(totWork).rjust(6),str(datetime.now()-time),message))

            # sleep some time
            sleeptime.sleep(0.001)
Example #8
0
class MyApp(object):

    def __init__(self, slaves):
        self.master = Master(slaves)
        self.work_queue = WorkQueue(self.master)

    def terminate_slaves(self):
        self.master.terminate_slaves()

    def run(self):
        
        time = datetime.now()
        movs = loadMovids()
        movs_length = loadLengths()
        
        #13b: 30598-30695
        
        #0: 0-24941
        #1: 24941-49433
        #2: 49433-74100
        #3: 74100-99012
        #4: 99012-123658
        #5: 123658-148701
        #6: 148701-173761
        #7: 173761-198372
        #8: 198372-223132
        #9: 223132-247825
        #a: 247825-272495
        #b: 272495-297592
        #c: 297592-322424
        #d: 322424-347142
        #e: 347142-372011
        #f: 372011-396901
        
        start = 322424
        end = 396901
        
        #Put longer task at start.
        if end == 396901:
            order = np.argsort(movs_length[start:])
        else:
            order = np.argsort(movs_length[start:end])
        
        #For statistics
        totWork = 0#end - start
        completed = 0
        
        #idl = np.hstack((np.arange(30598,30633),np.arange(30634,30638)))
        #idl = np.array([396853,396857,396859,396860,396866,396876,396880,396892,396895,396900,
        #        396823,396829,396843,396852,396862,396870,396882,396885,396889,396894,
        #        396856,396863,396864,396868,396869,396893,396896,396897,396898,396899,
        #        396624,396639,396662,396675,396728,396737,396759,396777,396790,396804,
        #        396750,396760,396767,396784,396792,396793,396872,396877,396878,396886,
        #        396824,396836,396839,396854,396858,396861,396865,396871,396874,396884,
        #        396720,396733,396778,396815,396820,396827,396830,396834,396879,396890,
        #        396840,396841,396845,396849,396850,396851,396867,396883,396887,396891,
        #        396785,396802,396811,396822,396838,396844,396873,396875,396881,396888])
        #order = np.argsort(movs_length[idl])
        #for i in idl[order]:
        
        for i in np.arange(start,end)[order]:
            
            #Alternative to early removal, so it wont thrash stuff.
            if movs_length[i] > 50000:
                idee = movs[i][0]
                savepath = "/afs/inf.ed.ac.uk/group/project/F4KC/output/{0}/{1}/{2}"
                savepath = savepath.format(idee[0],idee[0:2],idee)
                
                if not os.path.isfile(savepath+".COMPLETE.npy"):
                    print("Master removes movid {0} with early removal".format(movs[i][0]))
                    yhat = np.zeros((movs_length[i],4,10))
                    yhat[:,:,1] = 1
                    np.save(savepath+".YHAT",yhat)
                    np.save(savepath+".COMPLETE",np.array([]))
               
            totWork += 1
            movid = movs[i]
            self.work_queue.add_work(data=('Do stuff', movid))

       
        while not self.work_queue.done():

            self.work_queue.do_work()

            #
            # reclaim returned data from completed slaves
            #
            for slave_return_data in self.work_queue.get_completed_work():
                done, message, movidf = slave_return_data
                if done:
                    if message == "FAILED":
                        self.work_queue.add_work(data=('Do stuff', movidf))
                    else:
                        completed += 1
                        print("Progress: {0}/{1}, took {2}. {3}"
                          .format(str(completed).rjust(6),str(totWork).rjust(6),str(datetime.now()-time),message))

            # sleep some time
            sleeptime.sleep(0.001)