Tool support for inspecting the code quality of HPC apps

Size: px
Start display at page:

Download "Tool support for inspecting the code quality of HPC apps"

Transcription

1 Tool support for inspecting the code quality of HPC apps Thomas Panas, Dan Quinlan Center for Applied Scientific Computing (CASC) Lawrence Livermore National Laboratory Richard Vuduc LLNL / Georgia Tech 3 rd Workshop on Software Engineering for HPC Apps

2 Research motivation and goals Context: HPC development is often ad hoc, not formal Unknown requirements at project start No training in (or time for) formal processes Developer or team may be sole customer initially Correctness and performance first, maintenance later Whether maintenance considered or not, codes have long lifetimes Goal: Communicate code quality unobtrusively Provide on-demand feedback to dev. team Integrate naturally into dev. process Use interactive visualization when appropriate Incorporate team-specific coding guidelines/requirements Panas, et al. - UCRL-PRES

3 ROSE-VA: A code quality inspection tool prototype Reports code quality metrics Maintainability Component reusability Software metrics Visualizes judiciously File or module coherence as static images Software architecture in interactive views Implemented using extensible tools ROSE: Source-to-source compiler for C, C++ (Fortran in progress) VizzAnalyzer / Vizz3D: Interactive software viz framework This talk: Overview, status, and example (SMG2000) Panas, et al. - UCRL-PRES

4 Architecture-level viz of call graph (SMG2k) Panas, et al. - UCRL-PRES

5 Architecture-level viz of call graph (SMG2k) Panas, et al. - UCRL-PRES

6 Categories of code quality information Simple statistics E.g., lines of code, global variable count, no. of security violations Context-insensitive, so displayed as text Coherence reports E.g., global variables and files in which they appear Shows simple contextual relationships Shown as text or 2-D static images Architecture-level information overviews E.g., module dependencies Visualized interactively, using physical metaphors Panas, et al. - UCRL-PRES

7 Sample application : SMG2k SMG2000: A semicoarsening multigrid benchmark C program from ASC Purple Benchmark suite ~46 KLOC in 5 modules and ~70 files Small but interesting example of one-shot app Intended for single-use Contains subset of hypre library, so should be well-structured Panas, et al. - UCRL-PRES

8 Simple statistics Global statistics Lines of code; abstract syntax tree (AST) statistics No. of files, types of files (e.g., source vs. header) No. and type of classes No. of function calls (static) Simple analysis summaries Security or API violations (e.g., sprintf, new-delete) Cyclomatic complexity per function or file Global variable analysis Cyclic dependencies Naming convention violations Degree of documentation Arithmetic complexity Panas, et al. - UCRL-PRES

9 Simple analysis results for SMG2k Analysis Security / API misuse Cyclomatic complexity per function Global variables LOC per function Cyclic file dependencies Naming convention violations Threshold 0 < 20 0 < # of violations Panas, et al. - UCRL-PRES

10 Coherence reporting Relationships between a few pieces of information, rendered in 2-D static images Example: Where are the global variables? And can we eliminate them? Relate files, global variable references, variable types (static vs. true global) Panas, et al. - UCRL-PRES

11 Panas, et al. - UCRL-PRES

12 Files Panas, et al. - UCRL-PRES

13 File-scoped global Panas, et al. - UCRL-PRES

14 True globals Panas, et al. - UCRL-PRES

15 Example: Source and header dependencies (File-include graph) Panas, et al. - UCRL-PRES

16 Architecture-level information overviews For viewing lots of information in context of software architecture Our approach: Interactive viz with natural metaphors Interactive 3-D view of graphs Islands (modules), cities (files), bulidings (functions) Example: Where is the code becoming complex? Large functions and modules? Cyclic module dependencies, based on call graph? Panas, et al. - UCRL-PRES

17 Classical call graph viz (SMG2K) Panas, et al. - UCRL-PRES

18 Architecture-level viz of call graph (SMG2K) Panas, et al. - UCRL-PRES

19 Architecture-level viz of call graph (SMG2K) Panas, et al. - UCRL-PRES

20 void P DE::Compute_Residuals () // The decision to implement the residual computation seperately is a design preference. if (DEBUG > 0) p rintf ("Compute Residuals! \n"); Residual = 0.0; double Scaling_Factor = 1.0 / (M esh_size * Mesh_Size) ; if (Problem_Dimension == 1) Residual (I) = R ight_hand_side (I) + Scaling_Factor * ( Solution (I+1) + Solution (I-1) * Solution (I) ); if (Problem_Dimension == 2) if (F ully_variational) Solution (I,J+1) + Solution (I-1,J-1) - Residual (I,J) = Right_Hand_Side (I,J) + Scaling_Factor * ( #ifdef GRAPHICS #endif Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I+1,J+1) + Solution (I-1,J+1) + Solution (I+1,J-1) * Solution (I,J) ); Residual (I,J) = Right_Hand_Side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) * Solution (I,J) ); Graphics_Object.setProperty(TOPLABEL,"Residual" ); Graphics_Object.setProperty(CONTSTYLE,2); Graphics_Object.setProperty(NSTEPS,10); Graphics_Object.contour(Residual); if (P roblem_dimension == 3) if (F ully_variational) Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( // Center face Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I+1,J+1,K) + Solution (I-1,J+1,K) + Solution (I+1,J-1,K) + Solution (I-1,J-1,K) + // Inner face Solution (I+1,J,K-1) + Solution (I-1,J,K-1) + Solution (I,J-1,K-1) + Solution (I,J+1,K-1) + Solution (I+1,J+1,K-1) + Solution (I-1,J+1,K-1) + Solution (I+1,J-1,K-1) + Solution (I-1,J-1,K-1) + // Outer face Solution (I+1,J,K+1) + Solution (I-1,J,K+1) + Solution (I,J-1,K+1) + Solution (I,J+1,K+1) + Solution (I+1,J+1,K+1) + Solution (I-1,J+1,K+1) + Solution (I+1,J-1,K+1) + Solution (I-1,J-1,K+1) + // Center point of Inner and Outer faces Solution (I,J,K-1) + Solution (I,J,K+1) - // Center point 26.0 * Solution (I,J,K) ); Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( if (DEBUG > 0) p rintf ("Leaving Compute Residuals! \n"); // Swap sign for test! // Residual = -Residual; Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I,J,K-1) + Solution (I,J,K+1) * Solution (I,J,K) ); void P DE::Compute_Residuals () // The decision to implement the residual computation seperately is a design preference. if (DEBUG > 0) p rintf ("Compute Residuals! \n"); Residual = 0.0; double Scaling_Factor = 1.0 / (M esh_size * Mesh_Size) ; if (Problem_Dimension == 1) Residual (I) = R ight_hand_side (I) + Scaling_Factor * ( (I,J+1) + Solution (I+1) + Solution (I-1) * Solution (I) ); if (Problem_Dimension == 2) if (F ully_variational) Solution (I-1,J-1) - Residual (I,J) = Right_Hand_Side (I,J) + Scaling_Factor * ( #ifdef GRAPHICS #endif Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution Solution (I+1,J+1) + Solution (I-1,J+1) + Solution (I+1,J-1) * Solution (I,J) ); Residual (I,J) = Right_Hand_Side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) * Solution (I,J) ); Graphics_Object.setProperty(TOPLABEL,"Residual" ); Graphics_Object.setProperty(CONTSTYLE,2); Graphics_Object.setProperty(NSTEPS,10); Graphics_Object.contour(Residual); if (P roblem_dimension == 3) if (F ully_variational) Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( // Center face Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I+1,J+1,K) + Solution (I-1,J+1,K) + Solution (I+1,J-1,K) + Solution (I-1,J-1,K) + // Inner face Solution (I+1,J,K-1) + Solution (I-1,J,K-1) + Solution (I,J-1,K-1) + Solution (I,J+1,K-1) + Solution (I+1,J+1,K-1) + Solution (I-1,J+1,K-1) + Solution (I+1,J-1,K-1) + Solution (I-1,J-1,K-1) + // Outer face Solution (I+1,J,K+1) + Solution (I-1,J,K+1) + Solution (I,J-1,K+1) + Solution (I,J+1,K+1) + Solution (I+1,J+1,K+1) + Solution (I-1,J+1,K+1) + Solution (I+1,J-1,K+1) + Solution (I-1,J-1,K+1) + // Center point of Inner and Outer faces Solution (I,J,K-1) + Solution (I,J,K+1) - // Center point 26.0 * Solution (I,J,K) ); Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( if (DEBUG > 0) p rintf ("Leaving Compute Residuals! \n"); // Swap sign for test! // Residual = -Residual; Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I,J,K-1) + Solution (I,J,K+1) * Solution (I,J,K) ); Implementation: ROSE-VA combines compiler & viz tools parse: ROSE analyze: ROSE visualize: Vizz3D Source Code Source Code Main() asdf sdfs; sdfs Asdfs Main() asdf sdfs; sdfs Asdfs Panas, et al. - UCRL-PRES

