Pub Date : 2020-10-01DOI: 10.1109/ISSREW51248.2020.00047
Dheeraj Chahal, Ravi Ojha, M. Ramesh, Rekha Singhal
Serverless computing platform is emerging as a solution for event-driven artificial intelligence applications. Function-as-a-Service (FaaS) using serverless computing paradigm provides high performance and low cost solutions for deploying such applications on cloud while minimizing the operational logic. Using FaaS for efficient deployment of complex applications, such as natural language processing (NLP) and image processing, containing large deep learning models will be an advantage. However, constrained resources and stateless nature of FaaS offers numerous challenges while deploying such applications. In this work, we discuss the methodological suggestions and their implementation for deploying pre-trained large size machine learning and deep learning models on FaaS. We also evaluate the performance and deployment cost of an enterprise application, consisting of suite of deep vision preprocessing algorithms and models, on VM and FaaS platform. Our evaluation shows that migration from monolithic to FaaS platform significantly improves the performance of the application at a reduced cost.
{"title":"Migrating Large Deep Learning Models to Serverless Architecture","authors":"Dheeraj Chahal, Ravi Ojha, M. Ramesh, Rekha Singhal","doi":"10.1109/ISSREW51248.2020.00047","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00047","url":null,"abstract":"Serverless computing platform is emerging as a solution for event-driven artificial intelligence applications. Function-as-a-Service (FaaS) using serverless computing paradigm provides high performance and low cost solutions for deploying such applications on cloud while minimizing the operational logic. Using FaaS for efficient deployment of complex applications, such as natural language processing (NLP) and image processing, containing large deep learning models will be an advantage. However, constrained resources and stateless nature of FaaS offers numerous challenges while deploying such applications. In this work, we discuss the methodological suggestions and their implementation for deploying pre-trained large size machine learning and deep learning models on FaaS. We also evaluate the performance and deployment cost of an enterprise application, consisting of suite of deep vision preprocessing algorithms and models, on VM and FaaS platform. Our evaluation shows that migration from monolithic to FaaS platform significantly improves the performance of the application at a reduced cost.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129848356","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1109/issrew51248.2020.00096
R. Natella, A. Andrzejak
A significant amount of effort in research related to software aging and rejuvenation (SAR) has been dedicated to designing, implementing, and evaluating tools for the detection of software aging in complex software systems. There are two fundamental reasons for the importance of these tools. First, these tools are required for implementing condition-based software rejuvenation in production environments. They can measure the presence of aging symptoms, such as high resource consumption or degraded performance. Moreover, jointly with aging forecasting models, they can trigger rejuvenation actions when aging symptoms point out that software aging failures are imminent. The second reason which makes these tools important is that they can be used for software aging analysis in laboratory environments, for example during stress tests before releasing a product. This can in turn pinpoint the software aging bugs (such as memory leak bugs), and provide useful information to developers to fix them.In this chapter, we review multiple prominent tools that have been adopted, both by researchers and by software developers, to detect software aging in real, complex software systems. Our selection of aging detection tools is in part based on the SAR literature, including international conferences on dependability (DSN, ISSRE, SRDS), conferences and journals on software engineering, and the WoSAR workshop, the main international event devoted to SAR research. Moreover, we complemented this selection by popular commercial tools, and by tools from technical sources by developers, such as blogs. For each tool, we analyze its internals, use cases, the aging symptoms that it addresses, and relevant applications in real case studies.We included tools for native software, such as systems software written in C and C++, which monitor resource consumption at the OS level and probe software internals, such as heap allocations. Representative tools of this kind include the SNMP-based Proactive Fault Management (PFM) tool for monitoring and detection over SNMP, Valgrind and Memcheck for user-level analysis, and SystemTap and Kprobes for kernel-level analysis. Moreover, we included tools for Java software, such as web and enterprise applications, which monitor performance and resource consumption at the JVM level. Considered tools of this kind include LeakBot, Plumbr, Eclipse Memory Analyzer, and JVMMon.
{"title":"SAR Handbook Chapter: Experimental Tools for Software Aging Analysis","authors":"R. Natella, A. Andrzejak","doi":"10.1109/issrew51248.2020.00096","DOIUrl":"https://doi.org/10.1109/issrew51248.2020.00096","url":null,"abstract":"A significant amount of effort in research related to software aging and rejuvenation (SAR) has been dedicated to designing, implementing, and evaluating tools for the detection of software aging in complex software systems. There are two fundamental reasons for the importance of these tools. First, these tools are required for implementing condition-based software rejuvenation in production environments. They can measure the presence of aging symptoms, such as high resource consumption or degraded performance. Moreover, jointly with aging forecasting models, they can trigger rejuvenation actions when aging symptoms point out that software aging failures are imminent. The second reason which makes these tools important is that they can be used for software aging analysis in laboratory environments, for example during stress tests before releasing a product. This can in turn pinpoint the software aging bugs (such as memory leak bugs), and provide useful information to developers to fix them.In this chapter, we review multiple prominent tools that have been adopted, both by researchers and by software developers, to detect software aging in real, complex software systems. Our selection of aging detection tools is in part based on the SAR literature, including international conferences on dependability (DSN, ISSRE, SRDS), conferences and journals on software engineering, and the WoSAR workshop, the main international event devoted to SAR research. Moreover, we complemented this selection by popular commercial tools, and by tools from technical sources by developers, such as blogs. For each tool, we analyze its internals, use cases, the aging symptoms that it addresses, and relevant applications in real case studies.We included tools for native software, such as systems software written in C and C++, which monitor resource consumption at the OS level and probe software internals, such as heap allocations. Representative tools of this kind include the SNMP-based Proactive Fault Management (PFM) tool for monitoring and detection over SNMP, Valgrind and Memcheck for user-level analysis, and SystemTap and Kprobes for kernel-level analysis. Moreover, we included tools for Java software, such as web and enterprise applications, which monitor performance and resource consumption at the JVM level. Considered tools of this kind include LeakBot, Plumbr, Eclipse Memory Analyzer, and JVMMon.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129052950","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1109/ISSREW51248.2020.00086
A. Gujarati, S. Gopalakrishnan, K. Pattabiraman
We revisit N-version programming in the context of machine learning (ML). Generating N versions of an ML component does not require additional programming effort, but only extra computations. This opens up the possibility of executing hundreds of diverse replicas, which, if carefully deployed, can improve their overall reliability by a significant margin. We use mathematical modeling to evaluate these benefits.
{"title":"New Wine in an Old Bottle: N-Version Programming for Machine Learning Components","authors":"A. Gujarati, S. Gopalakrishnan, K. Pattabiraman","doi":"10.1109/ISSREW51248.2020.00086","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00086","url":null,"abstract":"We revisit N-version programming in the context of machine learning (ML). Generating N versions of an ML component does not require additional programming effort, but only extra computations. This opens up the possibility of executing hundreds of diverse replicas, which, if carefully deployed, can improve their overall reliability by a significant margin. We use mathematical modeling to evaluate these benefits.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128484448","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1109/ISSREW51248.2020.00066
Madhuparna Bhowmik, N. Madhumitha, B. Mohan
With the increase in the number of open-source and commercial code in the market, copyright and license infringement cases are on the rise. The lack of availability of source code makes identification a difficult task as existing techniques heavily rely on the source code. We propose two similarity measurement methods using the instruction log and the call-trace of each executable using Intel Pin tool. A Software Plagiarism Detector(SPD) was developed using the Intel Pin instrumentation tool and we have tested this approach on different small executable single-threaded and multi-threaded files. The results portray the validity of this method. We also talk about the possibility to expand this method for bigger software.
{"title":"Similarity Calculation of Executable Using Intel Pin Instrumentation Framework","authors":"Madhuparna Bhowmik, N. Madhumitha, B. Mohan","doi":"10.1109/ISSREW51248.2020.00066","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00066","url":null,"abstract":"With the increase in the number of open-source and commercial code in the market, copyright and license infringement cases are on the rise. The lack of availability of source code makes identification a difficult task as existing techniques heavily rely on the source code. We propose two similarity measurement methods using the instruction log and the call-trace of each executable using Intel Pin tool. A Software Plagiarism Detector(SPD) was developed using the Intel Pin instrumentation tool and we have tested this approach on different small executable single-threaded and multi-threaded files. The results portray the validity of this method. We also talk about the possibility to expand this method for bigger software.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131267155","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1109/ISSREW51248.2020.00092
V. Koutras, A. Platis
The chapter focuses on the classification of rejuvenation strategies based on granularity. Granularity concerns the level at which aging is detected and the level at which rejuvenation is applied to counteract aging. Besides granularity definitions, the chapter classifies most of the existing rejuvenation literature with respect to the granularity level.
{"title":"Chapter 3: Software Rejuvenation: Key Concepts and Granularity","authors":"V. Koutras, A. Platis","doi":"10.1109/ISSREW51248.2020.00092","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00092","url":null,"abstract":"The chapter focuses on the classification of rejuvenation strategies based on granularity. Granularity concerns the level at which aging is detected and the level at which rejuvenation is applied to counteract aging. Besides granularity definitions, the chapter classifies most of the existing rejuvenation literature with respect to the granularity level.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"365 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122852035","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1109/ISSREW51248.2020.00048
Gilhee Lee, Taegeun Moon, Min-Sung Jang, Hyoungshick Kim
Advanced Packaging Tool (APT) is a package manager used in Debian Linux distributions. By default, APT is configured to use the official central repository, but it also allows users to modify and add alternative repositories easily. Since using geographically closer servers can boost the download speed, many users adopt mirror sites in their country instead of the default repository. However, it is often challenging for users to select an appropriate mirror site. First, users have to change the repository URL manually with insufficient information about mirror sites. Second, if the mirror site in use is not working, APT cannot find an alternative mirror site in an automated manner. To address these problems and improve the user experience of APT, we propose the enhanced Advanced Packaging Tool (eAPT) which is built on the top of APT with a mirror site resolver to find the optimal mirror site based on the user’s geographical location in terms of the package installation time and stability even when some mirror sites are not responsible. Our experimental results demonstrate that eAPT is about between 8 and 10 times faster than APT for installing large sized packages (e.g., openjdk-11-jdk or android-sdk) in India and Australia.
{"title":"eAPT: enhancing APT with a mirror site resolver","authors":"Gilhee Lee, Taegeun Moon, Min-Sung Jang, Hyoungshick Kim","doi":"10.1109/ISSREW51248.2020.00048","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00048","url":null,"abstract":"Advanced Packaging Tool (APT) is a package manager used in Debian Linux distributions. By default, APT is configured to use the official central repository, but it also allows users to modify and add alternative repositories easily. Since using geographically closer servers can boost the download speed, many users adopt mirror sites in their country instead of the default repository. However, it is often challenging for users to select an appropriate mirror site. First, users have to change the repository URL manually with insufficient information about mirror sites. Second, if the mirror site in use is not working, APT cannot find an alternative mirror site in an automated manner. To address these problems and improve the user experience of APT, we propose the enhanced Advanced Packaging Tool (eAPT) which is built on the top of APT with a mirror site resolver to find the optimal mirror site based on the user’s geographical location in terms of the package installation time and stability even when some mirror sites are not responsible. Our experimental results demonstrate that eAPT is about between 8 and 10 times faster than APT for installing large sized packages (e.g., openjdk-11-jdk or android-sdk) in India and Australia.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129457033","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1109/ISSREW51248.2020.00091
Alberto Avritzer, Domenico Cotroneo, Yennun Huang, K. Trivedi
This talk summarizes the genesis of software aging and rejuvenation as presented in the handbook of software aging and rejuvenation. It also lays out possible future directions to reflect the content of the concluding chapter of the handbook.
{"title":"Chapter 1: Software Aging and Rejuvenation: A Genesis - Extended Abstract","authors":"Alberto Avritzer, Domenico Cotroneo, Yennun Huang, K. Trivedi","doi":"10.1109/ISSREW51248.2020.00091","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00091","url":null,"abstract":"This talk summarizes the genesis of software aging and rejuvenation as presented in the handbook of software aging and rejuvenation. It also lays out possible future directions to reflect the content of the concluding chapter of the handbook.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126372147","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1109/ISSREW51248.2020.00064
Jonathan C. Rowanhill, A. Hocking, William H. Hawkins
To address the problem of assuring complex modern systems, we propose assurance driven development where the inferences of assurance are themselves directly tested. We refer to this as test-driven-assurance-based development, or TDABD. TDABD focuses development on continuously testable argument reasoning with incremental and improving delivery of improving assurance targets.
{"title":"TDABD: Test-Driven-Assurance-Based Development","authors":"Jonathan C. Rowanhill, A. Hocking, William H. Hawkins","doi":"10.1109/ISSREW51248.2020.00064","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00064","url":null,"abstract":"To address the problem of assuring complex modern systems, we propose assurance driven development where the inferences of assurance are themselves directly tested. We refer to this as test-driven-assurance-based development, or TDABD. TDABD focuses development on continuously testable argument reasoning with incremental and improving delivery of improving assurance targets.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128533297","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Compiling a software package multiple times may result in different artifacts. This problem is called unreproducible builds, which affect the credibility of the software. Researchers mainly focus on how to automatically locate the causes for unre-producible builds. However, automatic fixing is rarely studied. In this paper, we propose ConstBin, an automated tool that helps to generate consistent artifacts. It captures unreproducible commands in a build process and automatically replace them with their fixing operations based on an extensible rules set. As far as we know, ConstBin is the first tool that fixes inconsistencies during build processes. We have evaluated this tool on 348 open source packages whose original builds are unreproducible. The results of the evaluation show that 83.91% of these builds have successfully generated consistent artifacts with the application of ConstBin.
{"title":"ConstBin: A Tool for Automatic Fixing of Unreproducible Builds","authors":"Hongjun He, Jicheng Cao, Lesheng Du, Hao Li, Shi-Chao Wang, Shengyu Cheng","doi":"10.1109/ISSREW51248.2020.00044","DOIUrl":"https://doi.org/10.1109/ISSREW51248.2020.00044","url":null,"abstract":"Compiling a software package multiple times may result in different artifacts. This problem is called unreproducible builds, which affect the credibility of the software. Researchers mainly focus on how to automatically locate the causes for unre-producible builds. However, automatic fixing is rarely studied. In this paper, we propose ConstBin, an automated tool that helps to generate consistent artifacts. It captures unreproducible commands in a build process and automatically replace them with their fixing operations based on an extensible rules set. As far as we know, ConstBin is the first tool that fixes inconsistencies during build processes. We have evaluated this tool on 348 open source packages whose original builds are unreproducible. The results of the evaluation show that 83.91% of these builds have successfully generated consistent artifacts with the application of ConstBin.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129313952","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}