SlideShare a Scribd company logo
1 of 12
RSM Refactor (Phase 1) Refactor - Code refactoring is "a disciplined way to restructure code",[1] undertaken in order to improve some of the nonfunctional attributes of the software. – Wikipedia.com Project goals Clean up the code Restructure into stronger object oriented model Change No Functionality
Team Project lead – Joseph Park Core Developers Fahmida Khatun Charles Haynes Randy Vanzee Additional development and consulting staff Veera Karri Raul Novoa Eric Flaig Wasantha Lal Ruben Arteaga Clay Brown Sharika Senarath Michael Martin (USACE)
RSM Past Canal-Mesh Integration Benchmarks C++ Standard gcc justification WaterBody/ WaterMover class ENP Model Parallelization DSS I/O Vertical Soln SCCS PETSC Sparse Matrix Purify C++ standalone Documentation +6 + 2.3 Yrs + 4 Alpha controller Rulecurves PID controller hse FORTRAN – C++ Canal Algorithm XML CVS pseudocells + 3.2 Yrs 1998 1997 1999 2000 2002 2001 8/96 1996 Exception handling Console logging Basin WB Bugzilla Trigger Module Assessor MSE Network WCU Assessors Fuzzy control pseudocell hub  WM control MSE User controller GLPK +7.7 HPMs Special Assess Iterations WMM Assess WCU Profiler Basins EAA Linked Basins/ WMM Assessors .dtd version stage based LGMRES ORM refactor Canal decouple STA WQ 2003 2004 2005 2010 2006 2007 2008 2009
April 2009 Proposed RSM Developments Lessons Learned RSM Enhancement Program ,[object Object]
 Domain-specific attention
 Improvement of model functions
 Incorporation of new technologies+ Model Objective C++ Coding Standard RSM Refactor
July 2009 Proposed RSM Developments (& Status) HSE Kernel† 1. Investigate replacement of PETSC with internal GMRES solver. (IML++ solver was fully integrated & tested with GladesLECSA model in 2010. See next slide.) 2. Evaluation and enhancement of watermover Jacobians (Current). † This does not directly address or design a solution for overland flow (2D) stability, or reformulation of the diffusion framework with the addition of inertia.
IML++ Analysis - LGMRES Implementation & testing of IML++ found that in comparison to PETSC, runtimes were slower and waterbudget residuals higher for GladesLECSA models.  However: it led to a better understanding of the LGMRES algorithm and through exhaustive testing resulted in the adoption of PETSC LGMRES with Kyrlov subspace restart parameterisations that: 1.  Significantly reduced model runtimes 2.  Give modelers control over solution tolerance / runtime tradeoff
July 2009 Proposed RSM Developments (& Status) RSM Refactor 1.	Assess current code-base and class hierarchy. (2010) 2.	Get Modeler input to identify needed and superfluous waterbodies,  	watermovers and functions. (2010) 3. 	Develop RSM Coding Standard. (2010) 4.	Implement code cleanup based on Modeler criteria. (2011) 5.	Assess code adherence to RSM coding standards. (2010) 6.	Code refactor to correct deviations from RSM coding standards. 	(2011) 7.	Assess functional integration of modules (HPMs, Trigger… etc.) 	(Future) 8.	Refactor identified modules to uniform HSE/MSE integration 	standards. (Future)
Bugzilla 2173 –  RSM Refactor A holistic cleanup and review of the RSM/HSE code base has not been conducted. There are varying styles and formats across the code-base which present barriers to assimilation by new developers and support by maintainers. There also exist sections of dead code, unnecessary header file dependencies and defunct benchmarks.   The Model Development Leads recommend: 1. Unifying the code-base with a coherent set of standards 2. Cleaning up dead code and benchmarks 3. Reducing header file dependencies Project Goals 1. Code-base will be unified with a common look-and-feel 2. Source image will be reduced in size and complexity as header dependencies are removed 3. The pool of RSM developers will be expanded  4. No functional changes to model I/O, behavior or performance
RSM Centric C++ Coding Standard Version 1.1 February 24, 2011 Technical Committee Joseph Park Randy van Zee Charles Haynes The Coding Standard emphasized consistency, adherence to C++ standards and the reduction of header file dependencies.

More Related Content

Viewers also liked

9. Las Colonizaciones Portuguesa, Inglesa y Holandesa
9. Las Colonizaciones Portuguesa, Inglesa y Holandesa9. Las Colonizaciones Portuguesa, Inglesa y Holandesa
9. Las Colonizaciones Portuguesa, Inglesa y HolandesaMarioandres1405
 
