
UNIVERSITÄTSBIBLIOTHEK BRAUNSCHWEIG Dominik Jürgens Survey on Software Engineering for Scientific Applications – Reusable Software, Grid Computing and Application Braunschweig : Inst. für Wissenschaftliches Rechnen, 2009 Informatikbericht / Technische Universität Braunschweig ; Nr. 2009-02 Veröffentlicht: 12.05.2009 http://www.digibib.tu-bs.de/?docid=00027815 http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 Dominik Jur¨ gens Survey on Software Engineering for Scientific Applications Reuseable Software, Grid Computing and Application I NSTITUTEOF SCIENTIFIC COMPUTING CARL-FRIEDRICH-GAUSS-FAKULTAT¨ TECHNISCHE UNIVERSITAT¨ BRAUNSCHWEIG Braunschweig, Germany, 2009 http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 Survey on Software Engineering for Scientific Applications Dominik Jurgens¨ Institute of Scientific Computing Carl-Friedrich-Gauß-Fakultat¨ Technische Universitat¨ Braunschweig, Germany Informatikbericht Nr.: 2009-02 Freitag, 13. Marz¨ 2009 Location Postal Address Institute of Scientific Computing Institut fur¨ Wissenschaftliches Rechnen Technische Universitat¨ Braunschweig Technische Universitat¨ Braunschweig Hans-Sommer-Straße 65 D-38092 Braunschweig D-38106 Braunschweig Germany Contect Phone: +49-(0)531-391-3000 Fax: +49-(0)531-391-3003 E-Mail: [email protected] URL: http://www.wire.tu-bs.de Copyright c by the author. This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted in connection with reviews or scholarly analysis. Permission for use must always be obtained from the copyright holder. Alle Rechte vorbehalten, auch das des auszugsweisen Nachdrucks, der auszugsweisen oder vollstandigen¨ Wiedergabe (Photographie, Mikroskopie), der Speicherung in Datenverarbeitungsanlagen und das der Ubersetzung.¨ http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 Abstract Fields of modern science and engineering are in need of solving more and more complex numerical problems. The complexity of scientific software thereby rises continuously. This growth is caused by a number of changing requirements. Coupled phenomena gain importance and new technologies like computational-grids, graphical and heterogeneous multi-core processors have to be used to achieve high-performance. The amount of additional complexity can not be handled by a small group of specialised scientists. The interdici- plinary nature of scientific software thereby presents new challanges for software engineering. A paradigm shift towards a stronger separation of concerns becomes necessary in the development of future scientific software. The coupling of independently simulated physical phenomena is an important example for a software-engineering concern in the domain of computational science. In this context, different simulation-programs model only a part of a more complex coupled system. The present work gives overview on paradigms which aim at making software-development in computational sciences more reliable and less interdependent. A special focus is put on the development of coupled simulations. http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 Contents 1 Introduction 3 2 Software Reuse 6 2.1 Relation between Learning And Programming . 6 2.1.1 A Definition of Reuse . 7 2.2 Reuse in Software Systems . 8 2.2.1 Implications of Reuse in Software Systems . 8 2.3 The long rocky Road to Software Reuse . 9 2.3.1 Overview: Approaches to Reuse . 9 2.3.2 Software Paradigms . 10 2.3.3 Generative Programming . 22 2.3.4 Software Reuse – Summary . 26 3 Components in Software Development 27 3.1 Motivation – Component Based Software . 27 3.1.1 Theoretical Concepts of Component Based Software . 28 3.1.2 Interfacing . 28 3.1.3 Terminology . 28 3.2 Example Implementations . 32 3.2.1 Component Model . 32 3.2.2 Component Framework . 33 3.2.3 Component Architecture . 33 3.3 Basic Component Techniques . 33 3.3.1 Late Binding . 33 3.3.2 Resource Discovery . 34 4 Motivation for Parallelisation 36 4.1 Memory Driven Parallelisation . 36 4.2 Quality Driven Parallelisation . 36 4.3 Performance Driven Parallelisation . 36 4.4 Hardware Driven Parallelisation . 37 4.4.1 Sequential Super Computer Reference . 37 4.4.2 Parallel Super Computer Reference . 37 4.4.3 From High-End to Desktop . 37 4.5 Summary . 38 5 High Performance Computing 39 5.1 Parallel Computing Architectures . 39 5.1.1 A Simple Performance Measure . 40 5.2 Granularity . 41 5.3 Instruction Level Parallel Machines and Flynn’s Taxonomy . 41 5.3.1 Single Instruction Multiple Data . 41 5.3.2 Multiple Instruction Multiple Data . 42 5.3.3 Vector Computers . 42 5.4 Shared Memory Parallel Multi-Processor Machines . 42 5.5 Distributed Memory Architectures . 42 5.5.1 Virtual Single System Image . 43 5.5.2 Multiple Programs Multiple Data Cluster Programming . 43 5.5.3 Future Trends . 43 6 Peer-to-Peer Computing 45 7 Grid Computing 46 7.1 Use Cases for Grid Technology . 46 7.2 Basic Concepts and Technologies . 47 7.2.1 Virtual Organisations . 47 7.2.2 Public Key Infrastructure . 47 i http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 ii CONTENTS 7.2.3 Trusted Authority and Rights Delegation – the GLOBUS Security Infrastructure . 49 7.2.4 Grid Framework . 49 7.2.5 Grid Services – The Backbone of a Grid Implementation . 50 8 Motivation 52 9 Terminology 53 9.1 Routines of Partitioned Analysis . 54 9.2 Coupled Simulation . 55 10 Partitioned Analysis 57 11 Lagrange Multiplier Methods 59 11.1 Derivation of Coupling with Lagrangian Multiplier . 59 11.1.1 Simple Example . 59 11.1.2 Coupling of Complex Partitioned Systems . 63 11.2 Semi-Partitioned Approach with Lagrange Multipliers . 65 11.3 Partitioned Approach with Lagrange Multipliers . 66 http://www.digibib.tu-bs.de/?docid=00027815 12/05/2009 List of Figures 2.1 Overview about Reuse . 10 2.2 Performance FORTRAN vs. C . 16 2.3 Benchmark Code: FORTRAN vs. C . 16 2.4 Categorising Paradigms . 21 2.5 Process-Diagram for Code-Generation . 22 2.6 Comparison between run-time and compile-time binding . 25 5.1 von-Neumann Architecture . ..
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages87 Page
-
File Size-