function runSuite(options) {
    var me = this,
        benches = [];

    me.reset();
    me.running = true;
    options || (options = {});

    invoke(me, {
      'name': 'run',
      'args': options,
      'queued': options.queued,
      'onStart': function(event, bench) {
        me.emit('start', bench);
      },
      'onCycle': function(event, bench) {
        if (bench.error) {
          me.emit('error', bench);
        } else if (bench.cycles) {
          benches.push(bench);
        }
        return !me.aborted && me.emit('cycle', bench);
      },
      'onComplete': function(event, bench) {
        me.running = false;
        me.emit('complete', bench);
      }
    });
    return me;
  }
Runs the suite.
@name run
@memberOf Benchmark.Suite
@param {Object} [options={}] Options object.
@returns {Object} The suite instance.
@example

// basic usage
suite.run();

// or with options
suite.run({ 'async': true, 'queued': true });