Benjamin Allan - Academia.edu (original) (raw)

Papers by Benjamin Allan

Research paper thumbnail of Plans for ASCEND IV: Our next generation equational-based modeling environment

We discuss features of the current version of our ASCEND modeling environment and then many of th... more We discuss features of the current version of our ASCEND modeling environment and then many of the modeling insights we have obtained from using it. From this experience and what others are learning when using their environments, we suggest ways we intend to increase the scope and size problem we can solve with a future version of ASCEND.

Research paper thumbnail of Common Component Architecture Bibliography

Research paper thumbnail of Anonymous Class in Declarative Mathematical Modeling

Object-oriented, equation-based process modeling systems [2, 4, 5, 9] can be very helpful in prod... more Object-oriented, equation-based process modeling systems [2, 4, 5, 9] can be very helpful in producing small novel mathematical models, i.e. involving a few tens to few hundreds of equations. These systems have so far not been shown to improve the speed of creating large, novel models involving several tens of thousands of equations, the kind that must be based on the application and modification of libraries. Compile times and memory usage become bottlenecks when a researcher or process designer is frequently recompiling a large model or when a synthesis program is constructing many hundreds to thousands of alternative process models. We report automatic compilation algorithms which reduce times from minutes to seconds by taking into account the rich hierarchical semantics of user-written object definitions. We report algorithms that reduce overall computer simulation memory requirements by more than half and also make compilation of equations all the way to loop-free, binary form ...

Research paper thumbnail of Automating Multilanguage Development for the High-Performance Software Lifecycle

The component-based software engineering approach based on the Scientific Interface Definition La... more The component-based software engineering approach based on the Scientific Interface Definition Language(SIDL), Babel, and the Common Component Architecture have been employed successfully in high-performance multilanguage software projects dominated by the development of new code. Large scientific projects that rely on existing object-oriented (non-component) code, however, have additional automation requirements, including: (1) fully automated component wrapper generation from non-component code; (2) single expression of interfaces so that maintainers and users have no development lag or code mismatch between changes to the wrapped code and changes to the wrappers; and (3) extensible source code markup for directing the wrapping process of ambiguous cases. These issues are not currently addressed by the highperformance software development tool community. We describe a combination of extensions to the SIDL syntax, the Babel code generation processes, and the bocca tool to address these issues, providing dramatic reductions in component software development time.

Research paper thumbnail of On the role of self-similarity in component-based software

This is a speculative work meant to stimulate discussion about the role of subsumability in self-... more This is a speculative work meant to stimulate discussion about the role of subsumability in self-similar software structures for computational simulations. As in natural phenomena, self-similar features in framework structures allow the size and complexity of code to grow without bound and still maintain apparent coherence. As in crystal growth, the coherence may be maintained by the application of a repeated pattern, or patterns may, as in fluid mechanical turbulence, be scaled by size and nested. Examples of these kinds of patterns applied to component systems in particular will be given. Conclusions and questions for discussion will be drawn regarding the applicability of these ideas to component architectures, complexity, and scientific computing.

Research paper thumbnail of Managing complexity in modern high end scientific computing through component-based software engineering

The ever-increasing complexity of modern high-performance scientific simulation software presents... more The ever-increasing complexity of modern high-performance scientific simulation software presents a tremendous challenge to the development and use of this type of software, with significant impacts on productivity. Component-based software engineering is a means of addressing complexity that has been developed primarily in response to the needs of business and related software environments, but which has not yet had a significant impact on high-end computing. In this paper, we present the Common Component Architecture (CCA) as a com-ponent model designed to meet the special needs of high-performance scientific computing, focusing on how the CCA addresses issues of complexity. Unique among component architectures is the technique presented here by which a CCA component can act as a container to encapsulate and control other components without itself having to implement the functionality of a framework.

Research paper thumbnail of A More Reusable Modeling System

In this thesis we examine problems in the reuse of mathematical models. Reuse of a model by other... more In this thesis we examine problems in the reuse of mathematical models. Reuse of a model by others requires that the model is viewable from many different perspectives, that the model is capable of incorporating new information during its evolution, that the model is understood by a range of modelers in different times and places with different special skills, that the model is mechanically computable in many different ways, that the model's assumptions and key data are not lost, and that the model can support conflict resolution when it is reused as part of a larger model.

Research paper thumbnail of Computational Frameworks for Advanced Combustion Simulations

