Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/16/11 17:02:15 (13 years ago)
Author:
cneumuel
Message:

#1233

  • fixed statelog when time on server differs from slave or client
  • fixed wrong creation of childjobs in experiment manager
  • made ganttchardview the default view for statelogs
Location:
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveExperimentClient.cs

    r5675 r5718  
    2828using HeuristicLab.Core;
    2929using HeuristicLab.Optimization;
    30 using HeuristicLab.Tracing;
    3130
    3231namespace HeuristicLab.Clients.Hive {
     
    298297      string configFilePath = ConfigurationManager.OpenExeConfiguration(exeFilePath).FilePath;
    299298
    300 
    301299      Plugin configPlugin = new Plugin() {
    302300        Name = "Configuration",
     
    343341      this.progress.ProgressValue = (double)jobCount / totalJobCount;
    344342
    345       hiveJob.Job.SetState(JobState.Transferring);
     343      //service.UpdateJobState(hiveJob.Job.Id, JobState.Transferring, null, null, null);
     344
    346345      if (parentHiveJob != null) {
    347346        hiveJob.Job.Id = service.AddChildJob(parentHiveJob.Job.Id, hiveJob.Job, jobData);
     
    349348        hiveJob.Job.Id = service.AddJob(hiveJob.Job, jobData, groups.ToList());
    350349      }
    351 
    352350      LogMessage(hiveJob.Job.Id, "Job sent to Hive");
    353351
     
    579577      lock (locker) {
    580578        log.LogMessage(message);
    581         Logger.Debug(message);
    582579      }
    583580    }
     
    639636
    640637
    641         if (this.HiveJob.Job.DateFinished.HasValue) {
    642           this.ExecutionTime = this.HiveJob.Job.DateFinished.Value - this.HiveJob.Job.DateCreated;
     638        if (this.HiveJob.Job.DateFinished.HasValue && this.HiveJob.Job.DateCreated.HasValue) {
     639          this.ExecutionTime = this.HiveJob.Job.DateFinished.Value - this.HiveJob.Job.DateCreated.Value;
    643640          this.lastUpdateTime = this.HiveJob.Job.DateFinished.Value;
    644641          this.ExecutionState = Core.ExecutionState.Stopped;
    645642          OnStopped();
    646643        } else {
    647           this.ExecutionTime = DateTime.Now - this.HiveJob.Job.DateCreated;
     644          this.ExecutionTime = this.HiveJob.Job.DateCreated.HasValue ? DateTime.Now - this.HiveJob.Job.DateCreated.Value : TimeSpan.Zero;
    648645          this.lastUpdateTime = DateTime.Now;
    649646          this.ExecutionState = Core.ExecutionState.Started;
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobClient.cs

    r5675 r5718  
    108108        MemoryNeeded = 0
    109109      };
    110       job.SetState(JobState.Offline);
     110      job.State = JobState.Offline;
    111111      this.childHiveJobs = new ItemList<HiveJob>();
    112112      syncJobsWithOptimizers = true;
     
    157157    private void UpdateChildHiveJobs() {
    158158      if (Job != null && syncJobsWithOptimizers) {
    159         if (OptimizerJob.Optimizer is Optimization.Experiment) {
    160           Optimization.Experiment experiment = (Optimization.Experiment)OptimizerJob.Optimizer;
    161           foreach (IOptimizer childOpt in experiment.Optimizers) {
    162             this.childHiveJobs.Add(new HiveJob(childOpt));
    163           }
    164         } else if (OptimizerJob.Optimizer is Optimization.BatchRun) {
    165           Optimization.BatchRun batchRun = OptimizerJob.OptimizerAsBatchRun;
    166           if (batchRun.Optimizer != null) {
    167             while (this.childHiveJobs.Count < batchRun.Repetitions) {
    168               this.childHiveJobs.Add(new HiveJob(batchRun.Optimizer));
     159        if (!OptimizerJob.ComputeInParallel) {
     160          this.childHiveJobs.Clear();
     161        } else {
     162          if (OptimizerJob.Optimizer is Optimization.Experiment) {
     163            Optimization.Experiment experiment = (Optimization.Experiment)OptimizerJob.Optimizer;
     164            foreach (IOptimizer childOpt in experiment.Optimizers) {
     165              this.childHiveJobs.Add(new HiveJob(childOpt));
    169166            }
    170             while (this.childHiveJobs.Count > batchRun.Repetitions) {
    171               this.childHiveJobs.Remove(this.childHiveJobs.Last());
     167          } else if (OptimizerJob.Optimizer is Optimization.BatchRun) {
     168            Optimization.BatchRun batchRun = OptimizerJob.OptimizerAsBatchRun;
     169            if (batchRun.Optimizer != null) {
     170              while (this.childHiveJobs.Count < batchRun.Repetitions) {
     171                this.childHiveJobs.Add(new HiveJob(batchRun.Optimizer));
     172              }
     173              while (this.childHiveJobs.Count > batchRun.Repetitions) {
     174                this.childHiveJobs.Remove(this.childHiveJobs.Last());
     175              }
    172176            }
    173177          }
     
    224228    private void batchRun_OptimizerChanged(object sender, EventArgs e) {
    225229      if (syncJobsWithOptimizers) {
    226         this.childHiveJobs.Clear();
    227230        UpdateChildHiveJobs();
    228231      }
     
    277280    private void OptimizerJob_ComputeInParallelChanged(object sender, EventArgs e) {
    278281      if (OptimizerJob != null && syncJobsWithOptimizers) {
    279         if (OptimizerJob.ComputeInParallel) {
    280           // child-hive jobs are not yet created, so create them according to the child-optimizers
    281           this.UpdateChildHiveJobs();
    282         } else {
    283           // child-hive jobs need to be deleted
    284           this.childHiveJobs.Clear();
    285         }
     282        this.UpdateChildHiveJobs();
    286283      }
    287284    }
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj

    r5638 r5718  
    9696    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
    9797      <HintPath>..\..\..\..\..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
    98     </Reference>
    99     <Reference Include="HeuristicLab.Tracing-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    100       <SpecificVersion>False</SpecificVersion>
    101       <HintPath>..\..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Tracing-3.3.dll</HintPath>
    10298    </Reference>
    10399    <Reference Include="System" />
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveItem.cs

    r5676 r5718  
    3030  public partial class HiveItem : IItem {
    3131
    32     public HiveItem() {
    33     }
    34 
     32    public HiveItem() { }
    3533
    3634    protected HiveItem(HiveItem original, Cloner cloner) {
     35      cloner.RegisterClonedObject(original, this);
    3736      this.Id = original.Id;
    3837    }
    3938
    40     public IDeepCloneable Clone(Cloner cloner) {
     39    public virtual IDeepCloneable Clone(Cloner cloner) {
    4140      return new HiveItem(this, cloner);
    4241    }
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs

    r5614 r5718  
    3030    public Job() { }
    3131
    32     public void SetState(JobState state) {
    33       this.State = state;
    34       this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now });
    35     }
    36 
    37     public void SetState(JobState state, Guid userId) {
    38       this.State = state;
    39       this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, UserId = userId });
    40     }
    41 
    42     public void SetState(JobState state, Guid slaveId, string exception) {
    43       this.State = state;
    44       this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, SlaveId = slaveId, Exception = exception });
    45     }
    46 
    4732    protected Job(Job original, Cloner cloner) {
    4833      this.Priority = original.Priority;
     
    6045    }
    6146
    62     public IDeepCloneable Clone(Cloner cloner) {
     47    public override IDeepCloneable Clone(Cloner cloner) {
    6348      return new Job(this, cloner);
    6449    }
    6550
    66     public object Clone() {
    67       return Clone(new Cloner());
    68     }
    69 
    7051    public override string ToString() {
    71       return string.Format("State: {0}, SlaveId: {1}, DateCreated: {2}, DateCalculated: {3}, CoresNeeded: {4}, MemoryNeeded: {5}", State, CurrentStateLog.SlaveId, DateCreated, CoresNeeded, MemoryNeeded);
     52      return string.Format("State: {0}, SlaveId: {1}, DateCreated: {2}, DateCalculated: {3}, CoresNeeded: {4}, MemoryNeeded: {5}", State, CurrentStateLog.SlaveId, DateCreated.HasValue ? DateCreated.ToString() : "-", CoresNeeded, MemoryNeeded);
    7253    }
    7354  }
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs

    r5614 r5718  
    2828
    2929  public partial class LightweightJob : IDeepCloneable, IContent {
     30    public StateLog CurrentStateLog { get { return StateLog.LastOrDefault(); } }
     31    public DateTime? DateCreated { get { return StateLog.Count > 0 ? new DateTime?(StateLog.First().DateTime) : null; } }
     32    public DateTime? DateFinished { get { return (StateLog.Count > 0 && CurrentStateLog.State == JobState.Finished) ? new DateTime?(CurrentStateLog.DateTime) : null; } }
    3033
    3134    public LightweightJob() {
     
    4851      this.Id = original.Id;
    4952    }
    50     public IDeepCloneable Clone(Cloner cloner) {
     53    public override IDeepCloneable Clone(Cloner cloner) {
    5154      return new LightweightJob(this, cloner);
    52     }
    53 
    54     public object Clone() {
    55       return Clone(new Cloner());
    56     }
    57 
    58     public StateLog CurrentStateLog { get { return StateLog.Last(); } }
    59     public DateTime DateCreated { get { return StateLog.First().DateTime; } }
    60     public DateTime? DateFinished { get { return CurrentStateLog.State == JobState.Finished ? new DateTime?(CurrentStateLog.DateTime) : null; } }
    61 
    62     public void SetState(JobState state) {
    63       this.State = state;
    64       this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now });
    65     }
    66 
    67     public void SetState(JobState state, Guid userId) {
    68       this.State = state;
    69       this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, UserId = userId });
    70     }
    71 
    72     public void SetState(JobState state, Guid slaveId, string exception) {
    73       this.State = state;
    74       this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, SlaveId = slaveId, Exception = exception });
    7555    }
    7656  }
Note: See TracChangeset for help on using the changeset viewer.