Multi-core processors are very common in the form of dual-core and quad-core processors. To take advantage of multiple cores, parallel programs are written. Existing legacy applications are sequential and runs on mult...
详细信息
ISBN:
(纸本)9781509019878
Multi-core processors are very common in the form of dual-core and quad-core processors. To take advantage of multiple cores, parallel programs are written. Existing legacy applications are sequential and runs on multiple cores utilizing only one core. Such applications should be either rewritten or parallelized to make efficient use of multiple cores. Manual parallelization requires huge efforts in terms of time and money and hence there is a need for automaticparallelization. automaticcode Parallelizer using OpenMP automates the insertion of compiler directives to facilitate parallel processing on multi-core shared memory machines. The proposed tool converts an input sequential C source code into a multi-threaded parallel C source code. The tool supports multi-level parallelization with the generation of nested OpenMP constructs. The proposed scheme statically decomposes a sequential C program into coarse grain tasks, analyze dependency among tasks and generates OpenMP parallel code. The focus is on coarse-grained task parallelism to improve performance beyond the limits of loop parallelism. Due to the broad support of OpenMP standard, the generated OpenMP codes can run on a wide range of SMP machines and may result in a performance improvement.
Massive parallel computing (MPC) originally appeared in the arena of multi-core processors and graphic processing units with parallel computing architecture. Nevertheless, most embedded software is still written in C,...
详细信息
ISBN:
(纸本)9780769544182
Massive parallel computing (MPC) originally appeared in the arena of multi-core processors and graphic processing units with parallel computing architecture. Nevertheless, most embedded software is still written in C, therefore C codeparallelization is being subject of many ongoing R&D efforts. The most prominent approaches to parallelization of C code include Intel Cilk Plus, OpenCL, vfAnalyst, etc. The objective of this paper is to contribute to the automaticparallelization of existing sequential C code, without any source code modifications/annotations, by proposing two appropriate algorithms for parallelization, Block algorithm, and Operation based algorithm.
In compiler theory, data analysis is used to exploit Instruction Level Parallelism (ILP). Three dependencies are used in modern compilers and hardware schemes efficiently and are fundamental to any code compilation. R...
详细信息
ISBN:
(纸本)9798400706394
In compiler theory, data analysis is used to exploit Instruction Level Parallelism (ILP). Three dependencies are used in modern compilers and hardware schemes efficiently and are fundamental to any code compilation. Read-after-read (RAR) has been left out, as it cannot cause a data hazard. This article introduces a novel method to use the additional dependence information contained in any code to enhance automaticparallelization. The method builds groups of arbitrary sequential instruction chains during static code analysis and introduces potential-transfers between these groups. This gives new opportunities when optimizing code to a parallel-processing hardware. The segmentation enables more information concerning the potential parallelization of the code and enhances optimization opportunities to be gained during static code analysis. The novel principle is introduced using a very simple example and then the segmentation is applied to task- and data-parallelism examples. The automaticparallelization to a multicore-platform is demonstrated using the new segmentation method. The ability to forecast the optimal distribution of the segments for a platform with two key parameters and resulting codes are compared to measured speedups.
暂无评论