Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Introduction to Algorithms
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
Active harmony: towards automated performance tuning
Proceedings of the 2002 ACM/IEEE conference on Supercomputing
Using generative design patterns to generate parallel code for a distributed memory environment
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the 17th IEEE international conference on Automated software engineering
A Survey of Architecture Description Languages
IWSSD '96 Proceedings of the 8th International Workshop on Software Specification and Design
The dawning of the autonomic computing era
IBM Systems Journal
The Journal of Supercomputing
Classics in software engineering
Software engineering for multicore systems: an experience report
Proceedings of the 1st international workshop on Multicore software engineering
A survey of autonomic computing—degrees, models, and applications
ACM Computing Surveys (CSUR)
Patterns for parallel programming
Patterns for parallel programming
Reducing search space of auto-tuners using parallel patterns
IWMSE '09 Proceedings of the 2009 ICSE Workshop on Multicore Software Engineering
A language-based tuning mechanism for task and pipeline parallelism
Euro-Par'10 Proceedings of the 16th international Euro-Par conference on Parallel processing: Part II
Parallelizing an index generator for desktop search
ISCA'10 Proceedings of the 2010 international conference on Computer Architecture
High-level support for pipeline parallelism on many-core architectures
Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
Proceedings of the 2013 ACM SIGSIM conference on Principles of advanced discrete simulation
Towards software performance engineering for multicore and manycore systems
ACM SIGMETRICS Performance Evaluation Review
Hi-index | 0.00 |
Current multicore computers differ in many hardware characteristics. Software developers thus hand-tune their parallel programs for a specific platform to achieve the best performance; this is tedious and leads to non-portable code. Although the software architecture also requires adaptation to achieve best performance, it is rarely modified because of the additional implementation effort. The Tunable Architectures approach proposed in this paper automates the architecture adaptation of parallel programs and uses an auto-tuner to find the best-performing software architecture for a particular machine. We introduce a new architecture description language based on parallel patterns and a framework to express architecture variants in a generic way. Several case studies demonstrate significant performance improvements due to architecture tuning and show the applicability of our approach to industrial applications. Software developers are exposed to less parallel programming complexity, thus making the approach attractive for experts as well as inexperienced parallel programmers.