Find this at http://www.npac.syr.edu/users/gcf/cps615software96/

HPCC Software Technologies Fall 96 -- Overview and HPF

Given by Geoffrey C. Fox at Delivered Lectures of CPS615 Basic Simulation Track for Computational Science on 26 September 96. Foils prepared 26 September 1996

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


This mixed presentation uses parts of the following base foilsets which can also be looked at on their own!
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

Table of Contents for HPCC Software Technologies Fall 96 -- Overview and HPF



CPS 615 Details of HPCC Software

We first Discuss the Laplace Example for HPF
                      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

Overview of Fortran90
                      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

Motivation and Introduction to HPF
                      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

Discussion of Types of Problems!
             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

Problem Architectures
             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

What is HPF and its Capabilities
             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

Finally a Detailed Discussion of HPF
                      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

List of Foils Used as they occur

CPS615Master96                      Master Set of Foils for 1996 
                                     Session of CPS615
62 63 61
CPS615-95C                          CPS615 Foils -- set C: Laplace 
                                     Example -- Programming Models and
                                      Performance
3 4 5 6 7 8 9 10 11 12 13 14
CPS615F90HPF96                      Overview of Fortran 90 and HPF 
                                     Fall 96
3 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 
                                     Applications
18 19 20 21 22 23 24 32 33 34 35
Programming Paradigms B             Part B:Overview of Programming 
                                     Paradigms and Relation to 
                                     Applications
45 46 44 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 3

Sorted List of Foils Used

CPS615Master96                      Master Set of Foils for 1996 
                                     Session of CPS615
61 62 63
CPS615-95C                          CPS615 Foils -- set C: Laplace 
                                     Example -- Programming Models and
                                      Performance
3 4 5 6 7 8 9 10 11 12 13 14
CPS615F90HPF96                      Overview of Fortran 90 and HPF 
                                     Fall 96
3 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 
                                     Applications
18 19 20 21 22 23 24 32 33 34 35
Programming Paradigms B             Part B:Overview of Programming 
                                     Paradigms and Relation to 
                                     Applications
3 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 44 45 46


© Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Sun Feb 22 1998