当前位置: X-MOL 学术Automat. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Automatic performance prediction of multithreaded programs: a simulation approach
Automated Software Engineering ( IF 2.0 ) Pub Date : 2017-03-28 , DOI: 10.1007/s10515-017-0214-5
Alexander Tarvo , Steven P. Reiss

The performance of multithreaded programs is often difficult to understand and predict. Multiple threads engage in synchronization operations and use hardware simultaneously. This results in a complex non-linear dependency between the configuration of a program and its performance. To better understand this dependency a performance prediction model is used. Such a model predicts the performance of a system for different configurations. Configurations reflect variations in the workload, different program options such as the number of threads, and characteristics of the hardware. Performance models are complex and require a solid understanding of the program’s behavior. As a result, building models of large applications manually is extremely time-consuming and error-prone. In this paper we present an approach for building performance models of multithreaded programs automatically. We employ hierarchical discrete-event models. Different tiers of the model simulate different factors that affect performance of the program, while interaction between the model tiers simulates mutual influence of these factors on performance. Our framework uses a combination of static and dynamic analyses of a single representative run of a system to collect information required for building the performance model. This includes information about the structure of the program, the semantics of interaction between the program’s threads, and resource demands of individual program’s components. In our experiments we demonstrate that models accurately predict the performance of various multithreaded programs, including complex industrial applications.

中文翻译:

多线程程序的自动性能预测:一种模拟方法

多线程程序的性能通常难以理解和预测。多个线程参与同步操作并同时使用硬件。这导致程序配置与其性能之间存在复杂的非线性相关性。为了更好地理解这种依赖性,使用了性能预测模型。这样的模型可以预测系统在不同配置下的性能。配置反映了工作负载、不同程序选项(例如线程数)和硬件特性的变化。性能模型很复杂,需要对程序的行为有深入的了解。因此,手动构建大型应用程序模型极其耗时且容易出错。在本文中,我们提出了一种自动构建多线程程序性能模型的方法。我们采用分层离散事件模型。模型的不同层级模拟了影响程序性能的不同因素,而模型层级之间的交互则模拟了这些因素对性能的相互影响。我们的框架结合使用系统的单个代表性运行的静态和动态分析来收集构建性能模型所需的信息。这包括有关程序结构的信息、程序线程之间交互的语义以及单个程序组件的资源需求。在我们的实验中,我们证明模型可以准确预测各种多线程程序的性能,
更新日期:2017-03-28
down
wechat
bug