{"title":"An HPC Perspective on Generative Programming","authors":"D. Kempf, P. Bastian","doi":"10.1109/SE4Science.2019.00008","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00008","url":null,"abstract":"Numerical software for the solution of partial differential equations is an important field in high performance computing. We study software quality criteria for such software using the Dune software framework as an example. Given these software criteria, different development models are discussed. We furthermore look at recent hardware developments and how they affect software sustainability and programmability. On this basis, we make a case for generative programming techniques in the field of high performance computing and go into detail about recent additions of such into the Dune framework.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"84 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133209554","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}
{"title":"Susereum: Towards a Reward Structure for Sustainable Scientific Research Software","authors":"O. Badreddin, A. Hamou-Lhadj, Swapnil Chauhan","doi":"10.1109/SE4Science.2019.00015","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00015","url":null,"abstract":"Research software has opened up new pathways of discovery in many and diverse disciplines. This research software is developed under unique budgetary and schedule constraints. Its development is driven by knowledge discovery goals often without documented requirements. As a result, the software code quality is impacted which often hinders its sustainability beyond the immediate research goals. More importantly, the prevalent reward structures favor contributions in terms of research articles and systematically undervalues research codes contributions. As a result, researchers and funding agencies do not allocate appropriate efforts or resources to the development, sustenance, and dissemination of research codebases. This paper presents Susereum, a Blockchain based platform that aims at achieving two goals. First, restructuring prevalent incentives by awarding permanent immutable credit to research code authors similar to the credit awarded to the authors of scientific articles. Second, distributing sovereignty by empowering peers through a consensus process to define code sustainability and impact metrics.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128477878","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}
{"title":"Position Paper: Towards Usability as a First-Class Quality of HPC Scientific Software","authors":"Reed Milewicz, Paige Rodeghero","doi":"10.1109/SE4Science.2019.00012","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00012","url":null,"abstract":"The modern HPC scientific software ecosystem is instrumental to the practice of science. However, software can only fulfill that role if it is readily usable. In this position paper, we discuss usability in the context of scientific software development, how usability engineering can be incorporated into current practice, and how software engineering research can help satisfy that objective.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"107 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117154451","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}
{"title":"Releasing Scientific Software in GitHub: A Case Study on SWMM2PEST","authors":"Xuanyi Lin, Michelle Simon, Nan Niu","doi":"10.1109/SE4Science.2019.00014","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00014","url":null,"abstract":"Release engineering involves code development, integration, testing, and software delivery. It has been widely applied to deliver high-quality software to users. While release engineering is a widespread practice in the software industry, there have been very few studies on the release engineering pipeline of scientific software. To shorten this gap, we present a case study in this paper to show a GitHub-driven release workflow on SWMM2PEST, a software system automating parameter calibration for the U.S. EPA's Storm Water Management Model (SWMM). Moreover, we analyze software version updates and requirements changes to develop strategies for improving the ongoing releases. The feasibility of improvement strategies is demonstrated by our consecutively released versions of SWMM2PEST. The results offered insights into the continuous release of scientific software.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126529310","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}
Matthew Danish, Miltiadis Allamanis, Marc Brockschmidt, A. Rice, Dominic A. Orchard
{"title":"Learning Units-of-Measure from Scientific Code","authors":"Matthew Danish, Miltiadis Allamanis, Marc Brockschmidt, A. Rice, Dominic A. Orchard","doi":"10.1109/SE4Science.2019.00013","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00013","url":null,"abstract":"CamFort is our multi-purpose tool for lightweight analysis and verification of scientific Fortran code. One core feature provides units-of-measure verification (dimensional analysis) of programs, where users partially annotate programs with units-of-measure from which our tool checks consistency and infers any missing specifications. However, many users find it onerous to provide units-of-measure information for existing code, even in part. We have noted however that there are often many common patterns and clues about the intended units-of-measure contained within variable names, comments, and surrounding code context. In this work-in-progress paper, we describe how we are adapting our approach, leveraging machine learning techniques to reconstruct units-of-measure information automatically thus saving programmer effort and increasing the likelihood of adoption.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130254263","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}
{"title":"Debunking the Myth That Upfront Requirements Are Infeasible for Scientific Computing Software","authors":"Spencer Smith, M. Srinivasan, S. Shankar","doi":"10.1109/SE4Science.2019.00011","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00011","url":null,"abstract":"Many in the Scientific Computing Software community believe that upfront requirements are impossible, or at least infeasible. This paper shows requirements are feasible with the following: i) an appropriate perspective ('faking' the final documentation as if requirements were correct and complete from the start, and gathering requirements as if for a family of programs); ii) the aid of the right principles (abstraction, separation of concerns, anticipation of change, and generality); iii) employing SCS specific templates (for Software Requirements and Module Interface Specification); iv) using a design process that enables change (information hiding); and, v) the aid of modern tools (version control, issue tracking, checking, generation and automation tools). Not only are upfront requirements feasible, they provide significant benefits, including facilitating communication, early identification of errors, better design decisions and enabling replicability. The topics listed above are explained, justified and illustrated via an example of software developed by a small team of software and mechanical engineers for modelling the solidification of a metal alloy.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133644615","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}
T. Vogel, Stephan Druskat, M. Scheidgen, C. Ambrosch-Draxl, L. Grunske
{"title":"Challenges for Verifying and Validating Scientific Software in Computational Materials Science","authors":"T. Vogel, Stephan Druskat, M. Scheidgen, C. Ambrosch-Draxl, L. Grunske","doi":"10.1109/SE4Science.2019.00010","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00010","url":null,"abstract":"Many fields of science rely on software systems to answer different research questions. For valid results researchers need to trust the results scientific software produces, and consequently quality assurance is of utmost importance. In this paper we are investigating the impact of quality assurance in the domain of computational materials science (CMS). Based on our experience in this domain we formulate challenges for validation and verification of scientific software and their results. Furthermore, we describe directions for future research that can potentially help dealing with these challenges.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115722690","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}
{"title":"SE4Science 2019 Committees","authors":"","doi":"10.1109/se4science.2019.00006","DOIUrl":"https://doi.org/10.1109/se4science.2019.00006","url":null,"abstract":"","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129037376","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}
{"title":"Creating Stable Productive CSE Software Development and Integration Processes in Unstable Environments on the Path to Exascale","authors":"R. Bartlett, Joseph R. Frye","doi":"10.1109/SE4Science.2019.00007","DOIUrl":"https://doi.org/10.1109/SE4Science.2019.00007","url":null,"abstract":"The Sandia National Laboratories (SNL) Advanced Technology Development and Mitigation (ATDM) project focuses on R&D for exascale computational science and engineering (CSE) software. Exascale application (APP) codes are co-developed and integrated with a large number of 2^nd generation Trilinos packages built on top of Kokkos for achieving portable performance. These efforts are challenged by needing to develop and test on many unstable and constantly changing pre-exascale platforms using immature compilers and other system software. Challenges, experiences, and lessons learned are presented for creating stable development and integration workflows for these types of difficult projects. In particular, we describe automated workflows, testing, and integration processes as well as new tools and multi-team collaboration processes for effectively keeping a large number of automated builds and tests working on these unstable platforms.","PeriodicalId":135738,"journal":{"name":"2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130821274","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}