10. 9 1 La Globalizacion
10. 9 1 La Globalizacion10. 9 1 La Globalizacion
10. 9 1 La GlobalizacionMarioandres1405
 
5. La Creación de los Gremios en la Baja Edad Media
5. La Creación de los Gremios en la Baja Edad Media5. La Creación de los Gremios en la Baja Edad Media
5. La Creación de los Gremios en la Baja Edad MediaMarioandres1405
 
6. 9 4 El Bandolerismo y Periodo de la Violencia
6. 9 4 El Bandolerismo y Periodo de la Violencia6. 9 4 El Bandolerismo y Periodo de la Violencia
6. 9 4 El Bandolerismo y Periodo de la ViolenciaMarioandres1405
 
10. 9 2 La Apertura Económica
10. 9 2 La Apertura Económica10. 9 2 La Apertura Económica
10. 9 2 La Apertura EconómicaMarioandres1405
 
3. La intensificación del Comercio en la Baja Edad Media
3. La intensificación del Comercio en la Baja Edad Media3. La intensificación del Comercio en la Baja Edad Media
3. La intensificación del Comercio en la Baja Edad MediaMarioandres1405
 
9. 9 3 La Constitución Política de 1991
9. 9 3 La Constitución Política de 19919. 9 3 La Constitución Política de 1991
9. 9 3 La Constitución Política de 1991Marioandres1405
 
2. Las Expansiones Portuguesa y Española
2. Las Expansiones Portuguesa y Española2. Las Expansiones Portuguesa y Española
2. Las Expansiones Portuguesa y EspañolaMarioandres1405
 
Politica Exterior de los Estados Unidos y América Latina a inicios del siglo xx
Politica Exterior de los Estados Unidos y América Latina a inicios del siglo xxPolitica Exterior de los Estados Unidos y América Latina a inicios del siglo xx
Politica Exterior de los Estados Unidos y América Latina a inicios del siglo xxMarioandres1405
 
3. civilizaciones Americanas
3. civilizaciones Americanas3. civilizaciones Americanas
3. civilizaciones AmericanasMarioandres1405
 

Viewers also liked (13)

9. Las Colonizaciones Portuguesa, Inglesa y Holandesa
9. Las Colonizaciones Portuguesa, Inglesa y Holandesa9. Las Colonizaciones Portuguesa, Inglesa y Holandesa
9. Las Colonizaciones Portuguesa, Inglesa y Holandesa
 
Dio Studio
Dio StudioDio Studio
Dio Studio
 
Folleto Folder
Folleto FolderFolleto Folder
Folleto Folder
 
10. 9 1 La Globalizacion
10. 9 1 La Globalizacion10. 9 1 La Globalizacion
10. 9 1 La Globalizacion
 
Ocho Moto Recap
Ocho Moto RecapOcho Moto Recap
Ocho Moto Recap
 
5. La Creación de los Gremios en la Baja Edad Media
5. La Creación de los Gremios en la Baja Edad Media5. La Creación de los Gremios en la Baja Edad Media
5. La Creación de los Gremios en la Baja Edad Media
 
6. 9 4 El Bandolerismo y Periodo de la Violencia
6. 9 4 El Bandolerismo y Periodo de la Violencia6. 9 4 El Bandolerismo y Periodo de la Violencia
6. 9 4 El Bandolerismo y Periodo de la Violencia
 
10. 9 2 La Apertura Económica
10. 9 2 La Apertura Económica10. 9 2 La Apertura Económica
10. 9 2 La Apertura Económica
 
3. La intensificación del Comercio en la Baja Edad Media
3. La intensificación del Comercio en la Baja Edad Media3. La intensificación del Comercio en la Baja Edad Media
3. La intensificación del Comercio en la Baja Edad Media
 
9. 9 3 La Constitución Política de 1991
9. 9 3 La Constitución Política de 19919. 9 3 La Constitución Política de 1991
9. 9 3 La Constitución Política de 1991
 
2. Las Expansiones Portuguesa y Española
2. Las Expansiones Portuguesa y Española2. Las Expansiones Portuguesa y Española
2. Las Expansiones Portuguesa y Española
 
Politica Exterior de los Estados Unidos y América Latina a inicios del siglo xx
Politica Exterior de los Estados Unidos y América Latina a inicios del siglo xxPolitica Exterior de los Estados Unidos y América Latina a inicios del siglo xx
Politica Exterior de los Estados Unidos y América Latina a inicios del siglo xx
 
