Index: branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/Benchmark.cs
===================================================================
--- branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/Benchmark.cs	(revision 6948)
+++ branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/Benchmark.cs	(revision 6987)
@@ -276,5 +276,5 @@
     private void CreateParameters() {
       Parameters.Add(new ValueParameter<IntValue>("ChunkSize", "The size (MB) of the chunk array that gets generated", new IntValue(0)));
-      Parameters.Add(new ValueParameter<DoubleValue>("TimeLimit", "The time limit (in minutes) for a benchmark run", new DoubleValue(0)));
+      Parameters.Add(new ValueParameter<DoubleValue>("TimeLimit", "The time limit (in minutes) for a benchmark run. Zero means a fixed number of iterations", new DoubleValue(0)));
     }
 
@@ -292,5 +292,4 @@
           Parameters.Add(new ConstrainedValueParameter<IBenchmark>(paramName, values, values.First(a => a is IBenchmark)));
         } else {
-          // throw exception?
           Parameters.Add(new ConstrainedValueParameter<IBenchmark>(paramName, values));
         }
@@ -363,10 +362,15 @@
         if (chunkSize > 0) {
           BenchmarkAlgorithm.ChunkData = CreateDataChuck(chunkSize);
-        }
-        BenchmarkAlgorithm.TimeLimit = TimeSpan.FromMinutes(((DoubleValue)TimeLimitParameter.ActualValue).Value);
+        } else if (chunkSize < 0) {
+          throw new ArgumentException("ChunkSize must not be negativ.");
+        }
+        TimeSpan timelimit = TimeSpan.FromMinutes(((DoubleValue)TimeLimitParameter.ActualValue).Value);
+        if (timelimit.TotalMilliseconds < 0) {
+          throw new ArgumentException("TimeLimit must not be negativ. ");
+        }
+        BenchmarkAlgorithm.TimeLimit = timelimit;
         BenchmarkAlgorithm.Run(cancellationToken, results);
       }
       catch (OperationCanceledException) {
-        //Console.WriteLine(ex.ToString());
       }
       finally {
@@ -411,6 +415,4 @@
         }
       }
-      values.Add("Benchmark Name", new StringValue(Name));
-      values.Add("Benchmark Type", new StringValue(this.GetType().GetPrettyName()));
     }
 
@@ -426,17 +428,4 @@
       return chunk;
     }
-    /*
-    private int[] CreateDataChuck(int megaBytes) {
-      if (megaBytes <= 0) {
-        throw new ArgumentException("MegaBytes must be greater than zero", "megaBytes");
-      }
-      int size = (megaBytes * 1020 * 1024) / sizeof(int);
-      int[] data = new int[size];
-      for (int i = 0; i < data.Length; i++) {
-        data[i] = random.Next();
-      }
-      return data;
-    }
-    */
 
     #region Events
Index: branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/DhrystoneBenchmark.cs
===================================================================
--- branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/DhrystoneBenchmark.cs	(revision 6948)
+++ branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/DhrystoneBenchmark.cs	(revision 6987)
@@ -36,10 +36,34 @@
     [Storable]
     private byte[][] chunk;
+    public byte[][] ChunkData {
+      get { return chunk; }
+      set { chunk = value; }
+    }
 
     private TimeSpan timeLimit;
+    public TimeSpan TimeLimit {
+      get { return timeLimit; }
+      set { timeLimit = value; }
+    }
 
     private bool stopBenchmark;
 
     private CancellationToken cancellationToken;
+
+    public string ItemName {
+      get { return ItemAttribute.GetName(this.GetType()); }
+    }
+
+    public string ItemDescription {
+      get { return ItemAttribute.GetDescription(this.GetType()); }
+    }
+
+    public Version ItemVersion {
+      get { return ItemAttribute.GetVersion(this.GetType()); }
+    }
+
+    public Image ItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; }
+    }
 
     #region Benchmark Fields
@@ -67,34 +91,4 @@
 
     private long Default_Number_Of_Runs = 10000000;
-
-    #endregion
-
-    #region Properties
-
-    public byte[][] ChunkData {
-      get { return chunk; }
-      set { chunk = value; }
-    }
-
-    public TimeSpan TimeLimit {
-      get { return timeLimit; }
-      set { timeLimit = value; }
-    }
-
-    public string ItemName {
-      get { return ItemAttribute.GetName(this.GetType()); }
-    }
-
-    public string ItemDescription {
-      get { return ItemAttribute.GetDescription(this.GetType()); }
-    }
-
-    public Version ItemVersion {
-      get { return ItemAttribute.GetVersion(this.GetType()); }
-    }
-
-    public Image ItemImage {
-      get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; }
-    }
 
     #endregion
