scholarly journals Managing Scientific Software Complexity with Bocca and CCA

2008 ◽  
Vol 16 (4) ◽  
pp. 315-327 ◽  
Author(s):  
Benjamin A. Allan ◽  
Boyana Norris ◽  
Wael R. Elwasif ◽  
Robert C. Armstrong

In high-performance scientific software development, the emphasis is often on short time to first solution. Even when the development of new components mostly reuses existing components or libraries and only small amounts of new code must be created, dealing with the component glue code and software build processes to obtain complete applications is still tedious and error-prone. Component-based software meant to reduce complexity at the application level increases complexity to the extent that the user must learn and remember the interfaces and conventions of the component model itself. To address these needs, we introduce Bocca, the first tool to enable application developers to perform rapid component prototyping while maintaining robust software-engineering practices suitable to HPC environments. Bocca provides project management and a comprehensive build environment for creating and managing applications composed of Common Component Architecture components. Of critical importance for high-performance computing (HPC) applications, Bocca is designed to operate in a language-agnostic way, simultaneously handling components written in any of the languages commonly used in scientific applications: C, C++, Fortran, Python and Java. Bocca automates the tasks related to the component glue code, freeing the user to focus on the scientific aspects of the application. Bocca embraces the philosophy pioneered by Ruby on Rails for web applications: start with something that works, and evolve it to the user's purpose.

2008 ◽  
Vol 16 (4) ◽  
pp. 287-296 ◽  
Author(s):  
Joseph P. Kenny ◽  
Curtis L. Janssen ◽  
Mark S. Gordon ◽  
Masha Sosonkina ◽  
Theresa L. Windus

Cutting-edge scientific computing software is complex, increasingly involving the coupling of multiple packages to combine advanced algorithms or simulations at multiple physical scales. Component-based software engineering (CBSE) has been advanced as a technique for managing this complexity, and complex component applications have been created in the quantum chemistry domain, as well as several other simulation areas, using the component model advocated by the Common Component Architecture (CCA) Forum. While programming models do indeed enable sound software engineering practices, the selection of programming model is just one building block in a comprehensive approach to large-scale collaborative development which must also address interface and data standardization, and language and package interoperability. We provide an overview of the development approach utilized within the Quantum Chemistry Science Application Partnership, identifying design challenges, describing the techniques which we have adopted to address these challenges and highlighting the advantages which the CCA approach offers for collaborative development.


2021 ◽  
Vol 12 (1) ◽  
Author(s):  
Julia Koehler Leman ◽  
Sergey Lyskov ◽  
Steven M. Lewis ◽  
Jared Adolf-Bryfogle ◽  
Rebecca F. Alford ◽  
...  

AbstractEach year vast international resources are wasted on irreproducible research. The scientific community has been slow to adopt standard software engineering practices, despite the increases in high-dimensional data, complexities of workflows, and computational environments. Here we show how scientific software applications can be created in a reproducible manner when simple design goals for reproducibility are met. We describe the implementation of a test server framework and 40 scientific benchmarks, covering numerous applications in Rosetta bio-macromolecular modeling. High performance computing cluster integration allows these benchmarks to run continuously and automatically. Detailed protocol captures are useful for developers and users of Rosetta and other macromolecular modeling tools. The framework and design concepts presented here are valuable for developers and users of any type of scientific software and for the scientific community to create reproducible methods. Specific examples highlight the utility of this framework, and the comprehensive documentation illustrates the ease of adding new tests in a matter of hours.


Author(s):  
Julia Koehler Leman ◽  
Sergey Lyskov ◽  
Steven Lewis ◽  
Jared Adolf-Bryfogle ◽  
Rebecca F. Alford ◽  
...  

AbstractEach year vast international resources are wasted on irreproducible research. The scientific community has been slow to adopt standard software engineering practices, despite the increases in high-dimensional data, complexities of workflows, and computational environments. Here we show how scientific software applications can be created in a reproducible manner when simple design goals for reproducibility are met. We describe the implementation of a test server framework and 40 scientific benchmarks, covering numerous applications in Rosetta bio-macromolecular modeling. High performance computing cluster integration allows these benchmarks to run continuously and automatically. Detailed protocol captures are useful for developers and users of Rosetta and other macromolecular modeling tools. The framework and design concepts presented here are valuable for developers and users of any type of scientific software and for the scientific community to create reproducible methods. Specific examples highlight the utility of this framework and the comprehensive documentation illustrates the ease of adding new tests in a matter of hours.


2010 ◽  
Vol 1 (1) ◽  
pp. 20-40 ◽  
Author(s):  
San-Tsai Sun ◽  
Konstantin Beznosov

This article presents an approach for retrofitting existing Web applications with run-time protection against known, as well as unseen, SQL injection attacks (SQLIAs) without the involvement of application developers. The precision of the approach is also enhanced with a method for reducing the rate of false positives in the SQLIA detection logic, via runtime discovery of the developers’ intention for individual SQL statements made by Web applications. The proposed approach is implemented in the form of protection mechanisms for J2EE, ASP.NET, and ASP applications. Named SQLPrevent, these mechanisms intercept HTTP requests and SQL statements, mark and track parameter values originating from HTTP requests, and perform SQLIA detection and prevention on the intercepted SQL statements. The AMNESIA testbed is extended to contain false-positive testing traces, and is used to evaluate SQLPrevent. In our experiments, SQLPrevent produced no false positives or false negatives, and imposed a maximum 3.6% performance overhead with 30 milliseconds response time for the tested applications.


F1000Research ◽  
2019 ◽  
Vol 8 ◽  
pp. 1221 ◽  
Author(s):  
Phillip A. Richmond ◽  
Wyeth W. Wasserman

Researchers in the life sciences are increasingly faced with the task of obtaining compute resources and training to analyze large, high-throughput technology generated datasets. As demand for compute resources has grown, high performance computing (HPC) systems have been implemented by research organizations and international consortiums to support academic researchers. However, life science researchers lack effective time-of-need training resources for utilization of these systems. Current training options have drawbacks that inhibit the effective training of researchers without experience in computational analysis. We identified the need for flexible, centrally-organized, easily accessible, interactive, and compute resource specific training for academic HPC use.  In our delivery of a modular workshop series, we provided foundational training to a group of researchers in a coordinated manner, allowing them to further pursue additional training and analysis on compute resources available to them. Efficacy measures indicate that the material was effectively delivered to a broad audience in a short time period, including both virtual and on-site students. The practical approach to catalyze academic HPC use is amenable to diverse systems worldwide.


2018 ◽  
Vol 325 ◽  
pp. 347-358
Author(s):  
Mihai Grecu ◽  
Ilie Costaş ◽  
Artus Reaboi

Technological progress in ICT has created conditions for a new government paradigm - from a government that leads to a government providing services to society. Technology changes the nature of the connection between government and citizens: governance becomes more participatory and citizens' interests prevail. The impact of e-Government solutions is complex, on multiple levels, depending on the maturity of the models applied and the capacity of citizens and business to assimilate e-Government services. In a short time, electronic government services in Moldova have evolved from simple information services to integrated transactional services. On the one hand, this is due to high performance telecommunications infrastructure (broadband, 2G, 3G and 4G technology) and, on the other hand, to citizens' expectations that boosted recently and determined the government to accelerate the implementation of new e-services, increasingly complex and a better quality. The paper addresses the issue of e-Government services in terms of the value that it gives to the government and to citizens' lives and analyzes opportunities to develop e-Government services in the new technological and social realities.


Sign in / Sign up

Export Citation Format

Share Document