2018
DOI: 10.1016/j.future.2017.05.011
|View full text |Cite
|
Sign up to set email alerts
|

Free the Conqueror! Refactoring divide-and-conquer functions

Abstract: Divide-and-conquer algorithms appear in the solution of many computationally intensive problems, and are good candidates for parallelization. A divide-andconquer computation can be expressed in a programming language in many ways. This paper presents a set of small, semantics-preserving code transformations, and a methodology to refactor divide-and-conquer functions in a functional programming language. By applying a sequence of transformations using a refactoring tool, many divide-and-conquer functions can be… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
5

Relationship

0
5

Authors

Journals

citations
Cited by 7 publications
(3 citation statements)
references
References 26 publications
0
3
0
Order By: Relevance
“…Another line of research related to our work is the development of techniques and tools to identify computational patterns in sequential programs and refactor these codes in order to enable their effective parallelization. Many of these works consider explicitly or are specifically devoted to the D&C pattern targeted by our skeleton [14,21,30], further justifying the importance of this pattern. Coupling the analysis and transformations proposed by these works with efficient implementations like ours could enable the much desirable automatic optimized parallelization of D&C algorithms by advanced compilers.…”
Section: Related Workmentioning
confidence: 99%
“…Another line of research related to our work is the development of techniques and tools to identify computational patterns in sequential programs and refactor these codes in order to enable their effective parallelization. Many of these works consider explicitly or are specifically devoted to the D&C pattern targeted by our skeleton [14,21,30], further justifying the importance of this pattern. Coupling the analysis and transformations proposed by these works with efficient implementations like ours could enable the much desirable automatic optimized parallelization of D&C algorithms by advanced compilers.…”
Section: Related Workmentioning
confidence: 99%
“…It is interesting to notice that while skeletons have been traditionally directly used by programmers, their scope of application is growing thanks to very promising novel research. Namely, the development of techniques and tools to identify computational patterns and refactor the codes containing them [19,20] not only simplifies the use of skeleton libraries by less experienced users, but it can even lead to the automatic parallelization of complex codes on top of libraries of skeletal operations.…”
Section: Related Workmentioning
confidence: 99%
“…Discovering or developing proper means for creating efficient, scalable, and adaptable software for multicore and multimode computers is still an open and a very important problem. Great efforts are made to solve problems related to the efficiency of resource utilization, monitoring and failure handling, and, most importantly, development of highly concurrent systems …”
Section: Introductionmentioning
confidence: 99%