21 ROSE-VA combines compiler & viz tools parse: ROSE Source Code void P DE::Compute_Residuals () // The decision to implement the residual computation seperately is a design preference. if (DEBUG > 0) p rintf ("Compute Residuals! \n"); analyze: ROSE visualize: Vizz3D Source Code void P DE::Compute_Residuals () // The decision to implement the residual computation seperately is a design preference. if (DEBUG > 0) p rintf ("Compute Residuals! \n"); Residual = 0.0; Residual = 0.0; double S caling_factor = 1.0 / ( M esh_size * Mesh_Size) ; if (P roblem_dimension == 1) Residual (I) = R ight_hand_side (I) + Scaling_Factor * ( Solution (I+1) + Solution (I-1) * Solution (I) ); if (Problem_Dimension == 2) if (F ully_variational) Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) + Solution (I+1,J+1) + Solution (I-1,J+1) + Solution (I+1,J-1) + Solution (I-1,J-1) 8.0 * Solution (I,J) ); Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) * Solution (I,J) ); #ifdef GRAPHICS G raphics_object.setproperty(toplabel,"residual " ); Graphics_Object.setProperty(CONTSTYLE,2); Graphics_Object.setProperty(NSTEPS,10); G raphics_object.contour(residual); #e ndif if (P roblem_dimension == 3) if (F ully_variational ) Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( // Center face Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I+1,J+1,K) + Solution (I-1,J+1,K) + Solution (I+1,J-1,K) + Solution (I-1,J-1,K) + // Inner face Solution (I+1,J,K-1) + Solution (I-1,J,K-1) + Solution (I,J-1,K-1) + Solution (I,J+1,K-1) + Solution (I+1,J+1,K-1) + Solution (I-1,J+1,K-1) + Solution (I+1,J-1,K-1) + Solution (I-1,J-1,K-1) + // Outer face Solution (I+1,J,K+1) + Solution (I-1,J,K+1) + Solution (I,J-1,K+1) + Solution (I,J+1,K+1) + Solution (I+1,J+1,K+1) + Solution (I-1,J+1,K+1) + Solution (I+1,J-1,K+1) + Solution (I-1,J-1,K+1) + // Center point of Inner and Outer faces Solution (I,J,K-1) + Solution (I,J,K+1) // Center point 26.0 * Solution (I,J,K) ); Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I,J,K-1) + Solution (I,J,K+1) * Solution (I,J,K) ); double S caling_factor = 1.0 / ( M esh_size * Mesh_Size) ; if (P roblem_dimension == 1) Residual (I) = R ight_hand_side (I) + Scaling_Factor * ( Solution (I+1) + Solution (I-1) * Solution (I) ); if (Problem_Dimension == 2) if (F ully_variational) Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) + Solution (I+1,J+1) + Solution (I-1,J+1) + Solution (I+1,J-1) + Solution (I-1,J-1) 8.0 * Solution (I,J) ); Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) * Solution (I,J) ); #ifdef GRAPHICS G raphics_object.setproperty(toplabel,"residual " ); Graphics_Object.setProperty(CONTSTYLE,2); Graphics_Object.setProperty(NSTEPS,10); G raphics_object.contour(residual); #e ndif if (P roblem_dimension == 3) if (F ully_variational ) Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( // Center face Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I+1,J+1,K) + Solution (I-1,J+1,K) + Solution (I+1,J-1,K) + Solution (I-1,J-1,K) + // Inner face Solution (I+1,J,K-1) + Solution (I-1,J,K-1) + Solution (I,J-1,K-1) + Solution (I,J+1,K-1) + Solution (I+1,J+1,K-1) + Solution (I-1,J+1,K-1) + Solution (I+1,J-1,K-1) + Solution (I-1,J-1,K-1) + // Outer face Solution (I+1,J,K+1) + Solution (I-1,J,K+1) + Solution (I,J-1,K+1) + Solution (I,J+1,K+1) + Solution (I+1,J+1,K+1) + Solution (I-1,J+1,K+1) + Solution (I+1,J-1,K+1) + Solution (I-1,J-1,K+1) + // Center point of Inner and Outer faces Solution (I,J,K-1) + Solution (I,J,K+1) // Center point 26.0 * Solution (I,J,K) ); Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I,J,K-1) + Solution (I,J,K+1) * Solution (I,J,K) ); if (DEBUG > 0) p rintf ("Leaving Compute Residuals! \n"); if (DEBUG > 0) p rintf ("Leaving Compute Residuals! \n"); // Swap sign for test! // Residual = -Residual; // Swap sign for test! // Residual = -Residual; Main() asdf sdfs; sdfs Asdfs Main() asdf sdfs; sdfs Asdfs Panas, et al. - UCRL-PRES

