示例#1
0
    def polyclient_newpoly(self):
        """
      polyclient to submit new poly
      """
        if self.client_id in Usersolver:
            self.msg = "one polynomial is being solved"
        else:
            # check whether polynomial system is efficient
            rm_all_exts(self.file_id)
            phcdb.delpoly(self.client_id, self.poly_id)

            with open('%s.poly' % self.file_id, 'w') as f:
                f.write(self.client_msg)
                f.close()

            start_time = time()
            # distribute job to small or large queue
            worker_ind, deg = self.job_distributor()
            end_time = time()
            time_cost = end_time - start_time
            print "check_time = %f" % time_cost
            poly_status = '1'
            if worker_ind == 0:
                with open('%s.err' % self.file_id, 'r') as f:
                    self.msg = f.read() + "received"
                poly_status = '9'
            else:
                rm_exts(self.file_id, 'err')
                with open('%s.sta' % self.file_id, 'w') as f:
                    f.write('submitted')
                    f.close()

                newpoly = [self.client_opt, self.client_id, self.client_msg]
                if worker_ind == 1:
                    queue_local.put(newpoly)
                    self.msg = 'small polynomial received'
                else:
                    queue.append(newpoly)
                    self.msg = 'large polynomial received'

            # update userstatus to computing
            phcdb.newpoly(self.client_id, self.poly_id, deg,
                          path.getctime('%s.poly' % self.file_id), poly_status)
示例#2
0
    def polyclient_newpoly(self):
        """
      polyclient to submit new poly
      """
        if self.client_id in Usersolver:
            self.msg = "one polynomial is being solved"
        else:
            # check whether polynomial system is efficient
            rm_all_exts(self.file_id)
            phcdb.delpoly(self.client_id, self.poly_id)

            with open("%s.poly" % self.file_id, "w") as f:
                f.write(self.client_msg)
                f.close()

            start_time = time()
            # distribute job to small or large queue
            worker_ind, deg = self.job_distributor()
            end_time = time()
            time_cost = end_time - start_time
            print "check_time = %f" % time_cost
            poly_status = "1"
            if worker_ind == 0:
                with open("%s.err" % self.file_id, "r") as f:
                    self.msg = f.read() + "received"
                poly_status = "9"
            else:
                rm_exts(self.file_id, "err")
                with open("%s.sta" % self.file_id, "w") as f:
                    f.write("submitted")
                    f.close()

                newpoly = [self.client_opt, self.client_id, self.client_msg]
                if worker_ind == 1:
                    queue_local.put(newpoly)
                    self.msg = "small polynomial received"
                else:
                    queue.append(newpoly)
                    self.msg = "large polynomial received"

            # update userstatus to computing
            phcdb.newpoly(self.client_id, self.poly_id, deg, path.getctime("%s.poly" % self.file_id), poly_status)
示例#3
0
    def polyclient_newhom(self):
        # check whether polynomial system is efficient
        rm_all_exts(self.file_id)

        newpoly = [self.client_opt, self.client_id, self.client_msg]
        self.client_msg = self.client_msg.split('|')

        if len(self.client_msg) == 1:
            file_id_start = get_file_id(self.client_id, self.client_msg[0])
            if not path.isfile(file_id_start + ".start"):
                phc_start(file_id_start)
            self.msg = 'homotopy start system generated'

        else:
            with open('%s.poly' % self.file_id, 'w') as f:
                f.write(self.client_msg[2])
                f.close()

            # distribute job to small or large queue
            worker_ind, deg = self.job_distributor()

            if worker_ind == 0:
                phcdb.delpoly(self.client_id, self.poly_id)
                with open('%s.err' % self.file_id, 'r') as f:
                    self.msg = f.read() + "received"
            else:
                print "**********%s" % deg
                rm_exts(self.file_id, 'err')

                with open('%s.sta' % self.file_id, 'w') as f:
                    f.write('submitted')
                    f.close()

            queue_local.put(newpoly)

            self.msg = 'homotopy received'

            # update userstatus to computing
            phcdb.delpoly(self.client_id, self.poly_id)
            phcdb.newpoly(self.client_id, self.poly_id, deg,
                          path.getctime('%s.poly' % self.file_id))
示例#4
0
    def polyclient_newhom(self):
        # check whether polynomial system is efficient
        rm_all_exts(self.file_id)

        newpoly = [self.client_opt, self.client_id, self.client_msg]
        self.client_msg = self.client_msg.split("|")

        if len(self.client_msg) == 1:
            file_id_start = get_file_id(self.client_id, self.client_msg[0])
            if not path.isfile(file_id_start + ".start"):
                phc_start(file_id_start)
            self.msg = "homotopy start system generated"

        else:
            with open("%s.poly" % self.file_id, "w") as f:
                f.write(self.client_msg[2])
                f.close()

            # distribute job to small or large queue
            worker_ind, deg = self.job_distributor()

            if worker_ind == 0:
                phcdb.delpoly(self.client_id, self.poly_id)
                with open("%s.err" % self.file_id, "r") as f:
                    self.msg = f.read() + "received"
            else:
                print "**********%s" % deg
                rm_exts(self.file_id, "err")

                with open("%s.sta" % self.file_id, "w") as f:
                    f.write("submitted")
                    f.close()

            queue_local.put(newpoly)

            self.msg = "homotopy received"

            # update userstatus to computing
            phcdb.delpoly(self.client_id, self.poly_id)
            phcdb.newpoly(self.client_id, self.poly_id, deg, path.getctime("%s.poly" % self.file_id))