TY - GEN
T1 - Compiler construction for lockstep execution of multithreaded processors
AU - Nguyen, Huong Giang
AU - Hwang, Seok Joong
AU - Kim, Seon Wook
PY - 2007
Y1 - 2007
N2 - Embedded applications intrinsically have high degree of parallelism, but it is difficult to exploit the parallelism due to resource constraint of embedded platforms. In order to overcome the problem, we introduced a promising processor solution to support parallel thread execution with pretty good performance while consuming small hardware resources. We call this processor as Multithread Lockstep Execution Processor (MLEP). Since each iteration of parallel loops performs the same sequence of instructions at most time while manipulating different data, we only need to partially duplicate a pipeline resource to support the multithreading. This architecture makes it possible that parallel threads execute synchronously in a lockstep manner. How-ever, because of providing a totally different kind of thread execution, it sometime makes programmers confused when parallelizing code for the processor. In this paper, we introduce a compiler infrastructure for our architecture in detail with discussion of how to support OpenMP APIs and how to integrate the Omni OpenMP compiler with our backend code generator. Also, for verification of our compiler system, we show that our code generation scheme delivers the same performance as handed codes.
AB - Embedded applications intrinsically have high degree of parallelism, but it is difficult to exploit the parallelism due to resource constraint of embedded platforms. In order to overcome the problem, we introduced a promising processor solution to support parallel thread execution with pretty good performance while consuming small hardware resources. We call this processor as Multithread Lockstep Execution Processor (MLEP). Since each iteration of parallel loops performs the same sequence of instructions at most time while manipulating different data, we only need to partially duplicate a pipeline resource to support the multithreading. This architecture makes it possible that parallel threads execute synchronously in a lockstep manner. How-ever, because of providing a totally different kind of thread execution, it sometime makes programmers confused when parallelizing code for the processor. In this paper, we introduce a compiler infrastructure for our architecture in detail with discussion of how to support OpenMP APIs and how to integrate the Omni OpenMP compiler with our backend code generator. Also, for verification of our compiler system, we show that our code generation scheme delivers the same performance as handed codes.
UR - http://www.scopus.com/inward/record.url?scp=38049095600&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=38049095600&partnerID=8YFLogxK
U2 - 10.1109/CIT.2007.4385188
DO - 10.1109/CIT.2007.4385188
M3 - Conference contribution
AN - SCOPUS:38049095600
SN - 0769529836
SN - 9780769529837
T3 - CIT 2007: 7th IEEE International Conference on Computer and Information Technology
SP - 829
EP - 834
BT - CIT 2007
T2 - CIT 2007: 7th IEEE International Conference on Computer and Information Technology
Y2 - 16 October 2007 through 19 October 2007
ER -