22 ROSE-VA combines compiler & viz tools parse: ROSE Source Code void P DE::Compute_Residuals () // The decision to implement the residual computation seperately is a design preference. if (DEBUG > 0) p rintf ("Compute Residuals! \n"); visualize: Vizz3D analyze: ROSE Source Code void P DE::Compute_Residuals () // The decision to implement the residual computation seperately is a design preference. if (DEBUG > 0) p rintf ("Compute Residuals! \n"); Residual = 0.0; Residual = 0.0; double S caling_factor = 1.0 / ( M esh_size * Mesh_Size) ; if (P roblem_dimension == 1) Residual (I) = R ight_hand_side (I) + Scaling_Factor * ( Solution (I+1) + Solution (I-1) * Solution (I) ); if (Problem_Dimension == 2) if (F ully_variational) Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) + Solution (I+1,J+1) + Solution (I-1,J+1) + Solution (I+1,J-1) + Solution (I-1,J-1) 8.0 * Solution (I,J) ); Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) * Solution (I,J) ); #ifdef GRAPHICS G raphics_object.setproperty(toplabel,"residual " ); Graphics_Object.setProperty(CONTSTYLE,2); Graphics_Object.setProperty(NSTEPS,10); G raphics_object.contour(residual); #e ndif if (P roblem_dimension == 3) if (F ully_variational ) Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( // Center face Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I+1,J+1,K) + Solution (I-1,J+1,K) + Solution (I+1,J-1,K) + Solution (I-1,J-1,K) + // Inner face Solution (I+1,J,K-1) + Solution (I-1,J,K-1) + Solution (I,J-1,K-1) + Solution (I,J+1,K-1) + Solution (I+1,J+1,K-1) + Solution (I-1,J+1,K-1) + Solution (I+1,J-1,K-1) + Solution (I-1,J-1,K-1) + // Outer face Solution (I+1,J,K+1) + Solution (I-1,J,K+1) + Solution (I,J-1,K+1) + Solution (I,J+1,K+1) + Solution (I+1,J+1,K+1) + Solution (I-1,J+1,K+1) + Solution (I+1,J-1,K+1) + Solution (I-1,J-1,K+1) + // Center point of Inner and Outer faces Solution (I,J,K-1) + Solution (I,J,K+1) // Center point 26.0 * Solution (I,J,K) ); Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I,J,K-1) + Solution (I,J,K+1) * Solution (I,J,K) ); double S caling_factor = 1.0 / ( M esh_size * Mesh_Size) ; if (P roblem_dimension == 1) Residual (I) = R ight_hand_side (I) + Scaling_Factor * ( Solution (I+1) + Solution (I-1) * Solution (I) ); if (Problem_Dimension == 2) if (F ully_variational) Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) + Solution (I+1,J+1) + Solution (I-1,J+1) + Solution (I+1,J-1) + Solution (I-1,J-1) 8.0 * Solution (I,J) ); Residual (I,J) = R ight_hand_side (I,J) + Scaling_Factor * ( Solution (I+1,J) + Solution (I-1,J) + Solution (I,J-1) + Solution (I,J+1) * Solution (I,J) ); #ifdef GRAPHICS G raphics_object.setproperty(toplabel,"residual " ); Graphics_Object.setProperty(CONTSTYLE,2); Graphics_Object.setProperty(NSTEPS,10); G raphics_object.contour(residual); #e ndif if (P roblem_dimension == 3) if (F ully_variational ) Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( // Center face Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I+1,J+1,K) + Solution (I-1,J+1,K) + Solution (I+1,J-1,K) + Solution (I-1,J-1,K) + // Inner face Solution (I+1,J,K-1) + Solution (I-1,J,K-1) + Solution (I,J-1,K-1) + Solution (I,J+1,K-1) + Solution (I+1,J+1,K-1) + Solution (I-1,J+1,K-1) + Solution (I+1,J-1,K-1) + Solution (I-1,J-1,K-1) + // Outer face Solution (I+1,J,K+1) + Solution (I-1,J,K+1) + Solution (I,J-1,K+1) + Solution (I,J+1,K+1) + Solution (I+1,J+1,K+1) + Solution (I-1,J+1,K+1) + Solution (I+1,J-1,K+1) + Solution (I-1,J-1,K+1) + // Center point of Inner and Outer faces Solution (I,J,K-1) + Solution (I,J,K+1) // Center point 26.0 * Solution (I,J,K) ); Residual (I,J,K) = Right_Hand_Side (I,J,K) + S caling_factor * ( Solution (I+1,J,K) + Solution (I-1,J,K) + Solution (I,J-1,K) + Solution (I,J+1,K) + Solution (I,J,K-1) + Solution (I,J,K+1) * Solution (I,J,K) ); if (DEBUG > 0) p rintf ("Leaving Compute Residuals! \n"); if (DEBUG > 0) p rintf ("Leaving Compute Residuals! \n"); // Swap sign for test! // Residual = -Residual; // Swap sign for test! // Residual = -Residual; Main() asdf sdfs; sdfs Asdfs Main() asdf sdfs; sdfs Asdfs Panas, et al. - UCRL-PRES

23 ROSE-VA combines compiler & viz tools ROSE: An infrastructure for building customized sourceto-source tools Full open-source compiler with basic analysis Support for C, C++ (Fortran 90 in progress) Targets non-compiler audience VizzAnalyzer / Vizz3D: Graph visualization framework Software analysis + information visualization Plug-in architecture Babel connects ROSE (C++) and VA (Java) Panas, et al. - UCRL-PRES

24 Re-engineering example: Refactoring ROSE Panas, et al. - UCRL-PRES

25 Re-engineering example: Refactoring ROSE Panas, et al. - UCRL-PRES

26 Summary and future work Prototype analysis and viz tool Targets understanding, maintenance, and re-engineering tasks Flexible, unobtrusive, developer-driven usage HPC-specific metrics and analyses? Utility? Next steps: External evaluation + custom analyses Applying to larger applications + specific coding guidelines Specifying and finding patterns Including dynamic information (HPCToolkit, Open SpeedShop) Mining and incorporating source-repository Adding more metrics, e.g., productivity (size, time), defect density Panas, et al. - UCRL-PRES

27 End Demo?