Index: branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/LinpackBenchmark.cs
===================================================================
--- branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/LinpackBenchmark.cs	(revision 6948)
+++ branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/LinpackBenchmark.cs	(revision 6987)
@@ -36,10 +36,34 @@
     [Storable]
     private byte[][] chunk;
+    public byte[][] ChunkData {
+      get { return chunk; }
+      set { chunk = value; }
+    }
 
     private TimeSpan timeLimit;
+    public TimeSpan TimeLimit {
+      get { return timeLimit; }
+      set { timeLimit = value; }
+    }
 
     private bool stopBenchmark;
 
     private CancellationToken cancellationToken;
+
+    public string ItemName {
+      get { return ItemAttribute.GetName(this.GetType()); }
+    }
+
+    public string ItemDescription {
+      get { return ItemAttribute.GetDescription(this.GetType()); }
+    }
+
+    public Version ItemVersion {
+      get { return ItemAttribute.GetVersion(this.GetType()); }
+    }
+
+    public Image ItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; }
+    }
 
     #region Benchmark Fields
@@ -54,34 +78,4 @@
 
     private Stopwatch sw = new Stopwatch();
-
-    #endregion
-
-    #region Properties
-
-    public byte[][] ChunkData {
-      get { return chunk; }
-      set { chunk = value; }
-    }
-
-    public TimeSpan TimeLimit {
-      get { return timeLimit; }
-      set { timeLimit = value; }
-    }
-
-    public string ItemName {
-      get { return ItemAttribute.GetName(this.GetType()); }
-    }
-
-    public string ItemDescription {
-      get { return ItemAttribute.GetDescription(this.GetType()); }
-    }
-
-    public Version ItemVersion {
-      get { return ItemAttribute.GetVersion(this.GetType()); }
-    }
-
-    public Image ItemImage {
-      get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; }
-    }
 
     #endregion
@@ -197,5 +191,5 @@
 
         executionTime += sw.Elapsed;
-        if (timeLimit == null)
+        if ((timeLimit == null) || (timeLimit.TotalMilliseconds == 0))
           stopBenchmark = true;
         else if (executionTime > timeLimit)
Index: branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/WhetstoneAlgorithm.cs
===================================================================
--- branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/WhetstoneAlgorithm.cs	(revision 6948)
+++ branches/Benchmarking/sources/HeuristicLab.Algorithms.Benchmarks/3.3/WhetstoneAlgorithm.cs	(revision 6987)
@@ -36,10 +36,34 @@
     [Storable]
     private byte[][] chunk;
+    public byte[][] ChunkData {
+      get { return chunk; }
+      set { chunk = value; }
+    }
 
     private TimeSpan timeLimit;
+    public TimeSpan TimeLimit {
+      get { return timeLimit; }
+      set { timeLimit = value; }
+    }
 
     private bool stopBenchmark;
 
     private CancellationToken cancellationToken;
+
+    public string ItemName {
+      get { return ItemAttribute.GetName(this.GetType()); }
+    }
+
+    public string ItemDescription {
+      get { return ItemAttribute.GetDescription(this.GetType()); }
+    }
+
+    public Version ItemVersion {
+      get { return ItemAttribute.GetVersion(this.GetType()); }
+    }
+
+    public Image ItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; }
+    }
 
     #region Benchmark Fields
@@ -55,34 +79,4 @@
     private double[] e1 = new double[4];
     private int i, j, k, l, n1, n2, n3, n4, n6, n7, n8, n9, n10, n11;
-
-    #endregion
-
-    #region Properties
-
-    public byte[][] ChunkData {
-      get { return chunk; }
-      set { chunk = value; }
-    }
-
-    public TimeSpan TimeLimit {
-      get { return timeLimit; }
-      set { timeLimit = value; }
-    }
-
-    public string ItemName {
-      get { return ItemAttribute.GetName(this.GetType()); }
-    }
-
-    public string ItemDescription {
-      get { return ItemAttribute.GetDescription(this.GetType()); }
-    }
-
-    public Version ItemVersion {
-      get { return ItemAttribute.GetVersion(this.GetType()); }
-    }
-
-    public Image ItemImage {
-      get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; }
-    }
 
     #endregion
