 		num_gpus)) exit(1);
 
 	// Perform the specified number of test iterations
-	int test_iteration = -1;
-	while (test_iteration < test_iterations) {
+	while (stats_map[HOST]->rate.count <= test_iterations) {
 	
 		// If randomized-src was specified, re-roll the src
 		if (randomized_src) src = builder::RandomNode(csr_graph.nodes);

			GpuTimer gpu_timer;

			switch (strategy) {

			case EXPAND_CONTRACT:
				if (retval = csr_problem.Reset(expand_contract.GetFrontierType(), max_queue_sizing)) break;
				gpu_timer.Start();

				gpu_timer.Stop();
				contract_expand.GetStatistics(total_queued, search_depth, avg_duty);
				break;
*/
			case TWO_PHASE:
				if (retval = csr_problem.Reset(two_phase.GetFrontierType(), max_queue_sizing)) break;
				gpu_timer.Start();
