Font Size: a A A

Research On Parallel Functional Programming Language

Posted on:2014-05-30Degree:MasterType:Thesis
Country:ChinaCandidate:X SuFull Text:PDF
GTID:2308330479979126Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Currently, the computer system is moving in parallel with the development trend of isomerization. Following multi-core microprocessor’s popularity, graphics processor unit(GPU), digital signal processors(DSP), FPGA and other hardware accelerators are increasingly being added to the computer system. These hardware accelerators all have different characteristics and often have outstanding performance compared to generalpurpose processors(CPU) in specific aspects. They act as coprocessors in heterogeneous computer system and do auxiliary computing tasks. Heterogeneous computer system as a general-purpose processor to perform coprocessor auxiliary computing tasks. The most typical and popular heterogeneous computer system nowadays are those composed by CPUs and GPUs.With the trend of parallel and heterogeneous hardware system, parallel software techniques is also enjoying a rapid development. The primary target of parallel software techniques is exploiting the computing power of parallel hardware maxically. Meanwhile,parallel software must also take usability into account, that is, parallel software techniques should minimize the difficulty of parallel programming.In this paper, we propose the design of a new parallel programming language for data parallel problems. We also propose the implementation techniques targeting the CPU/GPU heterogeneous computer system in which we take into consideration both efficiency and usability. Our work is of positive significance to improve productivity in programming the CPU/GPU heterogeneous harware. The main contributions of this paper are as follows:First, the language is designed to be a functional programming language, which has high-level abstraction and powerful expressing ability. The functional characteristics can greatly reduce the difficulty of parallel programming.Second, the design of an intermediate language Core. Core language offers a parallel programming model with vector primitives, which are very suitable for expressing dataparallel problem. The reduced set of vector primitives are able to construct many actual parallel problems.Third, the use of data-flow driven computing model as the basic technique of automatic parallelization. In our design, data parallel problems are translated into data streams,which can exploite potential parallel in task. This the method is problem independent so can be applied as a generic method. At the same time, using data streams to express computing taskes fits the GPU computing model well.Finally, we design a runtime system. The runtime system can effectively manage the system’s memory resources and schedule parallel tasks for execution on GPU devices.
Keywords/Search Tags:parallel programming language, functional language, data-flow model, automatical parallelization, runtime system
PDF Full Text Request
Related items