Parallel Execution Models for Future Multicore Architectures

183
Следующее
Популярные
Опубликовано 6 сентября 2016, 6:13
With uniprocessor performance increases leveling off, and with the semiconductor industry moving towards multicore processors, novel ways of parallelizing the execution of a variety of computing applications will be needed. To be viable, a parallel execution model for future multicore architectures should not only mesh well with the programming styles that we expect in the future, but perhaps even leverage the characteristics of such programming styles. This talk will review proposed parallel execution models and present Program Demultiplexing (PD), an execution model that creates concurrency in sequential programs by demultiplexing methods (functions or subroutines). Call sites of a demultiplexed method in the program are associated with handlers that allow the method to be separated from the sequential program and executed on an auxillary processor. The demultiplexed execution of a method (and its handler) is speculative and occurs when the inputs of the method are (speculatively) available, which is typically far in advance of when the method is actually called in the sequential execution. A trigger, composed of predicates that are based on program counters and memory write addresses, launches the (speculative) execution of the method on another processor. Results from our initial experience with a simulation model for PD will be presented. For eight integer benchmarks from the SPEC2000 suite, programs written in C with no explicit concurrency and/or motivation to create concurrency, we achieve a harmonic mean speedup of 1.8x on four processors. We believe that PD can achieve further speedup when opportunities for concurrency are exposed to programmers and/or on applications that use modern object-oriented languages. Given time, the talk will touch on some other hardware trends that are likely to have implications for how software is written in the future.
автотехномузыкадетское