This article describes a technique for path unfolding for conditional branches in parallel programs executed on clusters. Unfolding paths following control structures makes it possible to break the control dependencies existing in the code and consequently to obtain a high degree of parallelism through the use of idle CPUs. The main challenge of this technique is to deal with sequences of control statements. When a control statement appears in a path after a branch, a new conditional block needs to be opened, creating a new code split before the previous one is resolved. Such subsequent code splits increase the cost of speculation management, resulting in reduced profits. Several decision techniques have been developed for improving code sp...
With the advent of multicore processors, extracting thread level parallelism from a sequential progr...
Conditional branches are expensive. Branches require a significant percentage of execution cycles si...
This paper presents a mechanism to dynamically detect the loops that are executed in a program. This...
Commodity microprocessors uniformly apply branch prediction and single path speculative execution to...
We present two novel strategies to increase the scope for application of speculative code motions: (...
Instruction Level Parallelism (ILP) speedups of an order-of-magnitude or greater may be possible usi...
This paper proposes a new compiler technique that enables speculative execution of alternative progr...
Effectively utilizing available parallelism is becoming harder and harder as systems evolve to many-...
To achieve good performance on modern hardware, software must be designed with a high degree of para...
Speculative execution of conditional branches has a high hardware cost, is limited by dynamic branc...
Control and data flow speculation can improve processor performance through increased ILP. First it ...
International audienceNowadays almost every device has parallel architecture, hence parallelization ...
Speculative execution has long been used as an approach to exploit instruction level parallelism acr...
The major specific contributions are: (1) We introduce a new compiler analysis to identify the memor...
The advent of multicores presents a promising opportunity for speeding up the execution of sequentia...
With the advent of multicore processors, extracting thread level parallelism from a sequential progr...
Conditional branches are expensive. Branches require a significant percentage of execution cycles si...
This paper presents a mechanism to dynamically detect the loops that are executed in a program. This...
Commodity microprocessors uniformly apply branch prediction and single path speculative execution to...
We present two novel strategies to increase the scope for application of speculative code motions: (...
Instruction Level Parallelism (ILP) speedups of an order-of-magnitude or greater may be possible usi...
This paper proposes a new compiler technique that enables speculative execution of alternative progr...
Effectively utilizing available parallelism is becoming harder and harder as systems evolve to many-...
To achieve good performance on modern hardware, software must be designed with a high degree of para...
Speculative execution of conditional branches has a high hardware cost, is limited by dynamic branc...
Control and data flow speculation can improve processor performance through increased ILP. First it ...
International audienceNowadays almost every device has parallel architecture, hence parallelization ...
Speculative execution has long been used as an approach to exploit instruction level parallelism acr...
The major specific contributions are: (1) We introduce a new compiler analysis to identify the memor...
The advent of multicores presents a promising opportunity for speeding up the execution of sequentia...
With the advent of multicore processors, extracting thread level parallelism from a sequential progr...
Conditional branches are expensive. Branches require a significant percentage of execution cycles si...
This paper presents a mechanism to dynamically detect the loops that are executed in a program. This...