28 Collaborators DOE Laboratories: LLNL ( A-Div (Kull), B-Div (ALE3D, Ares), Overture, Babel) ANL (Paul Hovland) ORNL DOE Research Programs: PERC (SLAC, TSTT, C/C++ Optimization, UT, ANL, Dyninst Binary Rewriting) Collaborations: Texas A&M (Lawrence Rauchwerger, Bjarne Stroustrup) Rice University (Ken Kennedy, John Mellnor-Crummey) IBM Haifa (Shmuel Ur) Vienna University of Technology (Markus Schordan) University of Tennessee (Jack Dongarra s group) Cornell University (Sally McKee, Brian White) Indiana University (Andrew Lumsdaine, Jeremiah Willcock) University of California at Berkeley (UPC, Kathy Yelick) University of Oslo (Hans, Andreas, Are) University of Maryland (Jeff Hollingsworth, Chadd Williams) Friedrich-Alexander-University Erlangen-Nuremberg (Markus Kowarschik, Nils Thurey) University of Texas at Austin (Calvin Lin) USCD (Scott Baden) London Imperial College (Olav Beckman, Paul Kelly) UC Davis (Su, Bishop) Panas, et al. - UCRL-PRES

ROSE User Manual: A Tool for Building Source-to-Source Translators Draft User Manual (version )

ROSE User Manual: A Tool for Building Source-to-Source Translators Draft User Manual (version ) ROSE User Manual: A Tool for Building Source-to-Source Translators Draft User Manual (version.9.9.68) Daniel Quinlan, Chunhua Liao, Thomas Panas, Robb Matzke, Markus Schordan, Rich Vuduc, and Qing Yi Lawrence

More information

CIRM - Dynamic Error Detection

CIRM - Dynamic Error Detection CIRM - Dynamic Error Detection Peter Pirkelbauer Center for Applied Scientific Computing (CASC) Lawrence Livermore National Laboratory This work was funded by the Department of Defense and used elements

More information

D-TEC DSL Technology for Exascale Computing

D-TEC DSL Technology for Exascale Computing D-TEC DSL Technology for Exascale Computing Progress Report: March 2013 DOE Office of Science Program: Office of Advanced Scientific Computing Research ASCR Program Manager: Dr. Sonia Sachs 1 Introduction

More information

Reusable, Generic Compiler Analyses and Transformations

Reusable, Generic Compiler Analyses and Transformations Reusable, Generic Compiler Analyses and Transformations Jeremiah Willcock, Andrew Lumsdaine, and Daniel Quinlan Indiana University and Lawrence Livermore National Laboratory This work performed under the

More information

A Strategy for Addressing the Needs of Advanced Scientific Computing Using Eclipse as a Parallel Tools Platform 1

A Strategy for Addressing the Needs of Advanced Scientific Computing Using Eclipse as a Parallel Tools Platform 1 A Strategy for Addressing the Needs of Advanced Scientific Computing Using Eclipse as a Parallel Tools Platform Gregory R. Watson Craig E. Rasmussen Los Alamos National Laboratory P.O. Box 1663, MS B287

More information

ROSE-CIRM Detecting C-Style Errors in UPC Code

ROSE-CIRM Detecting C-Style Errors in UPC Code ROSE-CIRM Detecting C-Style Errors in UPC Code Peter Pirkelbauer 1 Chunhuah Liao 1 Thomas Panas 2 Daniel Quinlan 1 1 2 Microsoft Parallel Data Warehouse This work was funded by the Department of Defense

More information

Introduction to Programming

Introduction to Programming Introduction to Programming session 3 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2010 These slides are created using Deitel s slides Sahrif University of Technology Outlines

More information

Understanding Executables Working Group

Understanding Executables Working Group Center for Scalable Application Development Software Understanding Executables Working Group CScADS Petascale Performance Tools Workshop, July 2007 1 Working Group Members Drew Bernat Robert Cohn Mike

More information

Scientific Computing Without the Command Line: Enabling Any HPC Code to Run Anywhere through a Web Interface with the Agave API

Scientific Computing Without the Command Line: Enabling Any HPC Code to Run Anywhere through a Web Interface with the Agave API Scientific Computing Without the Command Line: Enabling Any HPC Code to Run Anywhere through a Web Interface with the Agave API Kathy Traxler, Steven R. Brandt Department of Computer Science Center for

More information

CS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today

CS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today Graduate Students and Super Undergraduates... CS 553: Algorithmic Language Compilers (PLDI) look for other sources of information make decisions, because all research problems are under-specified evaluate

More information

Metadata for Component Optimisation

Metadata for Component Optimisation Metadata for Component Optimisation Olav Beckmann, Paul H J Kelly and John Darlington ob3@doc.ic.ac.uk Department of Computing, Imperial College London 80 Queen s Gate, London SW7 2BZ United Kingdom Metadata

More information

Autotuning (2.5/2): TCE & Empirical compilers

Autotuning (2.5/2): TCE & Empirical compilers Autotuning (2.5/2): TCE & Empirical compilers Prof. Richard Vuduc Georgia Institute of Technology CSE/CS 8803 PNA: Parallel Numerical Algorithms [L.19] Tuesday, March 11, 2008 1 Today s sources CS 267

More information

Presentations: Jack Dongarra, University of Tennessee & ORNL. The HPL Benchmark: Past, Present & Future. Mike Heroux, Sandia National Laboratories

Presentations: Jack Dongarra, University of Tennessee & ORNL. The HPL Benchmark: Past, Present & Future. Mike Heroux, Sandia National Laboratories HPC Benchmarking Presentations: Jack Dongarra, University of Tennessee & ORNL The HPL Benchmark: Past, Present & Future Mike Heroux, Sandia National Laboratories The HPCG Benchmark: Challenges It Presents

More information

The Eclipse Parallel Tools Platform

The Eclipse Parallel Tools Platform May 1, 2012 Toward an Integrated Development Environment for Improved Software Engineering on Crays Agenda 1. What is the Eclipse Parallel Tools Platform (PTP) 2. Tour of features available in Eclipse/PTP

More information

Evolution of the ATLAS PanDA Workload Management System for Exascale Computational Science

Evolution of the ATLAS PanDA Workload Management System for Exascale Computational Science Evolution of the ATLAS PanDA Workload Management System for Exascale Computational Science T. Maeno, K. De, A. Klimentov, P. Nilsson, D. Oleynik, S. Panitkin, A. Petrosyan, J. Schovancova, A. Vaniachine,

More information

Dynamic Selection of Auto-tuned Kernels to the Numerical Libraries in the DOE ACTS Collection

Dynamic Selection of Auto-tuned Kernels to the Numerical Libraries in the DOE ACTS Collection Numerical Libraries in the DOE ACTS Collection The DOE ACTS Collection SIAM Parallel Processing for Scientific Computing, Savannah, Georgia Feb 15, 2012 Tony Drummond Computational Research Division Lawrence

More information

An Evaluation of Domain-Specific Language Technologies for Code Generation

