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.
|