Summary: | 碩士 === 國立成功大學 === 電機工程學系 === 104 === The rise of multicore system forces programmers to consider dependences among instructions in the sequential codes, because a sequential code can use multicore resources appropriately only when it can be seperated as the instructions which could be assigned to the cores. Programmers can only observe obvious dependences between tasks statically, however, the sequential codes which hid lots of dependences can not use the system resources efficiently. Compiled-time dependences detection can fail to be efficient and unable to account for dynamic changes in run-time. In order to make time-efficient paarallel execution of sequential codes in wide range of hardware and software, we propose a parallel tasks generator, which can generate the task synchronization graphs applicated in parallel computing by using extraction amd analization of communication and synchronization in run-time. Accroding to the task synchronization graphs, we can schedule tasks dynamically on the parallel computing models, and further promote the enntire system efficacy. Experimental results show that a parallel tasks generator used 4 to 8 threads could be executed with 2x faster than its sequential version. The generated task synchronization graphs could be executed with 1.37x faster than their sequential version on multicore system, and with 1.3x faster by only extra 33% communicaation penalty on computer clusters.
|