MATHEMATICAL ENGINEERING TECHNICAL REPORTS Design and Implementation of General Tree Skeletons
نویسندگان
چکیده
Trees are important datatypes that are often used in representing structured data such as XML. Though trees are widely used in sequential programming, it is hard to write efficient parallel programs manipulating trees of arbitrary shapes, because of their irregular and ill-balanced structures. In this paper, we propose a solution for them based on the skeletal approach, in particular for general trees of arbitrary shapes, often called rose trees. We formalize a set of skeletons (abstracted computational patterns) for rose trees based on the theory of Constructive Algorithmics. The formalization of the skeletons is an extension of those proposed for other data structures such as lists and binary trees. We then prove that the skeletons can be computed efficiently in parallel, by implementing each rose-tree skeleton in terms of parallel binary-tree skeletons for which an efficient parallel implementation is already known. To encourage users to write efficient parallel programs in terms of parallel rose-tree skeletons, we propose a systematic method for deriving efficient skeletal programs from recursively defined sequential programs. We show the expressiveness of our parallel skeletons by three non-trivial examples. We also show a practical implementation of the rose-tree skeletons by adopting function objects and the template mechanism in C++. As far as we are aware, we are the first who formalized and implemented a set of simple but expressive skeletons for rose trees.
منابع مشابه
MATHEMATICAL ENGINEERING TECHNICAL REPORTS Efficient Implementation of Tree Skeletons on Distributed-Memory Parallel Computers
Parallel tree skeletons are basic computational patterns that encourage us to develop parallel programs manipulating trees. In this paper, we develop an efficient implementation of parallel tree skeletons on distributed-memory parallel computers. In our implementation, we divide a binary tree based on the idea of m-bridges to obtain high locality, and represent local segments as serialized arra...
متن کاملMATHEMATICAL ENGINEERING TECHNICAL REPORTS Parallelization with Tree Skeletons
Trees are useful data structures, but to design efficient parallel programs over trees is known to be more difficult than to do over lists. Although several important tree skeletons have been proposed to simplify parallel programming on trees, few studies have been reported on how to systematically use them in solving practical problems; it is neither clear how to make a good combination of ske...
متن کاملDesign, Modeling, Implementation and Experimental Analysis of 6R Robot (TECHNICAL NOTE)
Design, modeling, manufacturing and experimental analysis of a six degree freedom robot, suitable for industrial applications, has been described in this paper. The robot was designed on the assumption that, each joint has an independent DC motor actuator, with gear reduction and measuring sensor for angular joint position. Mechanical design of the robot was done using Mechanical Desktop and ma...
متن کاملParallel Programming with Tree Skeletons
Parallel computing is an essential technique to deal with large scaled problems. In recent years, while hardware for parallel computing is getting widely available, developing software for parallel computing remains as a hard task for many programmers. The main difficulties are caused by the communication, synchronization, and data distribution required in parallel programs. This thesis studies...
متن کاملA Buck-Boost Converter; Design, Analysis and Implementation Suggested for Renewable Energy Systems
This work introduces a new non-isolated buck-boost DC-DC converter. Interleaved configuration of the suggested structure increases the voltage conversion ratio. The voltage rate of the suggested converter can be stepped-up and stepped down for lower values of duty-cycle, which causes to decrease in the conduction losses of the system. The voltage conversion ratio of the recommended structure is...
متن کامل