Title :
Compiling Esterel for Multi-core Execution
Author :
Yuan, Simon ; Yoong, Li Hsien ; Roop, Partha S.
Author_Institution :
Electr. & Comput. Eng., Univ. of Auckland, Auckland, New Zealand
Abstract :
Esterel is a synchronous language suited for describing reactive embedded systems. It combines fine-grained parallelism with precise timing control for the execution of threads. Due to this, Esterel programs have typically been compiled into sequential code in software implementations, as tight synchronization between a large number of threads cannot be efficiently managed with an operating system (OS). This has enabled concurrent Esterel programs to be executed directly on single-core processors. Recently, however, multi-core processors have been increasingly used to achieve better performance in embedded applications. The conventional approach of generating sequential code from Esterel programs is unable to take advantage of multi-core processors. We overcome this limitation by compiling Esterel into a limited number of thread partitions (up to the number of available cores) to avoid the large overheads of implementing each Esterel thread separately within a conventional multithreading scheme. These partitions are then distributed onto separate cores using a static load balancing heuristic. The Esterel threads within a partition may then be dynamically scheduled with or without an OS. To evaluate the viability of this approach, we present experimental results comparing the execution of a set of benchmarks using one to four cores on the Intel Core 2 Quad with Linux, and one to two cores on the Xilinx Micro blaze without any OS. We have performed extensive benchmarking over large Esterel programs to illustrate that achieving throughput with parallel execution of Esterel is benchmark dependent.
Keywords :
Linux; concurrency control; embedded systems; multi-threading; program compilers; resource allocation; Esterel program compiling; Intel Core 2 Quad; Linux; Xilinx Micro blaze; benchmarking; concurrent Esterel program; fine-grained parallelism; multicore execution; multicore processor; multithreading scheme; operating system; parallel execution; reactive embedded system; sequential code generation; single-core processor; software implementation; static load balancing heuristic; synchronous language; thread execution; Benchmark testing; Concurrent computing; Message systems; Multicore processing; Program processors; Signal resolution; Synchronization; Concurrent programming; Distributed programming; Languages and compilers; Parallelism and concurrency;
Conference_Titel :
Digital System Design (DSD), 2011 14th Euromicro Conference on
Conference_Location :
Oulu
Print_ISBN :
978-1-4577-1048-3
DOI :
10.1109/DSD.2011.97