Date Added: Jun 2010
Parallel systems allow sequential programs that demand the highest possible performance or output quality to execute different versions of program parts in parallel to dynamically select the best version (i.e., the fastest or the one that produces the highest quality). The close coupling of multi-core systems offers new opportunities to explore such speculation. The authors discuss here how Competitive Parallel Execution (CPE) supports such application-specific programmatic speculation. The key insight is that variations of the same program compete against each other during application-specific phases. These competing variants execute in complete isolation, thereby changing localized program state-comparable to a very coarse-grained transactional model. The state modifications of exactly one of these variants are committed and made globally visible based on an application-specific quality metric.