Automatic and Explicit Parallelization Approaches for Equation Based Mathematical Modeling and Simulation.
- 1st ed.
- 1 online resource (223 pages)
- Link�oping Studies in Science and Technology. Dissertations Series ; v.1967 .
- Link�oping Studies in Science and Technology. Dissertations Series .
Intro -- POPUL�ARVETENSKAPLIG 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.