Font Size: a A A

Research And Implementation Of Parallel Functional Programming Model On Transparent Threads

Posted on:2020-01-29Degree:MasterType:Thesis
Country:ChinaCandidate:P S HuangFull Text:PDF
GTID:2428330590484504Subject:Communication and Information System
Abstract/Summary:PDF Full Text Request
In the past century,the repidly development of hardware and software technology on parallel computing,especially the emergence of multi-core processors,multi-threaded OS and shared memory,has made parallel computing widely applied in the field of high-performance computing.Functional programming(FP)is proposed with the properties such as no-state and not causing side-effects,making it naturally suitable for parallel computing,and so that is drawing more and more attention.However,the existing parallel computing frameworks generally has problems such as high synchronization cost and not supporting general purpose,and the existing functional programming languages don't provide effective implementation for parallel computing.This paper attempts to establish a functional programming model with high parallelism and versatility.The main contents of the work include the following aspects: This paper firstly presents a tree-like model for the composition relationship in FP.Based on this model we build a tree-like task dependency view,and then establishes a thread-transparent implicit parallel computing model on it.In the programming model,the high-order function models commonly used in FP,such as nested functions and recursion models,are supported to fully implement FP.Based on the task dependency semantics of the tree task structure,the task priority model is proposed.And based on the model,the task scheduling strategy and the task-stealing-based load balancing strategy are proposed.This paper proposes a distributed shared memory model,which abstracts the distributed memory space,and proposes shared parameters on it to implement the transmit data among functions.Taking advantages from the FP properties,this paper improves the model by the strategies such as lazy reading,lockless accessing,subset reference.For the designed programming model and memory model,the distributed runtime platform and programming interface are implemented based on Language C.In the runtime platform,parallel scheduling management of tree task structure,garbage collection mechanism based on reference counting,memory dumping mechanism based on LRU policy,and load balancing strategy based on priority and task stealing are implemented.At the end of the paper,the functional programming model is proved to be superior to the mainstream functional programming languages Erlang and Haskell in performance.The scalability exceeds the mainstream parallel computing framework TBB,achieving high parallelism and scalability.The versatility of the model is briefly analyzed from the perspective of the flexibility of parallel granularity.
Keywords/Search Tags:Functional Programming, Parallel Computing, Distributed Shared Memory, Programming Model
PDF Full Text Request
Related items