{"title":"多核工业实时系统内存争用建模经验","authors":"Thijmen de Gooijer, K. Eric Harper","doi":"10.1145/2602576.2602584","DOIUrl":null,"url":null,"abstract":"Wide availability of multicore CPUs makes concurrency a critical design factor for the software architecture and execution models of industrial controllers, especially with messages passing between tasks running on different cores. To improve performance, we refactored a standardized shared memory IPC mechanism implemented with traditional kernel locks to use lock-free algorithms. Prototyping the changes made it possible to determine the speed-up when the locks were removed, but we could neither easily confirm whether the IPC performance would suffice for the communication patterns in our real-time system, nor could we tell how well the implementation would scale to CPUs with more cores than our test machine. In this paper we report on our experience with using a queuing petri net performance model to predict the impact of memory contention in a multi-core CPU on architecture level performance. We instantiated our model with benchmark data and prototype measurements. The results from our model simulation provide valuable feedback for design decisions and point at potential bottlenecks. Comparison of the prototype's performance with our model simulation results increases credibility of our work. This paper supports other practitioners who consider applying performance modeling to quantify the quality of their architectures.","PeriodicalId":110790,"journal":{"name":"International ACM SIGSOFT Conference on Quality of Software Architectures","volume":"47 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Experiences with modeling memory contention for multi-core industrial real-time systems\",\"authors\":\"Thijmen de Gooijer, K. Eric Harper\",\"doi\":\"10.1145/2602576.2602584\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Wide availability of multicore CPUs makes concurrency a critical design factor for the software architecture and execution models of industrial controllers, especially with messages passing between tasks running on different cores. To improve performance, we refactored a standardized shared memory IPC mechanism implemented with traditional kernel locks to use lock-free algorithms. Prototyping the changes made it possible to determine the speed-up when the locks were removed, but we could neither easily confirm whether the IPC performance would suffice for the communication patterns in our real-time system, nor could we tell how well the implementation would scale to CPUs with more cores than our test machine. In this paper we report on our experience with using a queuing petri net performance model to predict the impact of memory contention in a multi-core CPU on architecture level performance. We instantiated our model with benchmark data and prototype measurements. The results from our model simulation provide valuable feedback for design decisions and point at potential bottlenecks. Comparison of the prototype's performance with our model simulation results increases credibility of our work. This paper supports other practitioners who consider applying performance modeling to quantify the quality of their architectures.\",\"PeriodicalId\":110790,\"journal\":{\"name\":\"International ACM SIGSOFT Conference on Quality of Software Architectures\",\"volume\":\"47 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2014-06-27\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International ACM SIGSOFT Conference on Quality of Software Architectures\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2602576.2602584\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International ACM SIGSOFT Conference on Quality of Software Architectures","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2602576.2602584","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Experiences with modeling memory contention for multi-core industrial real-time systems
Wide availability of multicore CPUs makes concurrency a critical design factor for the software architecture and execution models of industrial controllers, especially with messages passing between tasks running on different cores. To improve performance, we refactored a standardized shared memory IPC mechanism implemented with traditional kernel locks to use lock-free algorithms. Prototyping the changes made it possible to determine the speed-up when the locks were removed, but we could neither easily confirm whether the IPC performance would suffice for the communication patterns in our real-time system, nor could we tell how well the implementation would scale to CPUs with more cores than our test machine. In this paper we report on our experience with using a queuing petri net performance model to predict the impact of memory contention in a multi-core CPU on architecture level performance. We instantiated our model with benchmark data and prototype measurements. The results from our model simulation provide valuable feedback for design decisions and point at potential bottlenecks. Comparison of the prototype's performance with our model simulation results increases credibility of our work. This paper supports other practitioners who consider applying performance modeling to quantify the quality of their architectures.