Пример #1
0
    def run_subjob(self, subjob):
        # select appropriate bigjob
        bigjob_info = self.schedule_subjob(subjob)
        job = subjob.job
        if job == None:
            #create new subjob
            job = advert_job.advert_job(self.advert_host)

        if bigjob_info == None:
            return job

        # create subjob on bigjob
        bigjob = bigjob_info["bigjob"]
        st = time.time()
        job.submit_job(bigjob.glidin_url, subjob.job_description)
        self.submisssion_times.append(time.time() - st)

        # store reference of subjob for further bookkeeping
        self.active_subjob_list.append(job)
        self.subjob_bigjob_dict[subjob] = bigjob_info
        return job
    def run_subjob(self, subjob):
        # select appropriate bigjob
        bigjob_info = self.schedule_subjob(subjob)
        job = subjob.job 
        if job == None:
            #create new subjob
            job = advert_job.advert_job(self.advert_host)
    
        if bigjob_info == None:
            return job

        # create subjob on bigjob
        bigjob = bigjob_info["bigjob"]
        st = time.time()
        job.submit_job(bigjob.glidin_url, subjob.job_description)
        self.submisssion_times.append(time.time()-st)

        # store reference of subjob for further bookkeeping    
        self.active_subjob_list.append(job)
        self.subjob_bigjob_dict[subjob] = bigjob_info
        return job
                                        nodes,
                                        queue,
                                        project,
                                        workingdirectory, 
                                        userproxy)
    print "BigJob URL: " + advert_glidin_job.glidin_url

    # submit sub-job through big-job
    jd = saga.job.description()
    jd.executable = "/home/luckow/src/REMDgManager/bigjob/main"
    jd.number_of_processes = "2"
    jd.spmd_variation = "mpi"
    jd.arguments = [""]
    # !!Adjust!!
    jd.working_directory = "/home/luckow"
    jd.output = "output.txt"
    jd.error = "error.txt"
    advert_job = advert_job.advert_job(advert_host)
    advert_job.submit_job(advert_glidin_job.glidin_url, jd)
    
    # busy wait for completion
    while 1:
        state = str(advert_job.get_state())
        print "state: " + state
        if(state=="Failed" or state=="Done"):
            break
        time.sleep(10)

    #Cleanup
    advert_glidin_job.cancel()
                                        queue,
                                        project,
                                        workingdirectory, 
                                        userproxy,
                                        None)
    print "BigJob URL: " + advert_glidin_job.glidin_url

    # submit sub-job through big-job
    jd = saga.job.description()
    jd.executable = "/home/luckow/src/REMDgManager/bigjob/main"
    jd.number_of_processes = "2"
    jd.spmd_variation = "mpi"
    jd.arguments = [""]
    # !!Adjust!!
    jd.working_directory = "/home/luckow"
    jd.output = "output.txt"
    jd.error = "error.txt"
    advert_job = advert_job.advert_job(advert_host)
    advert_job.submit_job(advert_glidin_job.glidin_url, jd)
    
    # busy wait for completion
    while 1:
        state = str(advert_job.get_state())
        print "state: " + state
        if(state=="Failed" or state=="Done"):
            break
        time.sleep(10)

    #Cleanup
    advert_glidin_job.cancel()
Пример #5
0
def submit_job_advert(RE_info, dest_url_string, jd):
    """ submit job via advert service and glidin job"""
    error_string = ""
    new_advert_job = advert_job.advert_job(RE_info.advert_host)
    new_advert_job = new_advert_job.submit_job(dest_url_string, jd)
    return error_string, new_advert_job
Пример #6
0
 def queue_subjob(self, subjob):
     self.subjob_queue.put(subjob)
     job = advert_job.advert_job(self.advert_host)
     return job
 def submit_job_advert(self, dest_url_string, jd):
     """ submit job via advert service and glidin job"""
     error_string = ""
     new_advert_job = advert_job.advert_job(self.advert_host)
     new_advert_job = new_advert_job.submit_job(dest_url_string, jd)
     return error_string, new_advert_job
 def queue_subjob(self, subjob):
     self.subjob_queue.put(subjob)
     job = advert_job.advert_job(self.advert_host)
     return job
Пример #9
0
                        time.sleep(120)  # good for waiting until the restart file is copied?    
                    print "\n(INFO) # of cpus for sub job changed for %d-th iteration : \n"%iter_restart + str(nprocs_cfd) + " and " + str(nprocs_md) + " from %d and %d"%(old_nprocs_cfd, old_nprocs_md) 

                foutput.write(str(0.0))
                foutput.write("      ")
  
            cfd_jd, md_jd = get_restart_job_description(nprocs_cfd, nprocs_md) 
            

        if num_of_available_bigjobs == 1:    #one bigjob two applications

            id = active_bigjob_flag.index(True)            
            advert_glidin_job = bigjob_list[id]
            subjob_start = time.time()
        
            advert_job_cfd = advert_job.advert_job(advert_host)
            advert_job_cfd.submit_job(advert_glidin_job.glidin_url, cfd_jd)

            advert_job_md = advert_job.advert_job(advert_host)
            advert_job_md.submit_job(advert_glidin_job.glidin_url, md_jd)

        elif num_of_available_bigjobs == 2:   #  two bigjobs, and thus one bigjob for one application   
            advert_glidin_job = bigjob_list[0]

            advert_job_cfd = advert_job.advert_job(advert_host)
            advert_job_cfd.submit_job(advert_glidin_job.glidin_url, cfd_jd)

            advert_glidin_job = bigjob_list[1]

            advert_job_md = advert_job.advert_job(advert_host)
            advert_job_md.submit_job(advert_glidin_job.glidin_url, md_jd)