Tools and methods able to simplify the development process of parallel software, but also to assure a high level of performance and robustness, are necessary. Powerlists and their variants are data structures that can be successfully used in a simple, provably correct, functional description of parallel programs, which are divide-and-conquer in nature. The paper presents how programs defined based on powerlists could be implemented in the functional language OCaml plus calls to the parallel functional programming library Bulk Synchronous Parallel ML. BSML functions follow the BSP model requirements, and so its advantages are introduced in OCaml parallel code. In order to write powerlist programs in BSML we provide a datatype for powerlists and a set of skeletons (higher-order functions implemented in parallel) to manipulate them. Examples are given and concrete experiments for their executions are conducted. Keywords-Parallel recursive structures; Functional parallel programming; Bulk synchronous parallelism I. CONTEXT AND MOTIVATIONThe latest developments of the computation systems lead to an increase of the requirements in using parallel computation. Still, for many years, parallel computation has been considered difficult and error-prone. This imposes using tools and methodologies able to simplify the development process of parallel software, but also to assure a high level of performance and robustness.This calls for a strongly structured form of parallelism [1], [2], [3], which should not only be based on an abstraction or model that conceals much of the complexity of parallel computation, but also provide a systematic way of developing such parallelism from specifications for practically nontrivial examples. Since correctness is very important in this context, high-level algebraic theories are appropriate to be used as fundamentals. Among them at least two seem suitable for parallel programming: the theory of lists [4] and parallel recursive structures such as powerlists [5].Powerlists and their variants are data structures that can be successfully used in a simple, provably correct, functional description of parallel programs, which are divide and conquer in nature [5], [6]. For each data structure, theories based on algebras and structural induction principles have been specified, which make them well suited to formally define recursive, data-parallel algorithms. These theories can be considered together a base for a model of parallel computation with a very high level of abstraction [7].In order to be useful, a model of parallel computation must also address very carefully issues such as efficient implementation and costs evaluation. BSP model [2] is famous especially because it provides a very accurate cost analysis, and a rigorous development that could provide robustness. From these, the idea of using BSP development methodology in the process of implementing powerlists programs came natural.Powerlist programs are defined in a very high-level way. While their divide-and-conquer nature makes them suita...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.