Object-Oriented Programming Paradigms in Scientific Computing

Charles D. Norton

Department of Computer Science
Rensselaer Polytechnic Institute, Troy, New York, 12180-3590, USA
Email:nortonc@olympic.jpl.nasa.gov

Thesis Committee

Dr. Boleslaw K. Szymanski, Thesis Advisor
Dr. Viktor K. Decyk (Physics/UCLA), Member
Dr. Joseph E. Flaherty, Member
Dr. Franklin T. Luk, Member
Dr. David R. Musser, Member


  1. Introduction and Historical Review
    1. The Importance of Programming Paradigms
    2. Basic Concepts in Object-Oriented Methodology and Programming
    3. Overview of Object Modeling Technique (OMT) Notation
    4. Minor Commentary and Personal Viewpoints
    5. Background and Relevance to Previous Work
    6. Overview of Principal Contributions
  2. Plasma PIC Simulation
    1. Overview of the Plasma PIC Model
    2. The Fortran 77 Simulation Programs
      1. The Sequential Programs
      2. The Parallel Programs
    3. The Experiments
      1. Beam-Plasma Instability
      2. Collisionless Free-Expansion into a Vacuum
      3. Gravitation
  3. Abstraction Modeling in Scientific Computing
    1. Organizing Object-Oriented Simulation Codes
    2. Object-Oriented Design of Sequential PIC Programs
      1. One-Dimensional PIC Simulation
      2. Two-Dimensional PIC Simulation
      3. Three-Dimensional PIC Simulation
      4. Commentary on Sequential Models
    3. Object-Oriented Design of Parallel PIC Programs
      1. One-Dimensional PIC Simulation
      2. Two-Dimensional PIC Simulation
      3. Three-Dimensional PIC Simulation
      4. Commentary on Parallel Models
    4. Evaluation, Discussion, and Advanced Issues
  4. Object-Oriented Programming in Fortran 90
    1. Fortran 90: The New Standard
    2. Object-Oriented Fortran 90 Programming
      1. Encapsulation with Derived Types
      2. Overview of Modules
      3. Inheritance and Related Issues
      4. Generic Programming and Polymorphism
      5. The Object-Oriented Programming Model
    3. Plasma PIC Application Programming
      1. Fortran 90 Mirror of C++ Model
      2. Program Organization Based on Fortran 90
    4. Parallel PIC Programming in Fortran 90
    5. Commentary
  5. Irregular Computation in Plasma Modeling
    1. An Object-Oriented Approach for Irregular Computation
    2. Computation and Communication Irregularity in PIC Simulation
      1. Managing Particle-Field Partitioning
      2. The Scanning Partition Mapping Method
    3. Load Balancing in the Plasma PIC Algorithm
    4. Continuous Implicit Monitoring for Irregular Computation
  6. The Implications of Abstraction
    1. The Influence of Language Statements on Object-Oriented Modeling and Programming
    2. Comparing C++ and Fortran 90 Models of Abstraction
    3. Comparing Fortran 77, Fortran 90, and C++ Paradigms
    4. Commentary
  7. Machine & Compiler Performance Comparisons
    1. Development Experiences Across Compilers & Machines
    2. Analysis of Scalar Performance
    3. Parallel Simulation Results and Performance
    4. Measuring the Performance Effects of Object-Oriented Abstractions in Fortran 90
    5. Commentary
  8. Discussion, Conclusions, and New Directions
    1. The Impact of Paradigm Studies on Modern Software Development
    2. Review of Thesis Research
    3. Final Commentary and New Directions