We go through the 2D Laplace's Equation with both HPF and MPI for Simple Jacobi Iteration |
HPF and Fortran90 are reviewed followed by MPI |
We also discuss the structure of problems as these determine why and when certain software approaches are appropriate |
CPS615Master96 Master Set of Foils for 1996 Session of CPS615 CPS615-95C CPS615 Foils -- set C: Laplace Example -- Programming Models and Performance CPS615F90HPF96 Overview of Fortran 90 and HPF Fall 96 Programming Paradigms A Part A:Overview of Programming Paradigms and Relation to Applications Programming Paradigms B Part B:Overview of Programming Paradigms and Relation to Applications
CPS615Master96 062 001 CPS615 -- Base Course for the Simulation Track of Computational Science Fall Semester 1996 -- HPCC Software Technologies HPF and MPI CPS615Master96 063 002 Abstract of CPS615 HPCC Software Technologies CPS615-95C 003 003 Parallel Computing Algorithms and Software -- Laplace Example CPS615-95C 004 004 The Solution of Laplace's Equation CPS615-95C 005 005 Discretized Form of Laplace'e Equation on a Parallel Processor CPS615-95C 006 006 Basic Structure of Domain to be Updated in Parallel Version CPS615-95C 007 007 Sequential and Introduction to Parallel Coding for the Laplace Example CPS615-95C 008 008 SEQUENTIAL LAPLACE PROGRAMMING JACOBI ITERATION IN ONE DIMENSION (constant in y direction) CPS615-95C 009 009 SEQUENTIAL LAPLACE PROGRAMMING JACOBI ITERATION IN TWO DIMENSIONS CPS615-95C 010 010 Approaches to Parallel Programming CPS615-95C 011 011 SPMD or SCMD Single Program (code) Multiple Data CPS615-95C 012 012 Data Parallel Programming for Laplace Example CPS615-95C 013 013 Parallel Laplace Programming Data Parallel for Jacobi Iteration in One Dimension CPS615-95C 014 014 Notes on HPF Implementation of Lapace Solver
CPS615F90HPF96 003 015 HPF is an extension of Fortran 90 CPS615F90HPF96 004 016 Why is Fortran90 Easier than Fortran77 CPS615F90HPF96 005 017 Important Features of Fortran90 CPS615F90HPF96 006 018 Introduction to Fortran90 Arrays - I CPS615F90HPF96 007 019 Introduction to Fortran90 Arrays - II CPS615F90HPF96 008 020 Fortran90 Arrays and Memory Allocation CPS615F90HPF96 009 021 More on Fortran90 Arrays and Subroutines CPS615F90HPF96 010 022 Typical Use of Array and Intrinsic Operations CPS615F90HPF96 011 023 Derived Type in Fortran90 CPS615F90HPF96 012 024 Examples of POINTER's in Fortran90 CPS615F90HPF96 013 025 MODULEs in Fortran90 CPS615F90HPF96 014 026 MODULEs INTERFACES and Overloaded Operators in Fortran90
CPS615F90HPF96 015 027 Outline of HPF Discussion CPS615F90HPF96 016 028 Information on HPF and HPF Forum (HPFF) CPS615F90HPF96 017 029 Possible Programming Models CPS615F90HPF96 018 030 Data Parallel Programming Model
Programming Paradigms A 018 031 Problem Architectures Programming Paradigms A 019 032 5 Categories of Problems Programming Paradigms A 020 033 Example of Basic Problem Architectures Regular Synchronous Problem Class Programming Paradigms A 021 034 Example of Basic Problem Architectures Irregular Loosely Synchronous Programming Paradigms A 022 035 Example of Basic Problem Architectures The difficult Asynchronous Class CPS615Master96 061 036 Embarassingly Parallel Problem Class Programming Paradigms A 023 037 Example of Basic Problem Architectures for MetaProblem Class Programming Paradigms A 024 038 Software Bus Structure of USMADE
Programming Paradigms A 032 039 Computing as a Mapping Problem Programming Paradigms A 033 040 Complex Systems to give a Theory of Computing Programming Paradigms A 034 041 Parallel Computing is "just" an optimization problem, even if we can't agree on what to optimize Programming Paradigms A 035 042 Complex System Representation of Levels in Computer Software Programming Paradigms B 045 043 The map of Problem ---> Computer is performed in two or more statges Programming Paradigms B 046 044 The Mapping of Space of Problem Architectures onto Space of Machine Architectures
Programming Paradigms B 044 045 What determines when Parallelism is Clear ? Programming Paradigms B 009 046 Evaluation of High Performance Fortran What applications need what features of HPF and its extensions ? Programming Paradigms B 010 047 What Issues should High Performance Fortran (HPF) Address! Programming Paradigms B 011 048 Goal of High Performance Fortran Programming Paradigms B 012 049 Any Complete Programming Environment Must Handle Programming Paradigms B 013 050 HIGH PERFORMANCE FORTRAN COMPILERS Programming Paradigms B 014 051 What type of compiler is HPF ? Programming Paradigms B 015 052 The High Performance Fortran Library Programming Paradigms B 016 053 HPF Intrinsic Library Programming Paradigms B 017 054 High Performance Fortran Library -- I Programming Paradigms B 018 055 High Performance Fortran Library -- II Programming Paradigms B 020 056 Imprecise Mapping of Problem Classes into Runtime and Language Terms Programming Paradigms B 021 057 General Applicability of HPF, HPF++, HPC++ Programming Paradigms B 022 058 Importance of HPF, HPC++ to Users Programming Paradigms B 023 059 What about other languages ? Programming Paradigms B 024 060 What applications does HPF support? If not - what extensions are needed? Programming Paradigms B 025 061 5 Categories of Problems Programming Paradigms B 003 062 Comparison of 3 different Programming Models
CPS615F90HPF96 019 063 Parallelism in HPF CPS615F90HPF96 020 064 Fortran77 is part of Fortran90 CPS615F90HPF96 021 065 HPF Features CPS615F90HPF96 022 066 What gives high performance in HPF CPS615F90HPF96 023 067 Compiler directives used in HPF CPS615F90HPF96 024 068 What does an HPF Compiler do? CPS615F90HPF96 025 069 Syntax of HPF Directives CPS615F90HPF96 026 070 Data Mapping in HPF CPS615F90HPF96 027 071 Staged Data Mapping in HPF CPS615F90HPF96 028 072 Template in HPF CPS615F90HPF96 029 073 Abstract Processors in HPF CPS615F90HPF96 030 074 Example of Template and Processors CPS615F90HPF96 031 075 Align Directive in HPF CPS615F90HPF96 032 076 Examples of Align Directive CPS615F90HPF96 033 077 Changing Rank in Align Directive CPS615F90HPF96 034 078 Replication in Align Directive CPS615F90HPF96 035 079 General Alignments in HPF CPS615F90HPF96 036 080 Formal Definition of Align Directive CPS615F90HPF96 037 081 More obscure Complicated Examples of Align Directive CPS615F90HPF96 038 082 Distribution Directive in HPF CPS615F90HPF96 039 083 Basic Examples of Distribute Directive CPS615F90HPF96 040 084 Two Dimensional Example of Distribute Directive CPS615F90HPF96 041 085 The Two Basic Distributions in HPF CPS615F90HPF96 042 086 The Example of Matrix Inversion CPS615F90HPF96 043 087 Example of Graphics Rendering CPS615F90HPF96 044 088 Example of Distribute Directive with Complex Alignment CPS615F90HPF96 045 089 Dynamic Data Mapping CPS615F90HPF96 046 090 Advanced Mapping Directives -- ReDistribution and ReAlign CPS615F90HPF96 047 091 Advanced Mapping Directives -- Allocatable arrays and pointers CPS615F90HPF96 048 092 Subprograms in HPF CPS615F90HPF96 049 093 Passing Distributed Arrays as Subprogram Arguments in HPF CPS615F90HPF96 050 094 Mapping Options for Dummy (Subroutine) Arguments CPS615F90HPF96 051 095 Inherit Distribution Directive in HPF CPS615F90HPF96 052 096 Summary of Mapping Directives in HPF CPS615F90HPF96 053 097 Fundamental Parallelism Assumption in HPF CPS615F90HPF96 054 098 Parallel statements and Constructs in HPF CPS615F90HPF96 055 099 Parallelism in Fortran 90 array assignments CPS615F90HPF96 056 100 WHERE (masked array assignment) in HPF CPS615F90HPF96 057 101 WHERE...ELSEWHERE / IF...ELSE constructs in HPF CPS615F90HPF96 058 102 Intrinsic functions in HPF CPS615F90HPF96 059 103 HPF library functions CPS615F90HPF96 060 104 SUM, SUM_PREFIX and SUM_SCATTER defined CPS615F90HPF96 061 105 HPF Intrinsic EXAMPLE: SUM CPS615F90HPF96 062 106 FORALL Statement in HPF CPS615F90HPF96 063 107 Examples of FORALL statements in HPF CPS615F90HPF96 064 108 Semantics of the FORALL statement in HPF CPS615F90HPF96 065 109 Vector Indices in FORALL's CPS615F90HPF96 066 110 Multiple Statement FORALL's CPS615F90HPF96 067 111 HPF FORALL construct Pictorially CPS615F90HPF96 068 112 PURE Functions in HPF CPS615F90HPF96 069 113 Example of PURE Function from Chuck Koelbel CPS615F90HPF96 070 114 The INDEPENDENT Assertion in HPF CPS615F90HPF96 071 115 !HPF$ INDEPENDENT FORALL Pictorially CPS615F90HPF96 072 116 !HPF$ INDEPENDENT DO Pictorially CPS615F90HPF96 073 117 !HPF$ INDEPENDENT, NEW Variable CPS615F90HPF96 074 118 Extrinsics in HPF CPS615F90HPF96 075 119 High Performance Fortran HPF2 Changes CPS615F90HPF96 076 120 ON HOME for Computation Placement CPS615F90HPF96 077 121 Reductions in INDEPENDENT DO Loops CPS615F90HPF96 078 122 Spawning Tasks in HPF CPS615F90HPF96 079 123 New Data Mapping Features in HPF 2.0 - I CPS615F90HPF96 080 124 New Data Mapping Features in HPF 2.0 - II
CPS615Master96 Master Set of Foils for 1996 Session of CPS61562 63 61
CPS615-95C CPS615 Foils -- set C: Laplace Example -- Programming Models and Performance3 4 5 6 7 8 9 10 11 12 13 14
CPS615F90HPF96 Overview of Fortran 90 and HPF Fall 963 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
Programming Paradigms A Part A:Overview of Programming Paradigms and Relation to Applications18 19 20 21 22 23 24 32 33 34 35
Programming Paradigms B Part B:Overview of Programming Paradigms and Relation to Applications45 46 44 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 3
CPS615Master96 Master Set of Foils for 1996 Session of CPS61561 62 63
CPS615-95C CPS615 Foils -- set C: Laplace Example -- Programming Models and Performance3 4 5 6 7 8 9 10 11 12 13 14
CPS615F90HPF96 Overview of Fortran 90 and HPF Fall 963 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
Programming Paradigms A Part A:Overview of Programming Paradigms and Relation to Applications18 19 20 21 22 23 24 32 33 34 35
Programming Paradigms B Part B:Overview of Programming Paradigms and Relation to Applications3 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 44 45 46