A Task Tree Executor: New Runtime for Parallelized Legacy Software
Miroslav V. Popovic, Ilija V. Basicevic, Vladislav Vrtunski · 2009
Building a very large-scale distributed system, such as a power distribution system, was always regarded as a highly demanding undertaking in the area of engineering of computer based systems. Such systems nowadays are managing tens of millions of input variables using rather complex mathematical calculations. Traditionally, these calculations are implemented as sequential software, e.g. in FORTRAN. Under the current circumstances, when the processors are facing the well-known frequency wall, the research community started exploring new technology opportunities brought by the modern symmetric multiprocessors and multicores. One of the most challenging tasks in building modern very large-scale systems is the parallelization of legacy software. This paper contributes to the overall research effort in the area by proposing an original approach to parallelization of legacy sequential software. In the paper we introduce the concept of parallelization based on data slicing and construction of the corresponding task tree. Then we present the new runtime engine referred to as the task tree executor. Finally, we present the results of the performance evaluation based on a series of experiments made on the dual-core symmetric multiprocessor.