Performance is Also a Matter of Where You Live
Francesco Quaglia · 2017
Nowadays, a plethora of techniques and methods are available to optimize the runtime behavior of complex applications, ranging from modeling/prediction tools to the employment of recognized patterns and/or knowledge-bases on the expected performance under specific workloads. However, in common scenarios, the ultimate applications' behavior may depend on features that are scarcely predictable or difficult to be taken into account when designing the applications and their own runtime optimizers. Among them, we mention the actual structure of the underlying hardware and/or virtualized platforms, as well as specific runtime dynamics such as thread correlation on data and synchronization---not much the average behavior, rather punctual effects. We believe that the environment where applications live, like operating systems and user-space runtime libraries, play a central role in coping with these features. We similarly believe that such environments must be re-staged so as to be actually effective in pursuing the performance optimization goal. In this talk, we discuss specific guidelines to re-stage the environments, based on a real experience, and we point as well to challenges that are still untackled and deserve attention by the research community.