3. civilizaciones Americanas
3. civilizaciones Americanas3. civilizaciones Americanas
3. civilizaciones Americanas
 

Similar to Rsm Refactor April 2011

A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Towards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelTowards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelAlessio Bucaioni
 
System Architecture Exploration Training Class
System Architecture Exploration Training ClassSystem Architecture Exploration Training Class
System Architecture Exploration Training ClassDeepak Shankar
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEQAware GmbH
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEMario-Leander Reimer
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsÁkos Horváth
 
System on Chip Design and Modelling Dr. David J Greaves
System on Chip Design and Modelling   Dr. David J GreavesSystem on Chip Design and Modelling   Dr. David J Greaves
System on Chip Design and Modelling Dr. David J GreavesSatya Harish
 
Resume Aden bahdon
Resume Aden bahdonResume Aden bahdon
Resume Aden bahdonAden Bahdon
 
Space Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolledSpace Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolledSpace Codesign
 
Medea: Scheduling of Long Running Applications in Shared Production Clusters
Medea: Scheduling of Long Running Applications in Shared Production ClustersMedea: Scheduling of Long Running Applications in Shared Production Clusters
Medea: Scheduling of Long Running Applications in Shared Production ClustersPanagiotis Garefalakis
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringHeiko Koziolek
 

Similar to Rsm Refactor April 2011 (20)

CAOS: A CAD Framework for FPGA-Based Systems
CAOS: A CAD Framework for FPGA-Based SystemsCAOS: A CAD Framework for FPGA-Based Systems
CAOS: A CAD Framework for FPGA-Based Systems
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Towards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelTowards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component Model
 
Prasad_CTP
Prasad_CTPPrasad_CTP
Prasad_CTP
 
3DD 1e Laura
3DD 1e Laura3DD 1e Laura
3DD 1e Laura
 
System Architecture Exploration Training Class
System Architecture Exploration Training ClassSystem Architecture Exploration Training Class
System Architecture Exploration Training Class
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
 
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EEA Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
 
C++ N Pv2
C++ N Pv2C++ N Pv2
C++ N Pv2
 
UIC Thesis Candiloro
UIC Thesis CandiloroUIC Thesis Candiloro
UIC Thesis Candiloro
 
Webinar on radar
Webinar on radarWebinar on radar
Webinar on radar
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
System on Chip Design and Modelling Dr. David J Greaves
System on Chip Design and Modelling   Dr. David J GreavesSystem on Chip Design and Modelling   Dr. David J Greaves
System on Chip Design and Modelling Dr. David J Greaves
 
Resume Aden bahdon
Resume Aden bahdonResume Aden bahdon
Resume Aden bahdon
 
Space Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolledSpace Codesign CMC Microsystems Webinar 20150205 unrolled
Space Codesign CMC Microsystems Webinar 20150205 unrolled
 
Sdlc
SdlcSdlc
Sdlc
 
Medea: Scheduling of Long Running Applications in Shared Production Clusters
Medea: Scheduling of Long Running Applications in Shared Production ClustersMedea: Scheduling of Long Running Applications in Shared Production Clusters
Medea: Scheduling of Long Running Applications in Shared Production Clusters
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
 
RAMP_FINAL_ppt
RAMP_FINAL_pptRAMP_FINAL_ppt
RAMP_FINAL_ppt
 
Software Development
Software DevelopmentSoftware Development
Software Development
 