An Evaluation of Domain-Specific Language Technologies for Code Generation An Evaluation of Domain-Specific Language Technologies for Code Generation Christian Schmitt, Sebastian Kuckuk, Harald Köstler, Frank Hannig, Jürgen Teich Hardware/Software Co-Design, System Simulation,

More information

Making a Case for a Green500 List

Making a Case for a Green500 List Making a Case for a Green500 List S. Sharma, C. Hsu, and W. Feng Los Alamos National Laboratory Virginia Tech Outline Introduction What Is Performance? Motivation: The Need for a Green500 List Challenges

More information

Component Architectures

Component Architectures Component Architectures Rapid Prototyping in a Networked Environment Ken Kennedy Rice University http://www.cs.rice.edu/~ken/presentations/lacsicomponentssv01.pdf Participants Ruth Aydt Bradley Broom Zoran

More information

Ilya Lashuk, Merico Argentati, Evgenii Ovtchinnikov, Andrew Knyazev (speaker)

Ilya Lashuk, Merico Argentati, Evgenii Ovtchinnikov, Andrew Knyazev (speaker) Ilya Lashuk, Merico Argentati, Evgenii Ovtchinnikov, Andrew Knyazev (speaker) Department of Mathematics and Center for Computational Mathematics University of Colorado at Denver SIAM Conference on Parallel

More information

Java Based Open Architecture Controller

Java Based Open Architecture Controller Preprint UCRL-JC- 137092 Java Based Open Architecture Controller G. Weinet? This article was submitted to World Automation Conference, Maui, HI, June 1 I- 16,200O U.S. Department of Energy January 13,200O

More information

The Common Component Architecture: Building Frameworks for Computational Science

The Common Component Architecture: Building Frameworks for Computational Science The : Building Frameworks for Computational Science David E. Bernholdt Oak Ridge National Laboratory bernholdtde@ornl.gov http://www.cca-forum.org Work supported in part by the Scientific Discovery through

More information

Andrew V. Knyazev and Merico E. Argentati (speaker)

Andrew V. Knyazev and Merico E. Argentati (speaker) 1 Andrew V. Knyazev and Merico E. Argentati (speaker) Department of Mathematics and Center for Computational Mathematics University of Colorado at Denver 2 Acknowledgement Supported by Lawrence Livermore

More information

Title: ====== Open Research Compiler (ORC): Proliferation of Technologies and Tools

Title: ====== Open Research Compiler (ORC): Proliferation of Technologies and Tools Tutorial Proposal to Micro-36 Title: ====== Open Research Compiler (ORC): Proliferation of Technologies and Tools Abstract: ========= Open Research Compiler (ORC) has been well adopted by the research

More information

Eclipse-PTP: An Integrated Environment for the Development of Parallel Applications

Eclipse-PTP: An Integrated Environment for the Development of Parallel Applications Eclipse-PTP: An Integrated Environment for the Development of Parallel Applications Greg Watson (grw@us.ibm.com) Craig Rasmussen (rasmusen@lanl.gov) Beth Tibbitts (tibbitts@us.ibm.com) Parallel Tools Workshop,

More information

Application of KGen and KGen-kernel

Application of KGen and KGen-kernel Application of KGen and KGen-kernel Youngsung Kim and John Dennis Sep. 14, 2016 NCAR Contents Introduction KGen kernel in practice Optimization and Porting Validation, Test collection, Profiling, etc.

More information

VisIt: Visualization and Analysis using Python. VisIt developers from Brad Whitlock NNSA/ASC, Office of Science/SciDAC, Cyrus Harrison

VisIt: Visualization and Analysis using Python. VisIt developers from Brad Whitlock NNSA/ASC, Office of Science/SciDAC, Cyrus Harrison VisIt: Visualization and Analysis using Python Hank Childs VisIt developers from Brad Whitlock NNSA/ASC, Office of Science/SciDAC, Cyrus Harrison Office of Nuclear Energy/AFCI Presented at: SIAM CSE09

More information

Experience with Mixed MPVThreaded Programming Models

Experience with Mixed MPVThreaded Programming Models UCRL-JC-133213 PREPRINT Experience with Mixed MPVThreaded Programming Models J. May B.R. de Supinski This paper was prepared for submittal to the High Performance Scientific Computation with Applications

More information

UPC Performance Analysis Tool: Status and Plans

UPC Performance Analysis Tool: Status and Plans UPC Performance Analysis Tool: Status and Plans Professor Alan D. George, Principal Investigator Mr. Hung-Hsun Su, Sr. Research Assistant Mr. Adam Leko, Sr. Research Assistant Mr. Bryan Golden, Research

More information

What s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead

What s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead What s new in CDT 4.0 and beyond Doug Schaefer QNX Software Systems CDT Project Lead 2007 by QNX Software Systems; made available under the EPL v1.0 October 10, 2007 Where it all began From: "John Duimovich"

More information

Performance Tuning of Scientific Applications

Performance Tuning of Scientific Applications Performance Tuning of Scientific Applications David H Bailey, Lawrence Berkeley National Lab, USA (speaker) DHB s website: http://crd.lbl.gov/~dhbailey! 1 Why performance is important Highly-parallel scientific

More information

Eclipse Packaging Project

Eclipse Packaging Project Eclipse Packaging Project Document classification: Date: June 5, 2012 Abstract: This document contains the Release Review Documentation for the Eclipse Packaging Project (EPP). The 1.5.0 EPP release is

More information

Evolving HPCToolkit John Mellor-Crummey Department of Computer Science Rice University Scalable Tools Workshop 7 August 2017

Evolving HPCToolkit John Mellor-Crummey Department of Computer Science Rice University   Scalable Tools Workshop 7 August 2017 Evolving HPCToolkit John Mellor-Crummey Department of Computer Science Rice University http://hpctoolkit.org Scalable Tools Workshop 7 August 2017 HPCToolkit 1 HPCToolkit Workflow source code compile &

More information

NUIT Tech Talk Topics in Research Computing: XSEDE and Northwestern University Campus Champions

NUIT Tech Talk Topics in Research Computing: XSEDE and Northwestern University Campus Champions NUIT Tech Talk Topics in Research Computing: XSEDE and Northwestern University Campus Champions Pradeep Sivakumar pradeep-sivakumar@northwestern.edu Contents What is XSEDE? Introduction Who uses XSEDE?

More information

1. Describe History of C++? 2. What is Dev. C++? 3. Why Use Dev. C++ instead of C++ DOS IDE?

1. Describe History of C++? 2. What is Dev. C++? 3. Why Use Dev. C++ instead of C++ DOS IDE? 1. Describe History of C++? The C++ programming language has a history going back to 1979, when Bjarne Stroustrup was doing work for his Ph.D. thesis. One of the languages Stroustrup had the opportunity

More information

Towards Self-Verification in Finite Difference Code Generation

