Download presentation
Presentation is loading. Please wait.
1
SW Architecture Review Steven Anastos Jose De Jesus Sean Stevenson
2
Enable Princeton Ocean Model Optimization Enable Princeton Ocean Model Optimization –Take pre-existing FORTRAN POM code and apply OpenMP embedding & arithmetic optimization thru CFD Compiler –Main Goal Decrease run time of FORTRAN POM code Decrease run time of FORTRAN POM code Produce error free FORTRAN code Produce error free FORTRAN code
3
Use Case Use Case 1) Developer edits a source file by hand to insert compiler pragma 2) Developer processes the source file with CFD compiler 3) Developer compiles the processed code with FORTRAN compiler
4
Advanced Optimization Pre-Processor Optimizer Compiler Output Generator Equation Tree OpenMP Tree Manipulator
5
Preprocessor Preprocessor –Includes Lexical and Parsing Sections Optimizer Optimizer –Inserting Into FORTRAN Coded Equation into Tree –Optimization Occurs in Tree Structure Formation –Embedding of OpenMP Syntax Output optimizer Output optimizer –Returns Optimized Tree Configuration
7
Princeton Ocean Model Software Standard C++ Libraries OpenMP Library Headers & Classes Compilers of Choice for Source Code Generation Languages Used for Development & Testing OS Used in Development
8
Autonomous testing implementation. Autonomous testing implementation. –Randomly creates equation test cases Requirements for Autonomous Testing Requirements for Autonomous Testing –Arithmetic Notation –Mixed operator Inclusion flux =.25e2 * ( D + I )* ( Y + B * A) Black Box Testing Black Box Testing - Using both randomly created tests cases and also Princeton Ocean Model examples
9
Regression Testing Regression Testing - Same test cases used for each version - Automated Test cases will be generated and kept to be used again on later versions Application Testing Application Testing - By using the POM we have real examples and equations to test our compiler on - Instead of just contrived examples POM as a whole will be used as well
10
Text Box 1. ORIGINAL FORTRAN CODE SEGMENT FROM TRIAL CODE flux =.25e2 * ( D + I )* ( Y + B * A) Text Box 2. COMPILER EMBEDDED SYNTAX !!!! CFD { [ VAR flux, =,.25e2, *, (, VAR D, +, ONE I, ), *, (, VAR Y, +, CONST B, *, CONST A, ) ] !!!! flux =.25e2 * ( D + I )* ( Y + B * A) !!!! } Text Box 3. COMPILER EMBEDDED OpenMP SYNTAX !!!! CFD { [ VAR flux, =,.25e2, *, (, VAR D, +, ONE I, ), *, (, VAR Y, +, CONST B, *, CONST A, ) ] !$OMP PARALLEL flux =.25e2 * ( D + I )* ( Y + B * A) !$OMP END PARALLEL !!!! }
12
Original Estimate: 2.4*(2.2)^1.05 = 5.5 staff months Original Estimate: 2.4*(2.2)^1.05 = 5.5 staff months 2200 estimated lines of code 2200 estimated lines of code We have ~900 lines of code two weeks before halfway point of semester We have ~900 lines of code two weeks before halfway point of semester
13
Simplification from transition from MPI to OpenMP. Simplification from transition from MPI to OpenMP. Removed several advanced optimization methods from the requirements Removed several advanced optimization methods from the requirements
14
Minimized Coupling and Increased Cohesion by splitting modules per job function. Minimized Coupling and Increased Cohesion by splitting modules per job function. Due to sequential processing our compiler has very low coupling Due to sequential processing our compiler has very low coupling
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.