Sunteți pe pagina 1din 4

Guest Editors’ Introduction

Software Engineering for Computational


Science and Engineering

Jeffrey C. Carver | University of Alabama


Tom Epperly | Lawrence Livermore National Laboratory

S
oftware engineering for computational sci- often differ from those found in more traditional
ence and engineering (CSE) is a topic of software development environments, and are wary to
increasing relevance for many scientific and use existing SE methods. Moreover, lessons learned by
engineering domains. Historically, this topic computational developers generally aren’t publishable
has fallen into a void among many related domains. as results, and therefore they often aren’t shared.
Traditionally, software engineering (SE) research has The ongoing SE-CSE workshop series provides
focused more on the business/IT domain than the a venue to fill that void. The goal of this work-
scientific or engineering domain. SE researchers have shop series is to bring together SE researchers and
often made the implicit assumption that any solu- computational developers/researchers to discuss
tions they develop should likewise be applicable to problems, share experiences, and work towards so-
the development of CSE software. Conversely, com- lutions. In previous years, some discussion themes
putational developers realize that their constraints that emerged at the workshop included:

6 Computing in Science & Engineering 1521-9615/14/$31.00 © 2014 IEEE Copublished by the IEEE CS and the AIP May/June 2014

CISE-16-03-GEI.indd 6 29/05/14 11:04 AM


The adoption of SE practices for CSE is complicated by differing
rewards systems.

