Current parallelizing compilers treat while loops and do loops with conditional exits as sequential constructs because their iteration space is unknown. Motivated by the fact that these types of loops arise frequently in practice, we have developed techniques that can be used to automatically transform them for parallel execution. We succeed in parallelizing loops involving linked lists traversals --- something that has not been done before. This is an important problem since linked list traversals arise frequently in loops with irregular access patterns, such as sparse matrix computations. The methods can even be applied to loops whose data dependence relations cannot be analyzed at compile-time. We outline a cost/performance analysis that...
Over the past 20 years, increases in processor speed have dramatically outstripped performance incre...
Developing efficient programs for many of the current parallel computers is not easy due to the arch...
This work explores an unexpected application of Implicit Computational Complexity (ICC) to paralleli...
Current parallelizing compilers treat WHILE loops and DO loops with conditional exits as sequential ...
While automatic parallelization of loops usually relies on compile-time analysis of data dependences...
This work leverages an original dependency analysis to parallelize loops regardless of their form i...
Uncountable loops (such as while loops in C) and if-conditions are some of the most common construct...
Loops are the main source of parallelism in scientific programs. Hence, several techniques were dev...
[[abstract]]The main function of parallelizing compilers is to analyze sequential programs, in parti...
Abstract—We propose a cooperation between the programmer, the compiler and the runtime system to ide...
Parallelizing compilers promise to exploit the parallelism available in a given program, particularl...
Current parallelizing compilers cannot identify a significant fraction of parallelizable loops becau...
Current parallelizing compilers cannot identify a significant fraction of parallelizable loops becau...
Modern computers will increasingly rely on parallelism to achieve high computation rates. Techniques...
Abstract In this paper, an approach to the problem of exploiting parallelism within nested loops is ...
Over the past 20 years, increases in processor speed have dramatically outstripped performance incre...
Developing efficient programs for many of the current parallel computers is not easy due to the arch...
This work explores an unexpected application of Implicit Computational Complexity (ICC) to paralleli...
Current parallelizing compilers treat WHILE loops and DO loops with conditional exits as sequential ...
While automatic parallelization of loops usually relies on compile-time analysis of data dependences...
This work leverages an original dependency analysis to parallelize loops regardless of their form i...
Uncountable loops (such as while loops in C) and if-conditions are some of the most common construct...
Loops are the main source of parallelism in scientific programs. Hence, several techniques were dev...
[[abstract]]The main function of parallelizing compilers is to analyze sequential programs, in parti...
Abstract—We propose a cooperation between the programmer, the compiler and the runtime system to ide...
Parallelizing compilers promise to exploit the parallelism available in a given program, particularl...
Current parallelizing compilers cannot identify a significant fraction of parallelizable loops becau...
Current parallelizing compilers cannot identify a significant fraction of parallelizable loops becau...
Modern computers will increasingly rely on parallelism to achieve high computation rates. Techniques...
Abstract In this paper, an approach to the problem of exploiting parallelism within nested loops is ...
Over the past 20 years, increases in processor speed have dramatically outstripped performance incre...
Developing efficient programs for many of the current parallel computers is not easy due to the arch...
This work explores an unexpected application of Implicit Computational Complexity (ICC) to paralleli...