Recently uploaded

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Rsm Refactor April 2011

  • 1. RSM Refactor (Phase 1) Refactor - Code refactoring is "a disciplined way to restructure code",[1] undertaken in order to improve some of the nonfunctional attributes of the software. – Wikipedia.com Project goals Clean up the code Restructure into stronger object oriented model Change No Functionality
  • 2. Team Project lead – Joseph Park Core Developers Fahmida Khatun Charles Haynes Randy Vanzee Additional development and consulting staff Veera Karri Raul Novoa Eric Flaig Wasantha Lal Ruben Arteaga Clay Brown Sharika Senarath Michael Martin (USACE)
  • 3. RSM Past Canal-Mesh Integration Benchmarks C++ Standard gcc justification WaterBody/ WaterMover class ENP Model Parallelization DSS I/O Vertical Soln SCCS PETSC Sparse Matrix Purify C++ standalone Documentation +6 + 2.3 Yrs + 4 Alpha controller Rulecurves PID controller hse FORTRAN – C++ Canal Algorithm XML CVS pseudocells + 3.2 Yrs 1998 1997 1999 2000 2002 2001 8/96 1996 Exception handling Console logging Basin WB Bugzilla Trigger Module Assessor MSE Network WCU Assessors Fuzzy control pseudocell hub WM control MSE User controller GLPK +7.7 HPMs Special Assess Iterations WMM Assess WCU Profiler Basins EAA Linked Basins/ WMM Assessors .dtd version stage based LGMRES ORM refactor Canal decouple STA WQ 2003 2004 2005 2010 2006 2007 2008 2009
  • 4.
  • 6. Improvement of model functions
  • 7. Incorporation of new technologies+ Model Objective C++ Coding Standard RSM Refactor
  • 8. July 2009 Proposed RSM Developments (& Status) HSE Kernel† 1. Investigate replacement of PETSC with internal GMRES solver. (IML++ solver was fully integrated & tested with GladesLECSA model in 2010. See next slide.) 2. Evaluation and enhancement of watermover Jacobians (Current). † This does not directly address or design a solution for overland flow (2D) stability, or reformulation of the diffusion framework with the addition of inertia.
  • 9. IML++ Analysis - LGMRES Implementation & testing of IML++ found that in comparison to PETSC, runtimes were slower and waterbudget residuals higher for GladesLECSA models. However: it led to a better understanding of the LGMRES algorithm and through exhaustive testing resulted in the adoption of PETSC LGMRES with Kyrlov subspace restart parameterisations that: 1. Significantly reduced model runtimes 2. Give modelers control over solution tolerance / runtime tradeoff
  • 10. July 2009 Proposed RSM Developments (& Status) RSM Refactor 1. Assess current code-base and class hierarchy. (2010) 2. Get Modeler input to identify needed and superfluous waterbodies, watermovers and functions. (2010) 3. Develop RSM Coding Standard. (2010) 4. Implement code cleanup based on Modeler criteria. (2011) 5. Assess code adherence to RSM coding standards. (2010) 6. Code refactor to correct deviations from RSM coding standards. (2011) 7. Assess functional integration of modules (HPMs, Trigger… etc.) (Future) 8. Refactor identified modules to uniform HSE/MSE integration standards. (Future)
  • 11. Bugzilla 2173 – RSM Refactor A holistic cleanup and review of the RSM/HSE code base has not been conducted. There are varying styles and formats across the code-base which present barriers to assimilation by new developers and support by maintainers. There also exist sections of dead code, unnecessary header file dependencies and defunct benchmarks. The Model Development Leads recommend: 1. Unifying the code-base with a coherent set of standards 2. Cleaning up dead code and benchmarks 3. Reducing header file dependencies Project Goals 1. Code-base will be unified with a common look-and-feel 2. Source image will be reduced in size and complexity as header dependencies are removed 3. The pool of RSM developers will be expanded 4. No functional changes to model I/O, behavior or performance
  • 12. RSM Centric C++ Coding Standard Version 1.1 February 24, 2011 Technical Committee Joseph Park Randy van Zee Charles Haynes The Coding Standard emphasized consistency, adherence to C++ standards and the reduction of header file dependencies.
  • 13. RSM Refactor Project Documentation SVN: svn://dcluster1/rsm/RSM-Refactor-Docs Web: http://dcluster2/viewvc/rsm/RSM-Refactor-Docs RSM-Refactor-Docs/ acceptanceTesting/ - Model Implementation Validation analysis/ - Code Analysis Tools and Results codeReviews/ - Peer Review Comments designData/ - Model Functional Design Criteria designGuide/ - Coding Standard & Rules status/ - Peer Review Spreadsheet & Changes
  • 14. RSM Refactor Results 122 Files Removed 600+ Files Edited & Reviewed Header File Dependencies Significantly Reduced (makefile dependencies reduced by a factor of ~2.5) Consistent Code Format & Comments Doxygen Comment Strings No Change in Model Implementation Performance 4 Benchmarks Reactivated 7 Benchmarks Depracated Multi-process builds now supported at the top level directory
  • 15. What’s next? Development tasks Upgrading the C++ compiler to the latest GNU compiler suite Further conversion of coding constructs towards object oriented design and methods Reduce redundant code Multi-process the benchmarks Create application unit testing environment Parallelize the code in a cluster friendly way Explore coherent shared memory solutions Create an API (Application Programmers Interface) Technical/Scientific tasks Upgrade the solver Parallelize functionality within the solver ILU preconditioner switch to JACOBI (ILU will not work in parallel)?