Book contents
- Frontmatter
- Contents
- List of Figures
- List of Tables
- Preface
- Acknowledgments
- Disclaimer
- PART I THE TAO OF SCIENTIFIC OOP
- PART II SOOP TO NUTS AND BOLTS
- PART III GUMBO SOOP
- 10 Formal Constraints
- 11 Mixed-Language Programming
- 12 Multiphysics Architectures
- Appendix A Mathematical Background
- Appendix B Unified Modeling Language Elements
- Bibliography
- Index
12 - Multiphysics Architectures
from PART III - GUMBO SOOP
Published online by Cambridge University Press: 01 June 2011
- Frontmatter
- Contents
- List of Figures
- List of Tables
- Preface
- Acknowledgments
- Disclaimer
- PART I THE TAO OF SCIENTIFIC OOP
- PART II SOOP TO NUTS AND BOLTS
- PART III GUMBO SOOP
- 10 Formal Constraints
- 11 Mixed-Language Programming
- 12 Multiphysics Architectures
- Appendix A Mathematical Background
- Appendix B Unified Modeling Language Elements
- Bibliography
- Index
Summary
“When sorrows come, they come not single spies but in battalions.”
William ShakespeareToward a Scalable Abstract Calculus
The canonical contexts sketched in Section 4.3 and employed throughout Part II were intentionally low-complexity problems. Such problems provided venues for fleshing out complete software solutions from their high-level architectural design through their implementation in source code. As demonstrated by the analyses in Chapter 3, however, the issues addressed by OOA, OOD, and OOP grow more important as a software package's complexity grows. Complexity growth inevitably arises when multiple subdisciplines converge into multiphysics models. The attendant increase in the scientific complexity inevitably taxes the hardware resources of any platform employed. Thus, leading-edge research in multiphysics applications must ultimately address how best to exploit the available computing platform.
Recent trends in processor architecture make it clear that fully exploiting the available hardware on even the most modest of computing platforms necessitates mastering parallelism. Even laptop computers now contain multicore processors, and the highest-end machines contain hundreds of thousands of cores. The process of getting a code to run efficiently on parallel computers is referred to as getting a code to scale, and code designs that facilitate scaling are termed scalable. The fundamental performance question posed by this chapter is whether one can construct a scalable abstract calculus. The Sundance project (Long 2004) has already answered this question in the affirmative for C++.
- Type
- Chapter
- Information
- Scientific Software DesignThe Object-Oriented Way, pp. 285 - 334Publisher: Cambridge University PressPrint publication year: 2011