■■ the unique characteristics of computational soft- SE with the highest return on investment, such as
ware that affect software development choices; source control, software carpentry tools, and light-
■■ the appropriate context dimensions to describe weight processes. Similarly, we must advocate a cul-
computational software; tural shift towards the importance of reproducible
■■ the major software quality goals for computa- results, a big component in other scientific fields
tional software; that’s often neglected in CSE research. A require-
■■ crossing the communication chasm between ment for scientists and engineers to publish their
traditional software engineering and computa- software in a form that other researchers can utilize
tional software; to reproduce the results would introduce cultural
■■ effectively involving scientists/engineers in pressure to produce higher-quality code.
software development and training;
■■ measuring the impact of SE on scientific/engi- Agile Software Development Philosophy
neering productivity; A number of SE and CSE professionals sense that
■■ SE tools and methods needed by the computa- the Agile software development philosophy is a
tional developers’ community; and good fit for CSE projects. Adherents to an Agile
■■ how to effectively test computational software.1–4 software development approach use an iterative
process to design and develop the software. This
The SE-CSE workshop described in this special process mimics the process of scientific discovery,
issue occurred during the 2013 International Confer- where the research target may change as knowledge
ence on Software Engineering.5 The workshop had is gained through early results from the software.
two phases—it began with presentations by the au- The Agile approach focuses on producing software
thors of accepted papers. Extended versions of some with complete functionality and minimal, but ad-
of those papers are included in this special issue. The equate, documentation (as opposed to focusing on
second phase included breakout discussions based extensive documentation). As a result, developers
upon topics raised during the morning presentations. produce software in small chunks and “document”
Here, we provide a brief overview of those discus- requirements as test cases. There are still challenges
sions. Full notes of the discussion can be found on with developing test cases when there’s no oracle for
the workshop website (http://secse13.cs.ua.edu). correct answers—particularly for integrated model-
ing. However, the Agile approach is still seen as a
Overview of Workshop Discussion fairly lightweight, flexible process that can adapt to
The workshop discussions focused on six key areas: community-driven priorities.
adoption, Agile programming, the culture clash,
debugging, education, and verification and valida- Culture Clash
tion. These themes reflected the content of the ac- One approach to promoting the adoption of SE prac-
cepted papers’ presentations and covered the main tices for CSE development is to use multidisciplinary
challenges and opportunities for SE-CSE. In the teams of software engineers and scientists. Often, this
following, we briefly detail findings in each area. approach encounters difficulties due to the clash of
cultures between these groups of people. Scientists
Adoption of SE Practices by CSE Developers generally are indifferent to SE, because they believe
The adoption of SE practices for CSE is compli- that they lack the time and resources to implement
cated by differing rewards systems. Scientists are such practices. Their priority is on producing scien-
generally rewarded for having numerous influential tific publications. For software engineers, software
scientific publications rather than developing high- quality is important for providing confidence in the
quality software. In such a case, software is a means scientific findings produced by the software. They
to an ends rather than an end in itself. The key to view the use of SE practices as a long-term invest-
adoption is to focus on a “back to basics” approach ment that will ultimately lead to increased scientific
to SE rather than promoting cutting-edge SE tech- productivity. In many cases, the funding is controlled
niques. Thus, we should focus on the aspects of by the scientists, with the software engineers lacking

www.computer.org/cise  7

CISE-16-03-GEI.indd 7 30/05/14 1:33 PM


Guest Editors’ Introduction

Debugging large systems is like finding the needle in the haystack.

the standing or resources required to get everyone to CSE applications aren’t able to produce bit-for-bit re-
adopt a consistent set of SE practices. producible results, due to inherent nondeterminism
in parallel algorithms. Testing might require access to
Debugging a supercomputer; but supercomputing centers don’t
Debugging CSE software on supercomputers is a like to provide cycles for testing.
particularly difficult challenge. Many bugs only
manifest themselves at scales that even surpass the In This Issue
capabilities of today’s most advanced debuggers. Now that we’ve outlined some of the issues in the
Nondeterministic bugs that are exceedingly rare at field, let’s look at the articles for this special issue.
small scales become quite common at larger scales. Each article has a unique take on the topic of SE-CSE
Due to their random nature, these bugs are noto- and provides a novel approach or solution. There are
riously difficult to isolate and debug. For super- six articles, with each being an extension of a paper
computers involving millions of computing cores, presented at the workshop. For each paper, the au-
hardware faults will become increasingly common thors were invited to revise to include a significant
and may be indistinguishable from software faults. amount of new content beyond the workshop paper.
Debugging large systems is like finding the needle In the first article, “Streamlining Develop-
in the haystack. Statistical analysis can be used to ment of a Multimillion-Line Chemistry Code”
automatically identify normal and abnormal behav- Robin Betz and Ross Walker describe the use of a
ior, with developers focusing their attention on the standard software engineering practice, continuous
abnormal cases. integration, to support the development of the mo-
lecular dynamics code, AMBER. The team used a
Education customized version of Cruise Control to support
Everyone acknowledges there’s an education gap in continuous integration. To implement this prac-
the SE-CSE community. CSE professionals typi- tice, the team followed five key practices:
cally don’t take any SE courses in their academic
programs and may not have taken a single program- 1. Maintain a single source repository.
ming course from a computer science department. 2. Automate the build and tests.
They often pick up whatever they know from their 3. Simplify deployment and executable distribution.
thesis advisor and their research group. At this 4. Every push should result in a build on the
point, it’s also difficult to know what to teach, be- ­integration machine.
cause the SE-CSE community hasn’t yet completely 5. Development should be communicative and
discovered which SE approaches are most appropri- collaborative.
ate for the development of CSE software and how
those approaches should be tailored. The Software The authors’ work describes the implementation
Carpentry project (http://software-carpentry.org), details, barriers faced, and methods used to address
founded by Greg Wilson, seems like a good ap- those barriers.
proach to instill some basic principles for CSE Next, Stan Ahalt and his colleagues describe
developers. the application of open source mechanisms and
software engineering to research about water sci-
Verification and Validation ence in their article, “Water Science Software In-
The level of verification and validation (V&V) var- stitute: Agile and Open Source Scientific Software
ies a great deal in the CSE community. Convincing Development.” After providing an overview of the
CSE team members to perform regular testing can computational challenges faced by the water re-
be challenging, because it requires time and effort. search community and a brief introduction to the
Some teams have high standards of testing and code Water Sciences Institute, the article describes the
coverage, while others have practically none. For cut- Open Community Engagement Model. The piece
ting-edge research, it’s often difficult to test systems, provides an example of how this model works in
because there’s no prior work or experimental data to practice. The evaluation of this exercise showed
compare against. Even when data is available, many positive results.

8  May/June 2014

CISE-16-03-GEI.indd 8 29/05/14 11:04 AM


In the third article, “Leveraging Expertise to awareness of the work being done in the field, while
Support Scientific Software Process Improvement also bridging the gap between traditional software
Decisions,” Erika Mesh and her colleagues describe engineering and computational software.
the development of the Scientific Software Process
Improvement Framework (SciSPIF). This frame-
work is designed to provide a flexible approach for References
scientific developers to make decisions that are rel- 1. J.C. Carver, “First International Workshop on Soft-
evant to their own projects while still having ac- ware Engineering for Computational Science & Engi-
cess to a library of standard software engineering neering,” Computing in Science & Eng., vol. 11, no. 2,
practices. The article details the use of a grounded 2009, pp. 7–11.
theory approach to analyze the literature and to 2. J.C. Carver, “Report: The Second International
conduct a series of case studies to provide informa- Workshop on Software Engineering for CSE,” Com-
tion for initially populating the framework. puting in Science & Eng., vol. 11, no. 6, pp. 14-19,
Fourth, in “Building CLiiME via Test-Driven November/December, 2009.
Development: A Case Study,” Aziz Nanthaamorn- 3. J.C. Carver, “Third Int’l Workshop Software Engi-
phong and his colleagues describe a case study of neering for Computational Science and Engineer-
using test-driven development (TDD) to support ing,” Procedia Computer Science, vol. 1, no. 1, 2010,
the development of a computational science soft- pp. 1485–1486.
ware package. Using TDD enabled the development 4. J.C. Carver, “Software Engineering for Computa-
team to create a software package that’s extensible tional Science and Engineering,” Computing in Sci-
by other developers. The article provides a number ence & Eng., vol. 14, no. 2, 2012, pp. 8–11.
of lessons learned, based on the authors’ experience 5. J.C. Carver et al., “5th International Workshop on
with applying TDD for the first time. The piece also Software Engineering for Computational Science
discusses some of the benefits that Agile methods and Engineering,” Proc. 2013 Int’ l Conf. Software
in general—and TDD specifically—can provide to Eng., 2013, pp. 1547–1548.
computational science projects.
Alan Humphrey and his colleagues address the
problem of latent defects in large, high-performance Jeffrey C. Carver is an associate professor in the Depart-
computing scientific software in the fifth article, “Sys- ment of Computer Science at the University of Alabama.
tematic Debugging Methods for Large-Scale HPC His research interests include empirical software engi-
Computational Frameworks.” The authors introduce neering, software quality, software engineering for com-
a new debugging approach based on coalesced stack putational science and engineering, software architecture,
trace graphs that supports a systematic debugging human factors in software engineering, and software pro-
process. The article then illustrates the new approach cess improvement. Carver has a PhD in computer science
with a case study in which the authors identified from the University of Maryland. He’s a senior member
and fixed a real defect in the Unitah Computational of the IEEE Computer Society and the ACM. Contact
Framework. him at carver@cs.ua.edu.
Finally, in “A Case Study on a Quality Assurance
Process for a Scientific Framework,” Hanna Remmel Tom Epperly is the Computer Science Group Leader
and her colleagues describe the results of a case study in the Center for Applied Scientific Computing at
to evaluate the feasibility and developer acceptance of Lawrence Livermore National Laboratory. He holds a
two quality assurance practices. First, the case study Ph.D. in Chemical Engineering from the University of
showed that developers found variability modeling—a Wisconsin-Madison, and his research interests involve
technique to assist developers in systematically creating integration technology and frameworks for compu-
system tests—useful and easy to learn, and they report- tational science & engineering. He can be reached at
ed on their intent to use variability modeling in their ­epperly2@llnl.gov.
work. Second, the case study showed that the tech-
nique of desk checking also was useful and easy to learn.

W e hope you find these articles beneficial in


understanding the complexity of issues for
SE-CSE. We also hope this special issue creates an
Selected articles and columns from IEEE Computer
Society publications are also available for free at
http://ComputingNow.computer.org.

www.computer.org/cise  9

CISE-16-03-GEI.indd 9 29/05/14 11:04 AM

S-ar putea să vă placă și