Towards Self-Verification in Finite Difference Code Generation Towards Self-Verification in Finite Difference Code Generation Jan Hückelheim 1, Ziqing Luo 2, Fabio Luporini 1,Navjot Kukreja 1, Michael Lange 1, Gerard Gorman 1, Stephen Siegel 2, Matthew Dwyer 3, Paul

More information

CS691/SC791: Parallel & Distributed Computing

CS691/SC791: Parallel & Distributed Computing CS691/SC791: Parallel & Distributed Computing Introduction to OpenMP 1 Contents Introduction OpenMP Programming Model and Examples OpenMP programming examples Task parallelism. Explicit thread synchronization.

More information

Power Constrained HPC

Power Constrained HPC http://scalability.llnl.gov/ Power Constrained HPC Martin Schulz Center or Applied Scientific Computing (CASC) Lawrence Livermore National Laboratory With many collaborators and Co-PIs, incl.: LLNL: Barry

More information

The Eclipse Modeling Framework and MDA Status and Opportunities

The Eclipse Modeling Framework and MDA Status and Opportunities The Eclipse Modeling Framework and MDA Status and Opportunities David Frankel Consulting df@davidfrankelconsulting.com www.davidfrankelconsulting.com Portions adapted from the book Model Driven Architecture:

More information

Adaptive Mesh Refinement in Titanium

Adaptive Mesh Refinement in Titanium Adaptive Mesh Refinement in Titanium http://seesar.lbl.gov/anag Lawrence Berkeley National Laboratory April 7, 2005 19 th IPDPS, April 7, 2005 1 Overview Motivations: Build the infrastructure in Titanium

More information

ISPW Meta-data + RDz APIs = Accelerated Developer Productivity

ISPW Meta-data + RDz APIs = Accelerated Developer Productivity RDz User/Customer Experience series ISPW Meta-data + RDz APIs = Accelerated Developer Productivity Jack Lema ISPW Benchmark Technologies August 3, 2010, 4:30 pm 5:30 pm Session 7608 Agenda Who I am / Who

More information

Mind Q Systems Private Limited

Mind Q Systems Private Limited Software Testing Tools Course Content for Online Training Manual Testing Introduction Introduction to software Testing Software Development Process Project Vs Product Objectives of Testing Testing Principals

More information

Perspectives form US Department of Energy work on parallel programming models for performance portability

Perspectives form US Department of Energy work on parallel programming models for performance portability Perspectives form US Department of Energy work on parallel programming models for performance portability Jeremiah J. Wilke Sandia National Labs Livermore, CA IMPACT workshop at HiPEAC Sandia National

More information

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

Grid Application Development Software

Grid Application Development Software Grid Application Development Software Department of Computer Science University of Houston, Houston, Texas GrADS Vision Goals Approach Status http://www.hipersoft.cs.rice.edu/grads GrADS Team (PIs) Ken

More information

Extended abstract. The Pivot: A brief overview

Extended abstract. The Pivot: A brief overview Extended abstract The Pivot: A brief overview Bjarne Stroustrup and Gabriel Dos Reis bs@cs.tamu.edu, gdr@cs.tamu.edu Abstract This paper introduces the Pivot, a general framework for the analysis and transformation

More information

ClearSpeed Visual Profiler

ClearSpeed Visual Profiler ClearSpeed Visual Profiler Copyright 2007 ClearSpeed Technology plc. All rights reserved. 12 November 2007 www.clearspeed.com 1 Profiling Application Code Why use a profiler? Program analysis tools are

More information

Eclipse Packaging Project

Eclipse Packaging Project Eclipse Packaging Project Document classification: Date: May 31, 2011 Abstract: This document contains the Release Review Documentation for the Eclipse Packaging Project (EPP). The 1.4.0 EPP release is

More information

Toward Instant Gradeification

Toward Instant Gradeification Toward Instant Gradeification Daniel M. Zimmerman, Joseph R. Kiniry and Fintan Fairmichael University of Washington Tacoma, USA dmz@acm.org IT University of Copenhagen, Denmark kiniry@acm.org University

More information

Functions BCA-105. Few Facts About Functions:

Functions BCA-105. Few Facts About Functions: Functions When programs become too large and complex and as a result the task of debugging, testing, and maintaining becomes difficult then C provides a most striking feature known as user defined function

More information

SeeCode A Code Review Plug-in for Eclipse

SeeCode A Code Review Plug-in for Eclipse SeeCode A Code Review Plug-in for Eclipse Moran Shochat, Orna Raz, Eitan Farchi IBM Labs in Haifa Outline Introduction SeeCode main features: Code Review Perspective Distributed Review Review Comments

More information

FY97 ICCS Prototype Specification

FY97 ICCS Prototype Specification FY97 ICCS Prototype Specification John Woodruff 02/20/97 DISCLAIMER This document was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government

More information

RedGRID: Related Works

RedGRID: Related Works RedGRID: Related Works Lyon, october 2003. Aurélien Esnard EPSN project (ACI-GRID PPL02-03) INRIA Futurs (ScAlApplix project) & LaBRI (UMR CNRS 5800) 351, cours de la Libération, F-33405 Talence, France.

More information

Programming in C. main. Level 2. Level 2 Level 2. Level 3 Level 3

Programming in C. main. Level 2. Level 2 Level 2. Level 3 Level 3 Programming in C main Level 2 Level 2 Level 2 Level 3 Level 3 1 Programmer-Defined Functions Modularize with building blocks of programs Divide and Conquer Construct a program from smaller pieces or components

More information

Combining NVIDIA Docker and databases to enhance agile development and optimize resource allocation

Combining NVIDIA Docker and databases to enhance agile development and optimize resource allocation Combining NVIDIA Docker and databases to enhance agile development and optimize resource allocation Chris Davis, Sophie Voisin, Devin White, Andrew Hardin Scalable and High Performance Geocomputation Team

More information

Agile Development

Agile Development Agile Development 12-04-2013 Many flavors: Waterfall, Spiral Rapid Application Development (DSDM) Xtreme Programming (XP, an agile methodology) Usability Engineering Model, Star Iteration is done throughout

More information

Cross-project defect prediction. Thomas Zimmermann Microsoft Research

Cross-project defect prediction. Thomas Zimmermann Microsoft Research Cross-project defect prediction Thomas Zimmermann Microsoft Research Upcoming Events ICSE 2010: http://www.sbs.co.za/icse2010/ New Ideas and Emerging Results ACM Student Research Competition (SRC) sponsored

More information

Tableau Desktop: Part 2

Tableau Desktop: Part 2 Tableau Desktop: Part 2 095205 Target Student Professionals in a variety of job roles who are currently using Tableau to perform numerical or general data analysis, visualization, and reporting, who now

More information

Scientific Computing

