Ejemplo n.º 1
0
 def updateMask(self, gen_data_config, report_step, fs, active_mask,
                subst_list):
     run_arg = RunArg.createEnsembleExperimentRunArg(
         "run_id", fs, 0, "Path", "jobname", subst_list)
     load_context = ForwardLoadContext(run_arg=run_arg,
                                       report_step=report_step)
     self._update_active_mask(gen_data_config, load_context, active_mask)
Ejemplo n.º 2
0
    def update_progress_for_index(self, iteration: int, idx,
                                  run_arg: RunArg) -> None:
        try:
            # will throw if not yet submitted (is in a limbo state)
            queue_index = run_arg.getQueueIndex()
        except (ValueError, AttributeError):
            return

        status = None
        timed_out = False
        if self._job_queue:
            status = self._job_queue.getJobStatus(queue_index)
            timed_out = self._job_queue.did_job_time_out(queue_index)

        # Avoids reading from disk for jobs in these states since there's no
        # data anyway. If timed out, never exit here as that would prevent
        # propagation of the failure status.
        if (status in [
                JobStatusType.JOB_QUEUE_PENDING,
                JobStatusType.JOB_QUEUE_SUBMITTED,
                JobStatusType.JOB_QUEUE_WAITING,
        ] and not timed_out):
            return

        fms = self.realization_progress[iteration].get(run_arg.iens, None)
        jobs = fms[0] if fms else None

        # Don't load from file if you are finished
        if not fms or not BaseRunModel.is_forward_model_finished(fms[0]):
            loaded = ForwardModelStatus.load(run_arg.runpath, num_retry=1)
            if not loaded and not timed_out:
                # If this idx timed out, returning here would prevent
                # non-successful jobs in being marked as failed (timed out). So
                # return only in the case where it did not time out.
                return

            if loaded:
                jobs = loaded.jobs

        if timed_out:
            for job in jobs:
                if job.status != "Success":
                    job.error = "The run is cancelled due to reaching MAX_RUNTIME"
                    job.status = "Failure"
        self.realization_progress[iteration][run_arg.iens] = jobs, status
Ejemplo n.º 3
0
Archivo: sol4.py Proyecto: berland/ert

# Fetch out the job_queue from the SiteConfig object. In addition we
# create a JobQueueManager objects which wraps the queue. The purpose
# of this manager object is to let the queue run nonblocking in the
# background.
site_config = ert.siteConfig( )
queue_manager = JobQueueManager( site_config.getJobQueue( ) )
queue_manager.startQueue( ert.getEnsembleSize( ) , verbose = False )


# Create list of RunArg instances which hold metadata for one running
# realisation, create the directory where the simulation should run
# and submit the simulation.
path_fmt = "/tmp/run%d"
arg_list = [ RunArg.createEnsembleExperimentRunArg(fs, iens, path_fmt % iens) for iens in range(ert.getEnsembleSize()) ]
for arg in arg_list:
    ert.createRunPath( arg )
    ert.submitSimulation( arg )

    
while True:
    print("Waiting:%d  Running:%d  Complete:%d/%d" % (queue_manager.getNumWaiting( ), queue_manager.getNumRunning( ) , queue_manager.getNumSuccess() , queue_manager.getNumFailed( )))
    if not queue_manager.isRunning( ):
        break

    time.sleep( 5 )

ens_config = ert.ensembleConfig( )
data_config = ens_config["SNAKE_OIL_OPR_DIFF"]
param_config = ens_config["SNAKE_OIL_PARAM"]    
Ejemplo n.º 4
0
    realisation.initialize(fs)

# Fetch out the job_queue from the SiteConfig object. In addition we
# create a JobQueueManager objects which wraps the queue. The purpose
# of this manager object is to let the queue run nonblocking in the
# background.
site_config = ert.siteConfig()
queue_manager = JobQueueManager(site_config.getJobQueue())
queue_manager.startQueue(ert.getEnsembleSize(), verbose=False)

# Create list of RunArg instances which hold metadata for one running
# realisation, create the directory where the simulation should run
# and submit the simulation.
path_fmt = "/tmp/run%d"
arg_list = [
    RunArg.createEnsembleExperimentRunArg(fs, iens, path_fmt % iens)
    for iens in range(ert.getEnsembleSize())
]
for arg in arg_list:
    ert.createRunPath(arg)
    ert.submitSimulation(arg)

while True:
    print("Waiting:%d  Running:%d  Complete:%d/%d" %
          (queue_manager.getNumWaiting(), queue_manager.getNumRunning(),
           queue_manager.getNumSuccess(), queue_manager.getNumFailed()))
    if not queue_manager.isRunning():
        break

    time.sleep(5)