Summary: | 碩士 === 國立中正大學 === 資訊工程所 === 97 === The emergence of multicore processors reveals a new opportunity of increasing application performance. The fundamental idea of parallel technique is to divide sequential program into several regions and executes these regions on different processor cores in parallel. However, it is difficult to develop and debug a parallel application. Although several compiler technologies can automatically parallelize sequential application, undecidability of data dependence relationships at compile time limits the scalability of performance improvement. Therefore, it will exploit more parallelisms of applications if resolving data dependence relationships is deferred until runtime.
Speculative multithreading (SpMT) is a promising technique for exploiting application parallelism at runtime. SpMT system speculatively executes different pieces of a program on multiple threads even in the presence of ambitious data dependence relationships. The threads are speculatively executed and the thread unsafe data are buffered until they are safe to be committed. If a violation of data dependence relationship occurs, the system will recover the data to previous safe condition and violated threads are re-executed.
In this thesis, we develop a SpMT library – Hyperion. Programmer can easily use this library to leverage SpMT technique without hardware support. Preliminary experimental results show that the tested benchmarks by using Hyperion can obtain significant performance improvement.
|