Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/08/11 16:38:28 (13 years ago)
Author:
ascheibe
Message:

#1233 more renaming for more consistency

Location:
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.HiveEngine/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.HiveEngine/3.3/HiveEngine.cs

    r6723 r6725  
    7373    }
    7474
    75     // Job can't be storable, so RefreshableHiveExperiment can't be stored. But as previous runs are only informative it does not matter (only execution time on hive will be wrong because of that -> Todo)
    76     private ItemCollection<RefreshableHiveExperiment> hiveExperiments = new ItemCollection<RefreshableHiveExperiment>();
    77     public ItemCollection<RefreshableHiveExperiment> HiveExperiments {
    78       get { return hiveExperiments; }
    79       set { hiveExperiments = value; }
     75    // Task can't be storable, so RefreshableHiveExperiment can't be stored. But as previous runs are only informative it does not matter (only execution time on hive will be wrong because of that -> Todo)
     76    private ItemCollection<RefreshableJob> jobs = new ItemCollection<RefreshableJob>();
     77    public ItemCollection<RefreshableJob> Jobs {
     78      get { return jobs; }
     79      set { jobs = value; }
    8080    }
    8181
     
    111111      this.executionTimeOnHive = original.executionTimeOnHive;
    112112      this.IsPrivileged = original.IsPrivileged;
    113       // do not clone hiveExperiments - otherwise they would be sent with every job
     113      // do not clone jobs - otherwise they would be sent with every task
    114114    }
    115115    public override IDeepCloneable Clone(Cloner cloner) {
     
    158158          if (coll.Parallel) {
    159159            try {
    160               // clone the parent scope here and reuse it for each operation. otherwise for each job the whole scope-tree first needs to be copied and then cleaned, which causes a lot of work for the Garbage Collector
     160              // clone the parent scope here and reuse it for each operation. otherwise for each task the whole scope-tree first needs to be copied and then cleaned, which causes a lot of work for the Garbage Collector
    161161              IScope parentScopeClone = (IScope)((IAtomicOperation)coll.First()).Scope.Parent.Clone();
    162162              parentScopeClone.SubScopes.Clear();
    163163              parentScopeClone.ClearParentScopes();
    164164
    165               EngineJob[] jobs = new EngineJob[coll.Count];
     165              EngineTask[] jobs = new EngineTask[coll.Count];
    166166              for (int i = 0; i < coll.Count; i++) {
    167                 jobs[i] = new EngineJob(coll[i], new SequentialEngine.SequentialEngine());
     167                jobs[i] = new EngineTask(coll[i], new SequentialEngine.SequentialEngine());
    168168              }
    169169
    170               var experiment = CreateHiveExperiment();
     170              var experiment = CreateJob();
    171171              IScope[] scopes = ExecuteOnHive(experiment, jobs, parentScopeClone, cancellationToken);
    172172
     
    241241    /// </summary>
    242242    /// <param name="jobs"></param>
    243     private IScope[] ExecuteOnHive(RefreshableHiveExperiment refreshableHiveExperiment, EngineJob[] jobs, IScope parentScopeClone, CancellationToken cancellationToken) {
     243    private IScope[] ExecuteOnHive(RefreshableJob refreshableJob, EngineTask[] jobs, IScope parentScopeClone, CancellationToken cancellationToken) {
    244244      log.LogMessage(string.Format("Executing {0} operations on the hive.", jobs.Length));
    245245      IScope[] scopes = new Scope[jobs.Length];
    246246      object locker = new object();
    247       var hiveExperiment = refreshableHiveExperiment.HiveExperiment;
     247      var hiveExperiment = refreshableJob.Job;
    248248
    249249      try {
    250250        // create upload-tasks
    251251        for (int i = 0; i < jobs.Length; i++) {
    252           var engineHiveJob = new EngineHiveJob(jobs[i], parentScopeClone);
    253           engineHiveJob.Job.Priority = this.Priority;
    254           refreshableHiveExperiment.HiveJobs.Add(engineHiveJob);
     252          var engineHiveJob = new EngineHiveTask(jobs[i], parentScopeClone);
     253          engineHiveJob.Task.Priority = this.Priority;
     254          refreshableJob.HiveJobs.Add(engineHiveJob);
    255255
    256256          // shuffle random variable to avoid the same random sequence in each operation; todo: does not yet work (it cannot find the random variable)
     
    259259            random.Reset(random.Next());
    260260        }
    261         HiveClient.StartExperiment((e) => { log.LogException(e); }, refreshableHiveExperiment, cancellationToken);
     261        HiveClient.StartExperiment((e) => { log.LogException(e); }, refreshableJob, cancellationToken);
    262262
    263263        // do polling until experiment is finished and all jobs are downloaded
    264         while (!refreshableHiveExperiment.AllJobsFinished()) {
     264        while (!refreshableJob.AllJobsFinished()) {
    265265          Thread.Sleep(2000);
    266           this.ExecutionTimeOnHive = TimeSpan.FromMilliseconds(hiveExperiments.Sum(x => x.ExecutionTime.TotalMilliseconds));
     266          this.ExecutionTimeOnHive = TimeSpan.FromMilliseconds(jobs.Sum(x => x.ExecutionTime.TotalMilliseconds));
    267267          cancellationToken.ThrowIfCancellationRequested();
    268268        }
    269         log.LogMessage(string.Format("{0} finished (TotalExecutionTime: {1}).", refreshableHiveExperiment.ToString(), refreshableHiveExperiment.ExecutionTime));
    270 
    271         var failedJobs = refreshableHiveExperiment.HiveJobs.Where(x => x.Job.State == TaskState.Failed);
     269        log.LogMessage(string.Format("{0} finished (TotalExecutionTime: {1}).", refreshableJob.ToString(), refreshableJob.ExecutionTime));
     270
     271        var failedJobs = refreshableJob.HiveJobs.Where(x => x.Task.State == TaskState.Failed);
    272272        if (failedJobs.Count() > 0) {
    273           throw new HiveEngineException("Task failed: " + failedJobs.First().Job.StateLog.Last().Exception);
     273          throw new HiveEngineException("Task failed: " + failedJobs.First().Task.StateLog.Last().Exception);
    274274        }
    275275
    276276        // get scopes
    277277        int j = 0;
    278         foreach (var hiveJob in refreshableHiveExperiment.HiveJobs) {
    279           var scope = ((IAtomicOperation)((EngineJob)hiveJob.ItemJob).InitialOperation).Scope;
     278        foreach (var hiveJob in refreshableJob.HiveJobs) {
     279          var scope = ((IAtomicOperation)((EngineTask)hiveJob.ItemTask).InitialOperation).Scope;
    280280          scopes[j++] = scope;
    281281        }
     
    290290      }
    291291      finally {
    292         DisposeHiveExperiment(refreshableHiveExperiment);
    293       }
    294     }
    295 
    296     private RefreshableHiveExperiment CreateHiveExperiment() {
     292        DisposeJob(refreshableJob);
     293      }
     294    }
     295
     296    private RefreshableJob CreateJob() {
    297297      lock (locker) {
    298298        var hiveExperiment = new Job();
    299         hiveExperiment.Name = "HiveEngine Run " + hiveExperiments.Count;
     299        hiveExperiment.Name = "HiveEngine Run " + jobs.Count;
    300300        hiveExperiment.DateCreated = DateTime.Now;
    301301        hiveExperiment.ResourceNames = this.ResourceNames;
    302302        hiveExperiment.IsPrivileged = this.IsPrivileged;
    303         var refreshableHiveExperiment = new RefreshableHiveExperiment(hiveExperiment);
     303        var refreshableHiveExperiment = new RefreshableJob(hiveExperiment);
    304304        refreshableHiveExperiment.IsDownloadable = false; // download happens automatically so disable button
    305         hiveExperiments.Add(refreshableHiveExperiment);
     305        jobs.Add(refreshableHiveExperiment);
    306306        return refreshableHiveExperiment;
    307307      }
    308308    }
    309309
    310     private void DisposeHiveExperiment(RefreshableHiveExperiment refreshableHiveExperiment) {
    311       refreshableHiveExperiment.RefreshAutomatically = false;
    312       DeleteHiveExperiment(refreshableHiveExperiment.HiveExperiment.Id);
    313       ClearData(refreshableHiveExperiment);
    314     }
    315 
    316     private void ClearData(RefreshableHiveExperiment refreshableHiveExperiment) {
    317       var jobs = refreshableHiveExperiment.GetAllHiveJobs();
     310    private void DisposeJob(RefreshableJob refreshableJob) {
     311      refreshableJob.RefreshAutomatically = false;
     312      DeleteHiveExperiment(refreshableJob.Job.Id);
     313      ClearData(refreshableJob);
     314    }
     315
     316    private void ClearData(RefreshableJob refreshableJob) {
     317      var jobs = refreshableJob.GetAllHiveJobs();
    318318      foreach (var job in jobs) {
    319319        job.ClearData();
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.HiveEngine/3.3/Tests/Program.cs

    r6381 r6725  
    3333      ContentManager.Initialize(new PersistenceContentManager());
    3434
    35       OptimizerJob job = new OptimizerJob(new Experiment());
     35      OptimizerTask job = new OptimizerTask(new Experiment());
    3636      job.IndexInParentOptimizerList = 15;
    3737
    38       //byte[] data = PersistenceUtil.Serialize(job);
     38      //byte[] data = PersistenceUtil.Serialize(task);
    3939
    4040      //var job2 = PersistenceUtil.Deserialize<OptimizerJob>(data);
     
    6666        Console.WriteLine("Log:");
    6767        Console.WriteLine(string.Join(Environment.NewLine, alg.Engine.Log.Messages.ToArray()));
    68         var exps = ((HiveEngine)alg.Engine).HiveExperiments;
     68        var exps = ((HiveEngine)alg.Engine).Jobs;
    6969        foreach (var exp in exps) {
    7070          Console.WriteLine("# " + exp.ToString());
Note: See TracChangeset for help on using the changeset viewer.