Hadronic Code Maintenance: Summary John Apostolakis.

Slides:



Advertisements
Similar presentations
1 Use Cases and Scenarios Scenario 1. Get the passenger’s ticket or record locator 1. Locate the passenger’s reservation 2. Is this the right passenger,
Advertisements

Programming Types of Testing.
Chapter 2.
Turning Eclipse Against Itself: Finding Errors in Eclipse Sources Benjamin Livshits Stanford University.
Chapter 14 Chapter 14: Server Monitoring and Optimization.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Project Catalogue. DAIMIHenrik Bærbak Christensen2 building stuff Problem: –task X is slow/cumbersome/prone to errors in your organization Hypothesis:
Luciano Pandola, INFN Gran Sasso Luciano Pandola INFN Gran Sasso Zaragoza, September 15 th, 2005 Geant4 and the underground physics community... (part.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 18 Maintaining.
Trigger and online software Simon George & Reiner Hauser T/DAQ Phase 1 IDR.
1 Joe Meehean. 2 Testing is the process of executing a program with the intent of finding errors. -Glenford Myers.
Lesson Objectives To understand the difference between RAM and ROM
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
IPortfolio assignment Mandatory Unit evidence. Centres may use some or all of these activities or some of their own devising to help candidates complete.
Contren Connect An Interactive Online Construction Training Program.
Summary of Parallel Session 3A : Hadronic Validation J. Yarba Fermilab 17th Geant4 Collaboration Workshop 9/14/
BTEC IT Unit 02 Lesson 07 Utility Software Mr C Johnston ICT Teacher
Maintaining Information Systems Modern Systems Analysis and Design.
Identifying Reasons for Software Changes Using Historic Databases The CISC 864 Analysis By Lionel Marks.
Design Development Image credit:
Chapter 4: Overview of Preventive Maintenance
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
End HomeWelcome! The Software Development Process.
Hadronic Models Problems, Progress and Plans Gunter Folger Geant4 Workshop, Lisbon 2006.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Event Management & ITIL V3
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 13 Post-Implementation Training.
Summary of Functions Coordinator of the physics lists working group in Geant4 and contributor to physics lists. (20%) Developer of Geant4 hadronic physics,
Building Quality into Web Applications - Meeting the Challenges of Testing and Usability Paula Duchnowski CQA, CSTE (608)
Use of Coverity & Valgrind in Geant4 Gabriele Cosmo.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Chapter 2: Memory.
T Iteration Demo Group name [PP|I1|I2] Iteration
TOPIC : Introduction to Compression Techniques UNIT 5 : BIST and BIST Architectures Module 5.4 Compression Techniques.
High Speed Digital Systems Lab. Agenda  High Level Architecture.  Part A.  DSP Overview. Matrix Inverse. SCD  Verification Methods. Verification Methods.
T Project Review (Template for PI and I1 phases) Group name [PI|I1] Phase
Analysis trains – Status & experience from operation Mihaela Gheata.
Sadegh Aliakbary Sharif University of Technology Spring 2011.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Using Dynamic Compilers for Software Testing Ben Breech Lori Pollock John Cavazos.
T Iteration Demo Group name [PP|I1|I2] Iteration
G4 Users Workshop, 2009/10/17V. Daniel Elvira1 Summary of Geant4 Computing Performance Activities V. Daniel Elvira (Fermilab) for the G4 Users and Performance.
Activity 1 Review the work from last lesson so that you can explain the following: -What is the purpose of a CPU. -What steps does the CPU take to process.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Data processing Offline review Feb 2, Productions, tools and results Three basic types of processing RAW MC Trains/AODs I will go through these.
Status of Hadronic Validation Dennis Wright 6 October 2010.
Java to C++: What would be needed ? Norman Graf (SLAC) ILC-CLIC Software, CERN May 28, 2009.
Position Papers Writing Today Chapter 11. Engaging With the ideas of others Purpose: Purpose: To explain both sides of a controversy To explain both sides.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks EGEE Operations: Evolution of the Role of.
GCSE Computing: A451 Computer Systems & Programming Topic 3 Software System Software (1) The Operating System.
Grant Writing for Digital Projects September 2012 IODE Project Office IODE Project Office Oostende, Belgium Oostende, Belgium Sustainability and.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 testing and installation 1 for testing you need: test data and test cases test plans and.
Starter To complement our notes and learning from last lesson (Topic 10 Introducing Large ICT Systems: Features of Large ICT Systems), fold your piece.
Improve Embedded System Stability and Performance through Memory Analysis Tools Bill Graham, Product Line Manager Development Tools November 14, 2006.
System Software (1) The Operating System
CPSC 872 John D. McGregor Session 31 This is it..
Multi-threading and other parallelism options J. Apostolakis Summary of parallel session. Original title was “Technical aspects of proposed multi-threading.
Using Ada-C/C++ Changer as a Converter Automatically convert to C/C++ to reuse or redeploy your Ada code Eliminate the need for a costly and.
Architecture & System Performance
Architecture & System Performance
Kilohertz Decision Making on Petabytes
Designing Database Solutions for SQL Server
Maintaining Information Systems (SAD- 18)
Developing a Plan for Identifying Local Needs and Resources
Requirements Management - I
Developing a Plan for Identifying Local Needs and Resources
White Box testing & Inspections
Virtual Memory Use main memory as a “cache” for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs share main.
Unit 14 Emergency Planning IS 235
Presentation transcript:

Hadronic Code Maintenance: Summary John Apostolakis

Overview Experiences How: Methods and ideas What = Planning Presentation Mike Kelsey’s summarised experience from the major reengineering of the Bertini cascade Discussions On each approach and technical point

Experience and methods Methods used in the review / improvement of code modules Experiences Strengths & limitations of approaches / techniques Discussion topics Lessons Tools - old and new Ideas - brainstorming

Tasks and Priorities Needs: What is to be done Areas of concern Different experience of developers Common issues Establishing priorities Current plans (next 6-12 months) Next priorities First discussion

Types of Concerns Classes with very large methods ( e.g. > 1,000 lines) Code which has been copied and small changes made Code adapted from Fortran etc Using different utility classes ( vectors, particles, …) …

Tools for code improvement Bertini done "by-hand", Software (Eclipse has re-factoring tools, but not used) IgProf - memory and CPU profiler coming from CMS - finds memory leaks, memory churn. Experience For re-engineering, using it on unit tests is best!

Monitoring of results Checking large re-engineering or changes: Add code that dumps lots of state (eg by printing) check results before and after each change ANY changes of results are reason for review or rejecting the code changes. Use profiler (e.g. IgProf) with ‘big’ benchmarks, such as SimplifiedCalorimeter every ref tag One goal is to identify a list of models responsible for time, memory churn

Reducing memory churn Memory churn = repeated allocation and deallocation of memory (for the same code) Ideas for improving Use vector instead of vector as much as possible Pass by reference Consider using G4Allocator – to manage small objects

Next Areas to Improve Precompound large memory allocation seen from unit tests (priority to be confirmed) Bertini Most improvements already carried out De-excitation – evaporation Memory churn is significant (10s MB / 1k events) FTF Memory churn observed significant recent developments, large code changes / additions CHIPS Very long core methods – very hard to maintain in long term Edge physics models being re-engineered (quasi elastic,..)

Targets for improvement Using alternative classes for ‘standard’ methods is a real maintenance issue Extra code cost effort to maintain – if it can be ‘excused’ at all, it would need to have significant reasons; Move to full use G4 particle types, four-vectors, … in code which we maintain. How to find what is missing ? survey which parts do not use four-vectors, G4 particles, hadronic exception,.. “grep" for correct G4* classes/methods (will give us overview of what is not using, then discuss case by case)

Final remarks Code maintenance is important To improve performance (CPU, memory use) To make code more maintainable for the future (code that is unreadable by others will not survive in the long term.) Online notes of meeting Start an ongoing discussion on how to improve our code (not just today) Benefit from experience