Design and Implementation of a Data Parallel Language on Symmetric Multiprocessors

碩士 === 國立中正大學 === 資訊工程研究所 === 90 === Programming in parallel is usually much more difficult than programming in serial. Hence, providing a high-level parallel programming language become very crucial. The high-level parallel programming language CCC is a simple extension of C. CCC has thr...

Full description

Bibliographic Details
Main Authors: Sin-Sen-Yu, 余信賢
Other Authors: Nai-Wei Lin
Format: Others
Language:zh-TW
Published: 2002
Online Access:http://ndltd.ncl.edu.tw/handle/58710976870067336161
Description
Summary:碩士 === 國立中正大學 === 資訊工程研究所 === 90 === Programming in parallel is usually much more difficult than programming in serial. Hence, providing a high-level parallel programming language become very crucial. The high-level parallel programming language CCC is a simple extension of C. CCC has three salient features for providing a virtual computing environment to support data parallel programming: virtual processors, synchronous execution, and global name space. In principle, CCC can provide better productivity than multi-thread communication libraries such as Pthread , and can produce more efficient code than implicit parallel programming languages such HPF and HPC++. The three salient features of CCC relieve programmers from specifying most of machine-dependent details. The mapping from the virtual computing environment to the physical computing environment is handled by the compiler. This mapping consists of two parts: virtual processor emulation, and code generation. The emulation from virtual processors depends only on the number of processors in the physical computing environment, and is implemented as a source-to-source transformation. This implementation allows this emulation almost machine-independent. Most machine-dependent codes are in code generation. This organization makes our compiler highly retargetable.