Scientific Computing Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

Coupling of Simulation Tools - Building Controls Virtual Test Bed Michael Wetter. August, 2010

Coupling of Simulation Tools - Building Controls Virtual Test Bed Michael Wetter. August, 2010 Acknowledgements Coupling of Simulation Tools - Building Controls Virtual Test Bed Michael Wetter Simulation Research Group Building Technologies Department Energy and Environmental Technologies Division

More information

Giridhar Ravipati University of Wisconsin, Madison. The Deconstruction of Dyninst: Part 1- the SymtabAPI

Giridhar Ravipati University of Wisconsin, Madison. The Deconstruction of Dyninst: Part 1- the SymtabAPI The Deconstruction of Dyninst Part 1: The SymtabAPI Giridhar Ravipati University of Wisconsin, Madison April 2007 Motivation Binary tools are increasingly common Two categories of operation Analysis :

More information

Analysis of Highly Correlated Datasets to Establish Processing-Structure-Property Relationships for Additively Manufactured Metals

Analysis of Highly Correlated Datasets to Establish Processing-Structure-Property Relationships for Additively Manufactured Metals Analysis of Highly Correlated Datasets to Establish Processing-Structure-Property Relationships for Additively Manufactured Metals Workshop on Predictive Theoretical and Computational Approaches for Additive

More information

Generation of High Performance Domain- Specific Languages from Component Libraries. Ken Kennedy Rice University

Generation of High Performance Domain- Specific Languages from Component Libraries. Ken Kennedy Rice University Generation of High Performance Domain- Specific Languages from Component Libraries Ken Kennedy Rice University Collaborators Raj Bandypadhyay Zoran Budimlic Arun Chauhan Daniel Chavarria-Miranda Keith

More information

Hierarchical Pointer Analysis

Hierarchical Pointer Analysis for Distributed Programs Amir Kamil and Katherine Yelick U.C. Berkeley August 23, 2007 1 Amir Kamil Background 2 Amir Kamil Hierarchical Machines Parallel machines often have hierarchical structure 4 A

More information

CS415 Compilers. Procedure Abstractions. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

CS415 Compilers. Procedure Abstractions. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University CS415 Compilers Procedure Abstractions These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Where are we? Well understood Engineering Source Code

More information

Using Cache Models and Empirical Search in Automatic Tuning of Applications. Apan Qasem Ken Kennedy John Mellor-Crummey Rice University Houston, TX

Using Cache Models and Empirical Search in Automatic Tuning of Applications. Apan Qasem Ken Kennedy John Mellor-Crummey Rice University Houston, TX Using Cache Models and Empirical Search in Automatic Tuning of Applications Apan Qasem Ken Kennedy John Mellor-Crummey Rice University Houston, TX Outline Overview of Framework Fine grain control of transformations

More information

CS415 Compilers Overview of the Course. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

CS415 Compilers Overview of the Course. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University CS415 Compilers Overview of the Course These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Critical Facts Welcome to CS415 Compilers Topics in the

More information

Parser Development for Overture Tools

Parser Development for Overture Tools Parser Development for Overture Tools http://www.overturetool.org Marcel Verhoef, 25 May 2008, Fourth Overture Workshop Abo Akademi University Turku - Finland Iteration One (2004) Pieter van der Spek (MSc

More information

Click to edit Master text styles

Click to edit Master text styles Frederik Weidemann TITEL bearbeiten Dr. Markus Schumacher Five years of ABAP TM -Code-Reviews A retrospective 2011 2012 Virtual Forge GmbH www.virtualforge.com All rights reserved. TITEL About bearbeiten

More information

Evaluation of sparse LU factorization and triangular solution on multicore architectures. X. Sherry Li

Evaluation of sparse LU factorization and triangular solution on multicore architectures. X. Sherry Li Evaluation of sparse LU factorization and triangular solution on multicore architectures X. Sherry Li Lawrence Berkeley National Laboratory ParLab, April 29, 28 Acknowledgement: John Shalf, LBNL Rich Vuduc,

More information

FACETs. Technical Report 05/19/2010

FACETs. Technical Report 05/19/2010 F3 FACETs Technical Report 05/19/2010 PROJECT OVERVIEW... 4 BASIC REQUIREMENTS... 4 CONSTRAINTS... 5 DEVELOPMENT PROCESS... 5 PLANNED/ACTUAL SCHEDULE... 6 SYSTEM DESIGN... 6 PRODUCT AND PROCESS METRICS...

More information

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process Objectives Chapter 19 Verification and Validation Assuring that a software system meets a user s need are to introduce software verification and validation (V&V) and to discuss the distinction between

More information

J2EE Development Best Practices: Improving Code Quality

J2EE Development Best Practices: Improving Code Quality Session id: 40232 J2EE Development Best Practices: Improving Code Quality Stuart Malkin Senior Product Manager Oracle Corporation Agenda Why analyze and optimize code? Static Analysis Dynamic Analysis

More information

<Insert Picture Here> Lustre Community

<Insert Picture Here> Lustre Community Lustre Community Dan Ferber Lustre Community Manager April 16, 2010 The following is intended to outline our general product direction. It is intended for information purposes only,

More information

Log System Based on Software Testing System Design And Implementation

Log System Based on Software Testing System Design And Implementation 4th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering (ICMMCCE 2015) Log System Based on Software Testing System Design And Implementation Yan Liu1, a, Dahai Jin1,

More information

LLNL Tool Components: LaunchMON, P N MPI, GraphLib

LLNL Tool Components: LaunchMON, P N MPI, GraphLib LLNL-PRES-405584 Lawrence Livermore National Laboratory LLNL Tool Components: LaunchMON, P N MPI, GraphLib CScADS Workshop, July 2008 Martin Schulz Larger Team: Bronis de Supinski, Dong Ahn, Greg Lee Lawrence

More information

Internet2 NLR Cisco TelePresence Cooperation: What s it mean (to me)?

Internet2 NLR Cisco TelePresence Cooperation: What s it mean (to me)? Internet2 NLR Cisco TelePresence Cooperation: What s it mean (to me)? Brent Sweeny, Indiana University, GRNOC, and NLR engineering Ben Fineman, Internet2 Main Points What is Cisco TelePresence anyway?

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer

Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer http://ewolff.com Why Microservices? Why Microservices? Strong modularization Replaceability Small units Sustainable Development

More information

Truffle A language implementation framework

Truffle A language implementation framework Truffle A language implementation framework Boris Spasojević Senior Researcher VM Research Group, Oracle Labs Slides based on previous talks given by Christian Wimmer, Christian Humer and Matthias Grimmer.

More information

Accelerating Double Precision FEM Simulations with GPUs

