Ph.D. student Adriano Vogel had his article entitled “Providing high-level self-adaptive abstractions for stream parallelism on multicores” published in the Journal of Software: Practice and Experience (SPE) from Wiley publisher. The SPE scope is focused on the discussion of experiences and practical aspects of software for computational systems and applications. The work was advised by Dr. Luiz Gustavo Fernandes and co-advised by Dr. Dalvan Griebler.
The proposed solution seeks to provide abstractions for computer systems and applications, either to improve the quality of services or to reduce costs without human intervention. The term abstractions can be understood as providing facilities to users or programmers of applications and computer systems, self-adaptivity can be seen as automatically adapting to run applications for a given context or purpose. Self-adaptivity was the way used in the paper to provide abstractions with more dynamism. In this case, the abstraction offered is aimed at parallel executions (multiple tasks running simultaneously) in applications that process a continuous stream of data in real-time, such as audio, video, and stock market systems.
The main contributions of the paper are: 1) New self-adaptive strategies that abstract and autonomously manage parallelism in applications; 2) Transformation rules to automatically generate optimized code using a compiler; 3) Experiments to evaluate the performance of the proposed solution using applications with different workloads.
The following is the abstract of the article: Stream processing applications are common computing workloads that demand parallelism to increase their performance. As in the past, parallel programming remains a difficult task for application programmers. The complexity increases when application programmers must set nonintuitive parallelism parameters, that is, the degree of parallelism. The main problem is that state-of-the-art libraries use a static degree of parallelism and are not sufficiently abstracted for developing stream processing applications. In this article, we propose a self-adaptive regulation of the degree of parallelism to provide higher-level abstractions. Flexibility is provided to programmers with two new self-adaptive strategies, one is for performance experts, and the other abstracts the need to set a performance goal. We evaluated our solution using compiler transformation rules to generate parallel code with the SPar domain-specific language. The experimental results with real-world applications highlighted higher abstraction levels without significant performance degradation in comparison to static executions. The strategy for performance experts achieved slightly higher performance than the one that works without user-defined performance goals.
Adriano Vogel et al.
More information about the SPE can be found on the official website.
By: Gabriella Andrade