Show simple item record

dc.contributor.authorPinto, Pedro
dc.contributor.authorBispo, João
dc.contributor.authorCardoso, João M. P.
dc.contributor.authorBarbosa, Jorge Gomes
dc.contributor.authorGadioli, Davide
dc.contributor.authorPalermo, Gianluca
dc.contributor.authorMartinovič, Jan
dc.contributor.authorGolasowski, Martin
dc.contributor.authorSlaninová, Kateřina
dc.contributor.authorCmar, Radim
dc.contributor.authorSilvano, Cristina
dc.date.accessioned2022-06-07T06:55:07Z
dc.date.available2022-06-07T06:55:07Z
dc.date.issued2022
dc.identifier.citationIEEE Transactions on Software Engineering. 2022, vol. 48, issue 3, p. 732-754.cs
dc.identifier.issn0098-5589
dc.identifier.issn1939-3520
dc.identifier.urihttp://hdl.handle.net/10084/146252
dc.description.abstractDeveloping and optimizing software applications for high performance and energy efficiency is a very challenging task, even when considering a single target machine. For instance, optimizing for multicore-based computing systems requires in-depth knowledge about programming languages, application programming interfaces (APIs), compilers, performance tuning tools, and computer architecture and organization. Many of the tasks of performance engineering methodologies require manual efforts and the use of different tools not always part of an integrated toolchain. This paper presents Pegasus, a performance engineering approach supported by a framework that consists of a source-to-source compiler, controlled and guided by strategies programmed in a Domain-Specific Language, and an autotuner. Pegasus is a holistic and versatile approach spanning various decision layers composing the software stack, and exploiting the system capabilities and workloads effectively through the use of runtime autotuning. The Pegasus approach helps developers by automating tasks regarding the efficient implementation of software applications in multicore computing systems. These tasks focus on application analysis, profiling, code transformations, and the integration of runtime autotuning. Pegasus allows developers to program their strategies or to automatically apply existing strategies to software applications in order to ensure the compliance of non-functional requirements, such as performance and energy efficiency. We show how to apply Pegasus and demonstrate its applicability and effectiveness in a complex case study, which includes tasks from a smart navigation system.cs
dc.language.isoencs
dc.publisherIEEEcs
dc.relation.ispartofseriesIEEE Transactions on Software Engineeringcs
dc.relation.urihttps://doi.org/10.1109/TSE.2020.3001257cs
dc.rightsCopyright © 2022, IEEEcs
dc.subjectperformance engineeringcs
dc.subjectmethodologycs
dc.subjecthigh-performance computingcs
dc.subjectdomain-specific languagescs
dc.subjectsource-to-source compilerscs
dc.titlePegasus: performance engineering for software applications targeting HPC systemscs
dc.typearticlecs
dc.identifier.doi10.1109/TSE.2020.3001257
dc.type.statusPeer-reviewedcs
dc.description.sourceWeb of Sciencecs
dc.description.volume48cs
dc.description.issue3cs
dc.description.lastpage754cs
dc.description.firstpage732cs
dc.identifier.wos000769989900001


Files in this item

FilesSizeFormatView

There are no files associated with this item.

This item appears in the following Collection(s)

Show simple item record