A. Dubey, K. Antypas, A. Calder, B. Fryxell, D. Lamb, P. Ricker, L. Reid, Katherine M. Riley, R. Rosner, A. Siegel, F. Timmes, N. Vladimirova, K. Weide
{"title":"The Software development process of FLASH, a multiphysics simulation code","authors":"A. Dubey, K. Antypas, A. Calder, B. Fryxell, D. Lamb, P. Ricker, L. Reid, Katherine M. Riley, R. Rosner, A. Siegel, F. Timmes, N. Vladimirova, K. Weide","doi":"10.1109/SECSE.2013.6615093","DOIUrl":"https://doi.org/10.1109/SECSE.2013.6615093","url":null,"abstract":"The FLASH code has evolved into a modular and extensible scientific simulation software system over the decade of its existence. During this time it has been cumulatively used by over a thousand researchers in several scientific communities (i.e. astrophysics, cosmology, high-energy density physics, turbulence, fluid-structure interactions) to obtain results for research. The code started its life as an amalgamation of two already existing software packages and sections of other codes developed independently by various participating members of the team for other purposes. In the evolution process it has undergone four major revisions, three of which involved a significant architectural advancement. A corresponding evolution of the software process and policies for maintenance occurred simultaneously. The code is currently in its 4.x release with a substantial user community. Recently there has been an upsurge in the contributions by external users; some provide significant new capability. This paper outlines the software development and evolution processes that have contributed to the success of the FLASH code.","PeriodicalId":133144,"journal":{"name":"2013 5th International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133409747","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":"Techniques for testing scientific programs without an oracle","authors":"Upulee Kanewala, J. Bieman","doi":"10.1109/SECSE.2013.6615099","DOIUrl":"https://doi.org/10.1109/SECSE.2013.6615099","url":null,"abstract":"The existence of an oracle is often assumed in software testing. But in many situations, especially for scientific programs, oracles do not exist or they are too hard to implement. This paper examines three techniques that are used to test programs without oracles: (1) Metamorphic testing, (2) Run-time Assertions and (3) Developing test oracles using machine learning. We examine these methods in terms of their (1) fault finding ability, (2) automation, and (3) required domain knowledge. Several case studies apply these three techniques to effectively test scientific programs that do not have oracles. Certain techniques have reported a better fault finding ability than the others when testing specific programs. Finally, there is potential to increase the level of automation of these techniques, thereby reducing the required level of domain knowledge. Techniques that can potentially be automated include (1) detection of likely metamorphic relations, (2) static analyses to eliminate spurious invariants and (3) structural analyses to develop machine learning generated oracles.","PeriodicalId":133144,"journal":{"name":"2013 5th International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE)","volume":"321 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132332625","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":"Scientific software process improvement decisions: A proposed research strategy","authors":"Erika S. Mesh, J. Hawker","doi":"10.1109/SECSE.2013.6615097","DOIUrl":"https://doi.org/10.1109/SECSE.2013.6615097","url":null,"abstract":"Scientific research is hard enough; software shouldn't make it harder. While traditional software engineering development and management practices have been shown to be effective in scientific software projects, adoption of these practices has been limited. Rather than presume to create a prescriptive scientific software process improvement manual or leave scientists to determine their own plans with only minimal references as support, we posit that a hybrid approach is required to adequately support and guide scientific SPI decisions. This paper presents a grounded theory approach for determining the driving factors of scientific software process planning activities in order to generate supporting data for a proposed Scientific Software Process Improvement Framework (SciSPIF).","PeriodicalId":133144,"journal":{"name":"2013 5th International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE)","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127527461","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":"Software design for decoupled parallel meshing of CAD models","authors":"Serban Georgescu, P. Chow","doi":"10.1109/SECSE.2013.6615096","DOIUrl":"https://doi.org/10.1109/SECSE.2013.6615096","url":null,"abstract":"The creation of Finite Element (FE) meshes is one of the most time-consuming steps in FE analysis. While the exponential increase in computational power, following Moore's law, has gradually reduced the time spent in the FE solver, this has not generally been the case for FE mesh creation software. There are two main reason why this has been the case: most FE meshers are still serial and human intervention is generally required. In this paper we present the design of a system that tackles both these issues. More specifically, this paper proposes a system that, in combination with an unmodified off-the-shelf serial meshing program and an off-the-shelf CAD kernel, results in a fast and scalable tool capable of meshing complex CAD models, such as the ones used in industry, with reduced user intervention. To achieve scalability, our system uses two levels of parallelism: assembly level parallelism - across the multiple parts found in an assembly-type CAD model, and part level parallelism - obtained by partitioning individual CAD solids in multiple sections at the CAD level. We show preliminary results for the parallel meshing of a complex laptop model via which we highlight both some of the achieved benefits and the main challenges that need to be addressed in order to obtain good scalability.","PeriodicalId":133144,"journal":{"name":"2013 5th International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129869630","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}