Conventional wisdom says that we must abandon order from programs to secure performance on multiprocessors. Unfortunately the resulting nondeterminism complicates programming and using multiprocessors, in general.
In contrast, microprocessors execute instructions in sequential programs concurrently while providing an ordered view of the execution. This "ordered" paradigm kept system use simple while improving performance, contributing to the phenomenal success of microprocessors. Can an analogous approach be applied to multiprocessors?
I apply principles used in the microprocessor to perform ordered, but parallel execution of multiprocessor programs. This approach obtains the ordered paradigm's benefits, but contrary to conventional wisdom, without sacrificing performance at large.
I will present some interesting analyses of my work: its impact on programming and other system uses, why it performs well (almost always), and when (rarely) it may underperform.