Accelerated Deterministic Multithreading for Multichannel Video Decoder

One of the major challenges in developing applications for multicore systems is dealing with non-deterministic behavior. One solution to making threads deterministic is to control their relative execution order based on their progress. That is, we enforce the threads to be interleaved in an order, and the order is determined by the progress of each thread. In this paper, we introduce an efficient deterministic runtime architecture with a deterministic logical counter and an efficient interleaving technique for deterministic multithreading. As a case study, we implement 24 video decoders on a quad core system using the proposed deterministic runtime system.