Fluid Mechanics and Its Applications, 2011

Computational frameworks can significantly assist in the construction, extension and maintenance ... more Computational frameworks can significantly assist in the construction, extension and maintenance of simulation codes. As the nature of problems addressed by computational means has grown in complexity, such frameworks have evolved to incorporate a commensurate degree of sophistication, both in terms of the numerical algorithms that they accommodate as well as the software architectural discipline they impose on their users. In this chapter, we discuss a component framework, the Common Component Architecture (CCA), for developing scientific software, and describe how it has been used to develop a toolkit for simulating reacting flows. In particular, we will discuss why a component architecture was chosen and the philosophy behind the particular software design. Using statistics drawn from the toolkit, we will analyze the code structure and investigate to what degree the aims of the software design were actually realized. We will explore how CCA was employed to design a high-order simulation code on block-structured adaptive meshes, as well as a simulation capacity for adaptive stiffness reduction in detailed chemical models. We conclude the chapter with two reacting flow studies performed using the above-mentioned computational capabilities.

Research paper thumbnail of Managing Scientific Software Complexity with Bocca and CCA

Scientific Programming, 2008

In high-performance scientific software development, the emphasis is often on short time to first... more 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.

Research paper thumbnail of Bocca

Proceedings of the 2007 symposium on Component and framework technology in high-performance and scientific computing - CompFrame '07, 2007

In high-performance scientific software development, the emphasis is often on short time to first... more 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 component glue code to obtain complete applications is still tedious and error-prone. Component-based software meant to reduce complexity at the application level increases complexity with the attendant glue code. To address these needs, we introduce Bocca, the first tool to enable application developers to perform rapid component prototyping while maintaining robust softwareengineering 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 HPC applications, Bocca is designed to operate in a language-agnostic way, simultaneously handling components written in any of the common HPC workstation languages: C, C++, Fortran, Fortran77, 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 Rails for web applications: Start with something that works and evolve it to the user's purpose.

Research paper thumbnail of SIENA Customer Problem Statement and Requirements