Accelerating Double Precision FEM Simulations with GPUs Accelerating Double Precision FEM Simulations with GPUs Dominik Göddeke 1 3 Robert Strzodka 2 Stefan Turek 1 dominik.goeddeke@math.uni-dortmund.de 1 Mathematics III: Applied Mathematics and Numerics, University

More information

An Empirical Study of PHP Feature Usage: A Static Analysis Perspective

An Empirical Study of PHP Feature Usage: A Static Analysis Perspective An Empirical Study of PHP Feature Usage: A Static Analysis Perspective Mark Hills, Paul Klint, and Jurgen J. Vinju CWI, Software Analysis and Transformation (SWAT) ISSTA 2013 Lugano, Switzerland July 16-18,

More information

Acceleration of HPC applications on hybrid CPU-GPU systems: When can Multi-Process Service (MPS) help?

Acceleration of HPC applications on hybrid CPU-GPU systems: When can Multi-Process Service (MPS) help? Acceleration of HPC applications on hybrid CPU- systems: When can Multi-Process Service (MPS) help? GTC 2018 March 28, 2018 Olga Pearce (Lawrence Livermore National Laboratory) http://people.llnl.gov/olga

More information

Wikipedia and the Web of Confusable Entities: Experience from Entity Linking Query Creation for TAC 2009 Knowledge Base Population

Wikipedia and the Web of Confusable Entities: Experience from Entity Linking Query Creation for TAC 2009 Knowledge Base Population Wikipedia and the Web of Confusable Entities: Experience from Entity Linking Query Creation for TAC 2009 Knowledge Base Population Heather Simpson 1, Stephanie Strassel 1, Robert Parker 1, Paul McNamee

More information

Supporting SELL for High-Performance Computing

Supporting SELL for High-Performance Computing Supporting SELL for High-Performance Computing Bjarne Stroustrup and Gabriel Dos Reis Department of Computer Science Texas A&M University College Station, TX 77843-3112 Abstract. We briefly introduce the

More information

Scalable Identification of Load Imbalance in Parallel Executions Using Call Path Profiles

Scalable Identification of Load Imbalance in Parallel Executions Using Call Path Profiles Scalable Identification of Load Imbalance in Parallel Executions Using Call Path Profiles Nathan Tallent Laksono Adhianto, John Mellor-Crummey Mike Fagan, Mark Krentel Rice University CScADS Workshop August

More information

Markus Völter

Markus Völter of Markus Völter voelter@acm.org www.voelter.de @markusvoelter Examples 1 Healthcare Context & Motivation Mobile Apps that help patients w/ treatments Monitor side-effects and recommend actions Manage

More information

GRID MODERNIZATION INITIATIVE PEER REVIEW

GRID MODERNIZATION INITIATIVE PEER REVIEW GRID MODERNIZATION INITIATIVE PEER REVIEW Planning and Design Tools Portfolio Overview John Grosh GMLC Planning and Design Tools Technical Area Lead Lawrence Livermore National Laboratory April 18, 2017

More information

Automatic Tuning of Scientific Applications. Apan Qasem Ken Kennedy Rice University Houston, TX

Automatic Tuning of Scientific Applications. Apan Qasem Ken Kennedy Rice University Houston, TX Automatic Tuning of Scientific Applications Apan Qasem Ken Kennedy Rice University Houston, TX Recap from Last Year A framework for automatic tuning of applications Fine grain control of transformations

More information

NIF ICCS Test Controller for Automated & Manual Testing

NIF ICCS Test Controller for Automated & Manual Testing UCRL-CONF-235325 NIF ICCS Test Controller for Automated & Manual Testing J. S. Zielinski October 5, 2007 International Conference on Accelerator and Large Experimental Physics Control Systems Knoxville,

More information

IBM Case Manager Mobile Version SDK for ios Developers' Guide IBM SC

IBM Case Manager Mobile Version SDK for ios Developers' Guide IBM SC IBM Case Manager Mobile Version 1.0.0.5 SDK for ios Developers' Guide IBM SC27-4582-04 This edition applies to version 1.0.0.5 of IBM Case Manager Mobile (product number 5725-W63) and to all subsequent

More information

The Eclipse Parallel Tools Platform Project

The Eclipse Parallel Tools Platform Project The Eclipse Parallel Tools Platform Project EclipseCon 2005 LAUR-05-0574 Parallel Development Tools State of the Art Command-line compilers for Fortran and C/C++ Sometimes wrapped in a GUI Editors are

More information

COMP 322: Fundamentals of Parallel Programming

COMP 322: Fundamentals of Parallel Programming COMP 322: Fundamentals of Parallel Programming! Lecture 1: The What and Why of Parallel Programming; Task Creation & Termination (async, finish) Vivek Sarkar Department of Computer Science, Rice University

More information

WHO WANTS TO BE A DESILLIONAIRE GAME RULES INTERNATIONAL TEAM OF EXPERTS MAIN IDEA INTERACTIVE SYSTEMS SOFTWARE ARCHITECTURAL STYLES

WHO WANTS TO BE A DESILLIONAIRE GAME RULES INTERNATIONAL TEAM OF EXPERTS MAIN IDEA INTERACTIVE SYSTEMS SOFTWARE ARCHITECTURAL STYLES SOFTWARE ARCHITECTURAL STYLES WHO WANTS TO BE A DESILLIONAIRE What isn t it what is it what is it good for!2 GAME RULES One person at a time 15 seconds answer time help: ask a friend, poll the audience,

More information

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Topic 01. Software Engineering, Web Engineering, agile methodologies. Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,

More information

Software Quality Assurance Plan

Software Quality Assurance Plan Software Quality Assurance Plan For KDD-Research Entity Search Tool (KREST) Version 1.2 Submitted in partial fulfillment of the Masters of Software Engineering degree. Eric Davis CIS 895 MSE Project Department

More information

Dynamic Languages for HPC at LLNL VEESC Workshop September 3-4, 2010

Dynamic Languages for HPC at LLNL VEESC Workshop September 3-4, 2010 Dynamic Languages for HPC at LLNL VEESC Workshop September 3-4, 2010 T.J. Alumbaugh Thanks to: Doug Miller, Mike Owen, Tom Brunner, Patrick Brantley (LLNL) Forrest Iandola (UIUC) This work performed under

More information

<Insert Picture Here> Oracle SQL Developer: PL/SQL Support and Unit Testing

<Insert Picture Here> Oracle SQL Developer: PL/SQL Support and Unit Testing 3 Oracle SQL Developer: PL/SQL Support and Unit Testing The following is intended to outline our general product direction. It is intended for information purposes only, and may not

More information

Software Testing Tools

Software Testing Tools Software Testing Tools Manual Testing Introduction Introduction to software Testing Software Development Process Project Vs Product Objectives of Testing Testing Principals Software Development Life Cycle

More information