Current multicore computers differ significantly in hardware characteristics. Software developers therefore hand-tune parallel programsfor a given platform to achieve best performance. This is tedious and leads to non-portable code.Although the architecture of parallel applications also requires adaptationto achieve best performance, it is rarely modified becauseof the additional effort. The Tunable Architectures approach proposed in this talk automates thearchitecture adaptation of parallel programs and uses anauto-tuner to find the best-performing architectural choicefor a given machine. We introduce a new architecturedescription language based on parallel patterns and a framework for expressing architecture variants in a generic way. Several case studies demonstrate significant performance improvements due to automatic architecture tuning and show the applicability of our approach to industrial applications.