Fast track is a software speculation system that enables unsafe optimization of sequential code. It speculatively runs optimized code to improve performance and then checks the correctness of the speculative code by running the original program on multiple processors. We present the interface design and system implementation for Fast Track. It lets a programmer or a profiling tool mark fast-track code regions and uses a run-time system to manage the parallel execution of the speculative process and its checking processes and ensures the correct display of program outputs. The core of the run-time system is a novel concurrent algorithm that balances exploitable parallelism and available processors when the fast track is too slow or too fast...
Speculative thread-level parallelization is a promising way to speed up codes that compilers fail to...
We propose a formal definition for (valid) speculative computa-tions, which is independent of any im...
Thread-level speculation provides architectural support to aggressively run hard-to-analyze code in ...
Abstract. The traditional target machine of a parallelizing compiler can execute code sections eithe...
Although compiler optimization techniques are standard and successful in non-real-time systems, if n...
The major specific contributions are: (1) We introduce a new compiler analysis to identify the memor...
To achieve good performance on modern hardware, software must be designed with a high degree of para...
Many sequential applications are difficult to parallelize because of unpredictable control flow, ind...
Coarse-grained task parallelism exists in sequential code and can be leveraged to boost the use of ...
While dynamic languages are now mainstream choices for application development, most popular dynamic...
With speculative parallelization, code sections that cannot be fully analyzed by the compiler are ag...
The available instruction level parallelism (ILP) is extremely limited within basic blocks of non-nu...
Effectively utilizing available parallelism is becoming harder and harder as systems evolve to many-...
Speculative thread-level parallelization is a promising way to speed up codes that compilers fail to...
International audienceNowadays almost every device has parallel architecture, hence parallelization ...
Speculative thread-level parallelization is a promising way to speed up codes that compilers fail to...
We propose a formal definition for (valid) speculative computa-tions, which is independent of any im...
Thread-level speculation provides architectural support to aggressively run hard-to-analyze code in ...
Abstract. The traditional target machine of a parallelizing compiler can execute code sections eithe...
Although compiler optimization techniques are standard and successful in non-real-time systems, if n...
The major specific contributions are: (1) We introduce a new compiler analysis to identify the memor...
To achieve good performance on modern hardware, software must be designed with a high degree of para...
Many sequential applications are difficult to parallelize because of unpredictable control flow, ind...
Coarse-grained task parallelism exists in sequential code and can be leveraged to boost the use of ...
While dynamic languages are now mainstream choices for application development, most popular dynamic...
With speculative parallelization, code sections that cannot be fully analyzed by the compiler are ag...
The available instruction level parallelism (ILP) is extremely limited within basic blocks of non-nu...
Effectively utilizing available parallelism is becoming harder and harder as systems evolve to many-...
Speculative thread-level parallelization is a promising way to speed up codes that compilers fail to...
International audienceNowadays almost every device has parallel architecture, hence parallelization ...
Speculative thread-level parallelization is a promising way to speed up codes that compilers fail to...
We propose a formal definition for (valid) speculative computa-tions, which is independent of any im...
Thread-level speculation provides architectural support to aggressively run hard-to-analyze code in ...