1. A method of detecting a macroscopic transaction boundary in a program workload comprising: developing a trace of a program; identifying a sequence of program states from the trace; determining program state entropy values associated with the program states identified in the sequence; identifying a transactional entropy value associated with macroscopic transactions of the workload, wherein each of the macroscopic transactions is an ordered sequence of program states with an entropy-spiking ending state and the transactional entropy value is a measure of uncertainty associated with transitioning between macroscopic transactions; and identifying a program state in the sequence of program states and associated with a program state entropy value that is substantially equal to the transactional entropy value as occurring at a macroscopic transaction boundary.