This document describes the problem domain and functional requirements of the SIENA framework. Th... more This document describes the problem domain and functional requirements of the SIENA framework. The software requirements and system architecture of SIENA are specified in separate documents (called SIENA Software Requirement Specification and SIENA Software ...

Research paper thumbnail of Parallel computing in enterprise modeling

This report presents the results of our efforts to applly high-performance computing to entitybas... more This report presents the results of our efforts to applly high-performance computing to entitybased simulations with a multi-use plugin for parallel computing. We use the term 'Entity-based simulation' to describe a class of simulaton which includes both discrete event simulation and agent based simulation. What simulations of this class share, and what differs from more traditional models, is that the result sought is emergent from a large number of contributing entities. Logistic, economic and social simulations are members of this class where things or people are organized or self-organize to produce a solution. Entity-based problems never have an a priori ergodic principle that will greatly simplify calculations. Because the results of entity-based simulations can only be realized at scale, scalable computing is de rigueur for large problems. Having said that, the absence of a spatial organizing principal makes the decomposition of the problem onto processors problematic. In addition, practitioners in this domain commonly use the Java programming language which presents its own problems in a high-performance setting. The plugin we have developed, called the Parallel Particle Data Model, overcomes both of these obstacles and is now being used by two Sandia frameworks: the Decision Analysis Center, and the Seldon social simulation facility. While the ability to engage U.S.-sized problems is now available to the Decision Analysis Center, this plugin is central to the success of Seldon. Because Seldon relies on computationally intensive cognitive sub-models, this work is necessary to acheive the scale necessary for realistic results. With the recent upheavals in the financial markets, and the inscrutability of terrorist activity, this simulation domain will likely need a capability with ever greater fidelity. High-performance computing will play an important part in enabling that greater fidelity..

Research paper thumbnail of The theory of diversity and redundancy in information system security : LDRD final report

Page 1. SANDIA REPORT SAND2010-7055 Unlimited Release Printed October 2010 The Theory of Diversit... more Page 1. SANDIA REPORT SAND2010-7055 Unlimited Release Printed October 2010 The Theory of Diversity and Redundancy in Information System Security: LDRD Final Report Benjamin A. Allan, Robert C. Armstrong, Jackson ...

Research paper thumbnail of Conditional Modeling in an Equation-Based Environment

We identify the modeling capabilities needed for the efficient representation of conditional mode... more We identify the modeling capabilities needed for the efficient representation of conditional models in an equation-based environment and describe modeling tools for the performance of each of these tasks: conditional configuration of a model structure, conditional compilation and conditional execution of procedural statements. We also describe the details of the computer implementation of these tools and show how the expressiveness

Research paper thumbnail of COMPOSE-HPC: A Transformational Approach to Exascale

... [6] Vijay A. Saraswat, Prabhanjan Kambadur, Sreedhar Kodali, David Grove, and Sriram Krishnam... more ... [6] Vijay A. Saraswat, Prabhanjan Kambadur, Sreedhar Kodali, David Grove, and Sriram Krishnamoorthy, Lifeline-based global load balancing, in Proceedings of the 16th ACM symposium on Principles and practice of parallel programming, PPoPP '11, pages 201–212, New ...

Research paper thumbnail of ISIS++Reference Guide (Iterative Scalable Implicit Solver in C++) Version 1.1

ISIS++ (Iterative Scalable Implicit Solver in C++) Version 1.1 is a portable, objectoriented fram... more ISIS++ (Iterative Scalable Implicit Solver in C++) Version 1.1 is a portable, objectoriented framework for solving sparse linear systems of equations. It includes a collection of Krylov solution methods and preconditioners, as well as both uni-processor (serial) and multi-processor (scalable) matrix and vector classes. Though it was developed to solve systems of equations originating from large-scale, 3-D, finite element analyses, it has applications in many other fields.

Research paper thumbnail of Parallel PDE-Based Simulations Using the Common Component Architecture

Lecture Notes in Computational Science and Engineering, 2006

Page 1. 10 Parallel PDE-Based Simulations Using the Common Component Architecture Lois Curfman Mc... more Page 1. 10 Parallel PDE-Based Simulations Using the Common Component Architecture Lois Curfman McInnes 1 , Benjamin A. Allan 2 , Robert Armstrong 2 , Steven J. Benson 1 , David E. Bernholdt 3 , Tamara ...

Research paper thumbnail of Alternative open-source tools for high-performance software: Integrating parallel global address space languages into traditional applications

Parallel global address space (PGAS) languages are a hot topic in sci- entic computing research, ... more Parallel global address space (PGAS) languages are a hot topic in sci- entic computing research, as the computer science community seeks combined hardware and software architectures that yield near-peak performance. However, computational science is evolutionary rather than revolutionary in its software development. Adoption of PGAS tools will require interoperation with conven- tional language tools. We survey the integration of open-source PGAS languages, including Titanium and UPC, with existing applications and language interoper- ability tools. Their impact on source code, software build processes, and run-time issues is presented for parallel application test cases.

Research paper thumbnail of Reusability and Scalability of Models

Object-oriented, equation-based modeling systems (ASCEND, Omola, gPROMS, VeDa and oth- ers) can b... more Object-oriented, equation-based modeling systems (ASCEND, Omola, gPROMS, VeDa and oth- ers) can be very helpful in producing small novel mathematical models, i.e. involving a few tens to few hundreds of equations. These systems have so far not been shown to improve the speed of creating large, novel models involving several tens of thousands of equations, the kind that must be based on the application or modification of libraries. We present declarative modeling formal- isms which aid the library user both in correct application and correct modification of complex library models. Compile times become an issue when a researcher or process designer is frequently recompiling a large model or when a synthesis program is constructing many hundreds to thousands of alterna- tive process models. We report progress in developing automatic compilation algorithms which reduce times from minutes to seconds by taking into account the rich hierarchical semantics of user-written object definitions...

Research paper thumbnail of Computing

The Common Component Architecture (CCA) provides a means for software developers to manage the co... more The Common Component Architecture (CCA) provides a means for software developers to manage the complexity of large-scale scientific simulations and to move toward a plug-and-play environment for high-performance computing. In the scientific computing context, component models also promote collaboration using independently developed software, thereby allowing particular individuals or groups to focus on the aspects of greatest interest to them. The CCA supports parallel and distributed computing as well as local high-performance connections between components in a language-independent manner. The design places minimal requirements on components and thus facilitates the integration of existing code into the CCA environment. The CCA model imposes minimal overhead to minimize the impact on application performance. The focus on high performance distinguishes the CCA from most other component models. The CCA is being applied within an increasing range of disciplines, including combustion research, global climate simulation, and computational chemistry.

Research paper thumbnail of Plans for ASCEND IV: Our next generation equational-based modeling environment

We discuss features of the current version of our ASCEND modeling environment and then many of th... more We discuss features of the current version of our ASCEND modeling environment and then many of the modeling insights we have obtained from using it. From this experience and what others are learning when using their environments, we suggest ways we intend to increase the scope and size problem we can solve with a future version of ASCEND.

Research paper thumbnail of Common Component Architecture Bibliography

Research paper thumbnail of Anonymous Class in Declarative Mathematical Modeling

Object-oriented, equation-based process modeling systems [2, 4, 5, 9] can be very helpful in prod... more Object-oriented, equation-based process modeling systems [2, 4, 5, 9] can be very helpful in producing small novel mathematical models, i.e. involving a few tens to few hundreds of equations. These systems have so far not been shown to improve the speed of creating large, novel models involving several tens of thousands of equations, the kind that must be based on the application and modification of libraries. Compile times and memory usage become bottlenecks when a researcher or process designer is frequently recompiling a large model or when a synthesis program is constructing many hundreds to thousands of alternative process models. We report automatic compilation algorithms which reduce times from minutes to seconds by taking into account the rich hierarchical semantics of user-written object definitions. We report algorithms that reduce overall computer simulation memory requirements by more than half and also make compilation of equations all the way to loop-free, binary form ...

Research paper thumbnail of Automating Multilanguage Development for the High-Performance Software Lifecycle

The component-based software engineering approach based on the Scientific Interface Definition La... more The component-based software engineering approach based on the Scientific Interface Definition Language(SIDL), Babel, and the Common Component Architecture have been employed successfully in high-performance multilanguage software projects dominated by the development of new code. Large scientific projects that rely on existing object-oriented (non-component) code, however, have additional automation requirements, including: (1) fully automated component wrapper generation from non-component code; (2) single expression of interfaces so that maintainers and users have no development lag or code mismatch between changes to the wrapped code and changes to the wrappers; and (3) extensible source code markup for directing the wrapping process of ambiguous cases. These issues are not currently addressed by the highperformance software development tool community. We describe a combination of extensions to the SIDL syntax, the Babel code generation processes, and the bocca tool to address these issues, providing dramatic reductions in component software development time.

Research paper thumbnail of On the role of self-similarity in component-based software

This is a speculative work meant to stimulate discussion about the role of subsumability in self-... more This is a speculative work meant to stimulate discussion about the role of subsumability in self-similar software structures for computational simulations. As in natural phenomena, self-similar features in framework structures allow the size and complexity of code to grow without bound and still maintain apparent coherence. As in crystal growth, the coherence may be maintained by the application of a repeated pattern, or patterns may, as in fluid mechanical turbulence, be scaled by size and nested. Examples of these kinds of patterns applied to component systems in particular will be given. Conclusions and questions for discussion will be drawn regarding the applicability of these ideas to component architectures, complexity, and scientific computing.

Research paper thumbnail of Managing complexity in modern high end scientific computing through component-based software engineering

The ever-increasing complexity of modern high-performance scientific simulation software presents... more The ever-increasing complexity of modern high-performance scientific simulation software presents a tremendous challenge to the development and use of this type of software, with significant impacts on productivity. Component-based software engineering is a means of addressing complexity that has been developed primarily in response to the needs of business and related software environments, but which has not yet had a significant impact on high-end computing. In this paper, we present the Common Component Architecture (CCA) as a com-ponent model designed to meet the special needs of high-performance scientific computing, focusing on how the CCA addresses issues of complexity. Unique among component architectures is the technique presented here by which a CCA component can act as a container to encapsulate and control other components without itself having to implement the functionality of a framework.

Research paper thumbnail of A More Reusable Modeling System

In this thesis we examine problems in the reuse of mathematical models. Reuse of a model by other... more In this thesis we examine problems in the reuse of mathematical models. Reuse of a model by others requires that the model is viewable from many different perspectives, that the model is capable of incorporating new information during its evolution, that the model is understood by a range of modelers in different times and places with different special skills, that the model is mechanically computable in many different ways, that the model's assumptions and key data are not lost, and that the model can support conflict resolution when it is reused as part of a larger model.

Research paper thumbnail of Computational Frameworks for Advanced Combustion Simulations

Fluid Mechanics and Its Applications, 2011

Computational frameworks can significantly assist in the construction, extension and maintenance ... more Computational frameworks can significantly assist in the construction, extension and maintenance of simulation codes. As the nature of problems addressed by computational means has grown in complexity, such frameworks have evolved to incorporate a commensurate degree of sophistication, both in terms of the numerical algorithms that they accommodate as well as the software architectural discipline they impose on their users. In this chapter, we discuss a component framework, the Common Component Architecture (CCA), for developing scientific software, and describe how it has been used to develop a toolkit for simulating reacting flows. In particular, we will discuss why a component architecture was chosen and the philosophy behind the particular software design. Using statistics drawn from the toolkit, we will analyze the code structure and investigate to what degree the aims of the software design were actually realized. We will explore how CCA was employed to design a high-order simulation code on block-structured adaptive meshes, as well as a simulation capacity for adaptive stiffness reduction in detailed chemical models. We conclude the chapter with two reacting flow studies performed using the above-mentioned computational capabilities.

Research paper thumbnail of Managing Scientific Software Complexity with Bocca and CCA

Scientific Programming, 2008

In high-performance scientific software development, the emphasis is often on short time to first... more 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.

Research paper thumbnail of Bocca

Proceedings of the 2007 symposium on Component and framework technology in high-performance and scientific computing - CompFrame '07, 2007

In high-performance scientific software development, the emphasis is often on short time to first... more 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 component glue code to obtain complete applications is still tedious and error-prone. Component-based software meant to reduce complexity at the application level increases complexity with the attendant glue code. To address these needs, we introduce Bocca, the first tool to enable application developers to perform rapid component prototyping while maintaining robust softwareengineering 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 HPC applications, Bocca is designed to operate in a language-agnostic way, simultaneously handling components written in any of the common HPC workstation languages: C, C++, Fortran, Fortran77, 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 Rails for web applications: Start with something that works and evolve it to the user's purpose.

Research paper thumbnail of SIENA Customer Problem Statement and Requirements

This document describes the problem domain and functional requirements of the SIENA framework. Th... more This document describes the problem domain and functional requirements of the SIENA framework. The software requirements and system architecture of SIENA are specified in separate documents (called SIENA Software Requirement Specification and SIENA Software ...

Research paper thumbnail of Parallel computing in enterprise modeling

This report presents the results of our efforts to applly high-performance computing to entitybas... more This report presents the results of our efforts to applly high-performance computing to entitybased simulations with a multi-use plugin for parallel computing. We use the term 'Entity-based simulation' to describe a class of simulaton which includes both discrete event simulation and agent based simulation. What simulations of this class share, and what differs from more traditional models, is that the result sought is emergent from a large number of contributing entities. Logistic, economic and social simulations are members of this class where things or people are organized or self-organize to produce a solution. Entity-based problems never have an a priori ergodic principle that will greatly simplify calculations. Because the results of entity-based simulations can only be realized at scale, scalable computing is de rigueur for large problems. Having said that, the absence of a spatial organizing principal makes the decomposition of the problem onto processors problematic. In addition, practitioners in this domain commonly use the Java programming language which presents its own problems in a high-performance setting. The plugin we have developed, called the Parallel Particle Data Model, overcomes both of these obstacles and is now being used by two Sandia frameworks: the Decision Analysis Center, and the Seldon social simulation facility. While the ability to engage U.S.-sized problems is now available to the Decision Analysis Center, this plugin is central to the success of Seldon. Because Seldon relies on computationally intensive cognitive sub-models, this work is necessary to acheive the scale necessary for realistic results. With the recent upheavals in the financial markets, and the inscrutability of terrorist activity, this simulation domain will likely need a capability with ever greater fidelity. High-performance computing will play an important part in enabling that greater fidelity..

Research paper thumbnail of The theory of diversity and redundancy in information system security : LDRD final report

Page 1. SANDIA REPORT SAND2010-7055 Unlimited Release Printed October 2010 The Theory of Diversit... more Page 1. SANDIA REPORT SAND2010-7055 Unlimited Release Printed October 2010 The Theory of Diversity and Redundancy in Information System Security: LDRD Final Report Benjamin A. Allan, Robert C. Armstrong, Jackson ...

Research paper thumbnail of Conditional Modeling in an Equation-Based Environment

We identify the modeling capabilities needed for the efficient representation of conditional mode... more We identify the modeling capabilities needed for the efficient representation of conditional models in an equation-based environment and describe modeling tools for the performance of each of these tasks: conditional configuration of a model structure, conditional compilation and conditional execution of procedural statements. We also describe the details of the computer implementation of these tools and show how the expressiveness

Research paper thumbnail of COMPOSE-HPC: A Transformational Approach to Exascale

... [6] Vijay A. Saraswat, Prabhanjan Kambadur, Sreedhar Kodali, David Grove, and Sriram Krishnam... more ... [6] Vijay A. Saraswat, Prabhanjan Kambadur, Sreedhar Kodali, David Grove, and Sriram Krishnamoorthy, Lifeline-based global load balancing, in Proceedings of the 16th ACM symposium on Principles and practice of parallel programming, PPoPP '11, pages 201–212, New ...

Research paper thumbnail of ISIS++Reference Guide (Iterative Scalable Implicit Solver in C++) Version 1.1

ISIS++ (Iterative Scalable Implicit Solver in C++) Version 1.1 is a portable, objectoriented fram... more ISIS++ (Iterative Scalable Implicit Solver in C++) Version 1.1 is a portable, objectoriented framework for solving sparse linear systems of equations. It includes a collection of Krylov solution methods and preconditioners, as well as both uni-processor (serial) and multi-processor (scalable) matrix and vector classes. Though it was developed to solve systems of equations originating from large-scale, 3-D, finite element analyses, it has applications in many other fields.

Research paper thumbnail of Parallel PDE-Based Simulations Using the Common Component Architecture

Lecture Notes in Computational Science and Engineering, 2006

Page 1. 10 Parallel PDE-Based Simulations Using the Common Component Architecture Lois Curfman Mc... more Page 1. 10 Parallel PDE-Based Simulations Using the Common Component Architecture Lois Curfman McInnes 1 , Benjamin A. Allan 2 , Robert Armstrong 2 , Steven J. Benson 1 , David E. Bernholdt 3 , Tamara ...

Research paper thumbnail of Alternative open-source tools for high-performance software: Integrating parallel global address space languages into traditional applications

Parallel global address space (PGAS) languages are a hot topic in sci- entic computing research, ... more Parallel global address space (PGAS) languages are a hot topic in sci- entic computing research, as the computer science community seeks combined hardware and software architectures that yield near-peak performance. However, computational science is evolutionary rather than revolutionary in its software development. Adoption of PGAS tools will require interoperation with conven- tional language tools. We survey the integration of open-source PGAS languages, including Titanium and UPC, with existing applications and language interoper- ability tools. Their impact on source code, software build processes, and run-time issues is presented for parallel application test cases.

Research paper thumbnail of Reusability and Scalability of Models

Object-oriented, equation-based modeling systems (ASCEND, Omola, gPROMS, VeDa and oth- ers) can b... more Object-oriented, equation-based modeling systems (ASCEND, Omola, gPROMS, VeDa and oth- ers) can be very helpful in producing small novel mathematical models, i.e. involving a few tens to few hundreds of equations. These systems have so far not been shown to improve the speed of creating large, novel models involving several tens of thousands of equations, the kind that must be based on the application or modification of libraries. We present declarative modeling formal- isms which aid the library user both in correct application and correct modification of complex library models. Compile times become an issue when a researcher or process designer is frequently recompiling a large model or when a synthesis program is constructing many hundreds to thousands of alterna- tive process models. We report progress in developing automatic compilation algorithms which reduce times from minutes to seconds by taking into account the rich hierarchical semantics of user-written object definitions...

Research paper thumbnail of Computing

The Common Component Architecture (CCA) provides a means for software developers to manage the co... more The Common Component Architecture (CCA) provides a means for software developers to manage the complexity of large-scale scientific simulations and to move toward a plug-and-play environment for high-performance computing. In the scientific computing context, component models also promote collaboration using independently developed software, thereby allowing particular individuals or groups to focus on the aspects of greatest interest to them. The CCA supports parallel and distributed computing as well as local high-performance connections between components in a language-independent manner. The design places minimal requirements on components and thus facilitates the integration of existing code into the CCA environment. The CCA model imposes minimal overhead to minimize the impact on application performance. The focus on high performance distinguishes the CCA from most other component models. The CCA is being applied within an increasing range of disciplines, including combustion research, global climate simulation, and computational chemistry.