{"title":"检测应用程序之间的干扰,利用可延展的应用程序克隆改进调度","authors":"Alberto Cascajo, D. E. Singh, Jesús Carretero","doi":"10.1177/10943420231220898","DOIUrl":null,"url":null,"abstract":"This paper presents a novel feature for improving the scheduling process based on the performance prediction and the detection of CPU and I/O interference between applications. This feature consists of using malleable synthetic benchmarks – called clones – that reproduce the behaviour of applications executed in a cluster. These proxies can be used with two objectives: to build large and representative datasets that can be used to train the machine learning algorithms for modelling the platform workload, and to evaluate in advance if two executing applications can potentially produce contention hazards related to the shared use of the system resources like CPU, cache memory or I/O bandwidth. The proposed framework generates application clones based on generic-purpose performance information collected from monitoring. Unlike other works based on the use of micro-architectures or metrics obtained from simulators, in the approach presented in this work, the application clones generate similar behaviour without extracting data from the binaries, avoiding the necessity of managing code or data from the applications. One advantage of this approach is that they can be shared securely because they have not been generated using any piece of the original code. In addition, the proposed clones are malleable, so they also able to model the application behaviour under a different number of processes. In this work, we show how the use of clones contributes to improving the application scheduling by reducing the number of evaluations that is necessary to perform, and to detect performance degradation (interference) without the necessity of involving the execution of the actual applications. We evaluate the proposed clone generation approach on two sets of benchmarks (CPU and I/O oriented) and several applications. We also compare the performance obtained during the execution of the proxies and the applications to show their similarity. Finally, we include an evaluation of the interference detection using this novel approach.","PeriodicalId":506320,"journal":{"name":"The International Journal of High Performance Computing Applications","volume":"4 5","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2023-12-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Detecting interference between applications and improving the scheduling using malleable application clones\",\"authors\":\"Alberto Cascajo, D. E. Singh, Jesús Carretero\",\"doi\":\"10.1177/10943420231220898\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"This paper presents a novel feature for improving the scheduling process based on the performance prediction and the detection of CPU and I/O interference between applications. This feature consists of using malleable synthetic benchmarks – called clones – that reproduce the behaviour of applications executed in a cluster. These proxies can be used with two objectives: to build large and representative datasets that can be used to train the machine learning algorithms for modelling the platform workload, and to evaluate in advance if two executing applications can potentially produce contention hazards related to the shared use of the system resources like CPU, cache memory or I/O bandwidth. The proposed framework generates application clones based on generic-purpose performance information collected from monitoring. Unlike other works based on the use of micro-architectures or metrics obtained from simulators, in the approach presented in this work, the application clones generate similar behaviour without extracting data from the binaries, avoiding the necessity of managing code or data from the applications. One advantage of this approach is that they can be shared securely because they have not been generated using any piece of the original code. In addition, the proposed clones are malleable, so they also able to model the application behaviour under a different number of processes. In this work, we show how the use of clones contributes to improving the application scheduling by reducing the number of evaluations that is necessary to perform, and to detect performance degradation (interference) without the necessity of involving the execution of the actual applications. We evaluate the proposed clone generation approach on two sets of benchmarks (CPU and I/O oriented) and several applications. We also compare the performance obtained during the execution of the proxies and the applications to show their similarity. Finally, we include an evaluation of the interference detection using this novel approach.\",\"PeriodicalId\":506320,\"journal\":{\"name\":\"The International Journal of High Performance Computing Applications\",\"volume\":\"4 5\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2023-12-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"The International Journal of High Performance Computing Applications\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1177/10943420231220898\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"The International Journal of High Performance Computing Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1177/10943420231220898","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
摘要
本文介绍了一种基于性能预测以及应用程序之间 CPU 和 I/O 干扰检测的改进调度过程的新功能。该功能包括使用可延展的合成基准(称为克隆),以再现在集群中执行的应用程序的行为。使用这些代理有两个目的:一是建立大型代表性数据集,用于训练机器学习算法,以模拟平台工作负载;二是提前评估两个正在执行的应用程序是否有可能在共享使用系统资源(如 CPU、高速缓冲存储器或 I/O 带宽)时产生争用危险。拟议框架根据从监控中收集到的通用性能信息生成应用程序克隆。与其他基于使用微体系结构或从模拟器中获得的指标的工作不同,在本工作所介绍的方法中,应用程序克隆无需从二进制文件中提取数据就能生成类似的行为,从而避免了管理应用程序代码或数据的必要性。这种方法的一个优势是,由于克隆程序不是使用任何一段原始代码生成的,因此可以安全地共享。此外,所提出的克隆具有可塑性,因此也能在不同进程数量下模拟应用程序行为。在这项工作中,我们展示了克隆的使用如何通过减少必须执行的评估次数来改进应用程序调度,以及如何在无需执行实际应用程序的情况下检测性能下降(干扰)。我们在两组基准(面向 CPU 和 I/O)和多个应用程序上评估了建议的克隆生成方法。我们还比较了代理和应用程序在执行过程中获得的性能,以显示它们的相似性。最后,我们还利用这种新方法对干扰检测进行了评估。
Detecting interference between applications and improving the scheduling using malleable application clones
This paper presents a novel feature for improving the scheduling process based on the performance prediction and the detection of CPU and I/O interference between applications. This feature consists of using malleable synthetic benchmarks – called clones – that reproduce the behaviour of applications executed in a cluster. These proxies can be used with two objectives: to build large and representative datasets that can be used to train the machine learning algorithms for modelling the platform workload, and to evaluate in advance if two executing applications can potentially produce contention hazards related to the shared use of the system resources like CPU, cache memory or I/O bandwidth. The proposed framework generates application clones based on generic-purpose performance information collected from monitoring. Unlike other works based on the use of micro-architectures or metrics obtained from simulators, in the approach presented in this work, the application clones generate similar behaviour without extracting data from the binaries, avoiding the necessity of managing code or data from the applications. One advantage of this approach is that they can be shared securely because they have not been generated using any piece of the original code. In addition, the proposed clones are malleable, so they also able to model the application behaviour under a different number of processes. In this work, we show how the use of clones contributes to improving the application scheduling by reducing the number of evaluations that is necessary to perform, and to detect performance degradation (interference) without the necessity of involving the execution of the actual applications. We evaluate the proposed clone generation approach on two sets of benchmarks (CPU and I/O oriented) and several applications. We also compare the performance obtained during the execution of the proxies and the applications to show their similarity. Finally, we include an evaluation of the interference detection using this novel approach.