Automatic and Explicit Parallelization Approaches for Equation Based Mathematical Modeling and Simulation.
| Main Author: | |
|---|---|
| Format: | eBook |
| Language: | English |
| Published: |
Linköping :
Linkopings Universitet,
2018.
|
| Edition: | 1st ed. |
| Series: | Linköping Studies in Science and Technology. Dissertations Series
|
| Subjects: | |
| Online Access: | Click to View |
Table of Contents:
- Intro
- POPULÄRVETENSKAPLIG SAMMANFATTNING
- Abstract
- Acknowledgments
- Contents
- List of Figures
- List of Tables
- Listings
- 1 Introduction
- Motivation
- Research Problem
- Main Contributions
- Automatic Parallelization
- Explicit Parallelization
- Practical Considerations
- Thesis Structure
- 2 Parallel Programming
- Introduction
- Programmability
- Automatic Parallelization
- Explicit Parallelization
- Memory Model
- Shared Memory
- Distributed Memory
- Threading Model
- Data Parallelism
- Task Parallelism
- Combined Shared Parallelism: Programmability with Threading Model
- 3 Mathematical Modeling
- Assignments and Equations
- Notations
- Equality Checks
- Equations
- Inputs and Outputs
- Solving Equation Systems
- Dynamic Systems: Time
- Rate Of Change: Derivatives
- Discrete Behaviour
- Modelica
- Modelica for Mathematical Modeling
- Modelica Standard Library (MSL)
- OpenModelica
- I Automatic Parallelization
- 4 Introduction
- Terminology
- Graphs
- Directed Graphs
- Bipartite Graphs
- Causalization of Equation Systems
- Matching
- Sorting
- Automatic Parallelization Approaches
- Parallelization Over Method
- Parallelization Over Time
- Parallelization Over Equation System
- 5 Connected Component Parallelization
- Integrated Approach
- Cost Estimation and Load Balancing
- Memory Management
- Shared Global Memory Pool
- Thread Local Memory Pool
- Thread Management
- Complexity and Portability Issues
- Improving Decoupling
- Case Study
- Conclusions
- 6 Strongly Connected Components Parallelization
- Equation System Structure
- The Need for Scheduling
- Data Dependencies
- The Need for Clustering
- Stand Alone Implementation
- Memory and Thread Management
- 7 Clustering and Scheduling
- Task Clustering: Reducing Overhead, Improving Locality, and Balancing.
- Background
- The Bin Packing Problem
- Polynomial Time Bin Packing Approximations
- k-way Integer Partitioning
- Makespan Scheduling Approximation Algorithms
- Clustering Heuristics
- Merge Single Parent (MSP)
- Merge Level Parents (MLP)
- Merge Level for Bins (MLB)
- Merge Level for Cost (MLC)
- Schedulers
- The Level Scheduler
- Flow Graph Scheduler
- 8 ParModAuto
- Motivation
- Design Principles
- High Level Operation
- Runtime Processing
- Portability Considerations
- Extensibility Considerations
- Independence: Minimal Assumptions
- Implementation
- Task Abstraction
- Clusters
- Dependency Specification and Task System Construction
- Task System Representation
- Schedulers
- Equation System Representation
- Extra Functionalities
- 9 Performance Evaluation
- Overview
- Setup
- Test Cases and Results
- CauerLowPassSC
- BranchingDynamicPipes
- Spice3BenchmarkFourBitBinaryAdder
- EngineV6
- SteamPipe
- 10 Conclusions on Automatic Parallelization
- II Explicit Parallelization
- 11 Introduction
- General Purpose Graphic Processing Unit (GPGPU) programming
- OpenCL
- The OpenCL Architecture
- Platform Model
- Execution Model
- Memory Model
- Programming Model
- Modelica for Scientific Computing
- Related work
- 12 ParModelica Extensions
- Parallel Variables
- Parallel Functions
- Kernel Functions
- Parallel For Loop: parfor
- Built-in Functions
- Synchronization and Thread Management
- Extra OpenCL Functionalities
- 13 ParModExp
- ParModelica OpenCL-C Runtime Library
- ParModelica OpenCL Utility Headers
- 14 Performance Evaluations
- The MPAR Benchmark Suite
- Results
- Conclusions
- III Appendix
- 15 Numerical Methods
- Non-Linear Systems: Root Finding and Newton's method
- Numerical Integration
- Euler's Methods
- Adam-Bashforth Methods
- Adam-Moulton Methods.
- Backward Differentiation Formulae (BDF) Methods
- DASSL
- 16 ParModelica (Extended Modelica) Concrete Syntax
- Lexical conventions
- Grammar
- Stored Definition - Within
- Class Definition
- Extends
- Component Clause
- Modification
- Equations
- Expressions
- 17 Selected ParModExp OpenCL Library API definitions
- Bibliography.


