1. In a computing environment, a method comprising: detecting code patterns in a concurrent program with respect to code that has interactions between threads, global state or scheduling, or any combination of interactions between threads, global state or scheduling; modifying code fragments of the program, including instrumenting code by placing at least one iteration counter in at least one code fragment; analyzing the instrumented code to statically computer upper bounds on at least some of the iteration counters; and providing summary data of executing the concurrent program, including by analyzing the iteration counters.