Massif-Visualizer. Memory Profiling UI. Milian Wolff Desktop Summit

Size: px
Start display at page:

Download "Massif-Visualizer. Memory Profiling UI. Milian Wolff Desktop Summit"

Transcription

1 Massif-Visualizer Memory Profiling UI Milian Wolff Desktop Summit

2 Agenda 1 Valgrind 2 Massif 3 Massif-Visualizer Milian Massif-Visualizer Desktop Summit Berlin 2/32

3 1 Valgrind 2 Massif 3 Massif-Visualizer Milian Massif-Visualizer Desktop Summit Berlin 3/32

4 1 Valgrind Introduction Tool Suite Usage Caveats Milian Massif-Visualizer Desktop Summit Berlin 4/32

5 Valgrind Introduction Versatile: currently nine debugging and profiling utilities Open: licensed under the GPL Proven: under active development since 2000 Cross Platform: Linux and MacOS X Cross Platform: x86, AMD64, ARM,... Milian Massif-Visualizer Desktop Summit Berlin 5/32

6 Valgrind Introduction Versatile: currently nine debugging and profiling utilities Open: licensed under the GPL Proven: under active development since 2000 Cross Platform: Linux and MacOS X Cross Platform: x86, AMD64, ARM,... Milian Massif-Visualizer Desktop Summit Berlin 5/32

7 Valgrind Introduction Versatile: currently nine debugging and profiling utilities Open: licensed under the GPL Proven: under active development since 2000 Cross Platform: Linux and MacOS X Cross Platform: x86, AMD64, ARM,... Milian Massif-Visualizer Desktop Summit Berlin 5/32

8 Valgrind Introduction Versatile: currently nine debugging and profiling utilities Open: licensed under the GPL Proven: under active development since 2000 Cross Platform: Linux and MacOS X Cross Platform: x86, AMD64, ARM,... Milian Massif-Visualizer Desktop Summit Berlin 5/32

9 Valgrind Introduction Versatile: currently nine debugging and profiling utilities Open: licensed under the GPL Proven: under active development since 2000 Cross Platform: Linux and MacOS X Cross Platform: x86, AMD64, ARM,... Milian Massif-Visualizer Desktop Summit Berlin 5/32

10 1 Valgrind Introduction Tool Suite Usage Caveats Milian Massif-Visualizer Desktop Summit Berlin 6/32

11 Tool Suite Memcheck: detect errors in memory management leaks, invalid read/writes,... Helgrind / DRD: detect errors in multithreading race conditions, lock contention,... Callgrind: CPU cache profiling hotspots, bottlenecks, cache issues,... Massif: memory profiling total consumption, leaks, peaks, Milian Massif-Visualizer Desktop Summit Berlin 7/32

12 Tool Suite Memcheck: detect errors in memory management leaks, invalid read/writes,... Helgrind / DRD: detect errors in multithreading race conditions, lock contention,... Callgrind: CPU cache profiling hotspots, bottlenecks, cache issues,... Massif: memory profiling total consumption, leaks, peaks, Milian Massif-Visualizer Desktop Summit Berlin 7/32

13 Tool Suite Memcheck: detect errors in memory management leaks, invalid read/writes,... Helgrind / DRD: detect errors in multithreading race conditions, lock contention,... Callgrind: CPU cache profiling hotspots, bottlenecks, cache issues,... Massif: memory profiling total consumption, leaks, peaks, Milian Massif-Visualizer Desktop Summit Berlin 7/32

14 Tool Suite Memcheck: detect errors in memory management leaks, invalid read/writes,... Helgrind / DRD: detect errors in multithreading race conditions, lock contention,... Callgrind: CPU cache profiling hotspots, bottlenecks, cache issues,... Massif: memory profiling total consumption, leaks, peaks, Milian Massif-Visualizer Desktop Summit Berlin 7/32

15 Tool Suite Memcheck: detect errors in memory management leaks, invalid read/writes,... Helgrind / DRD: detect errors in multithreading race conditions, lock contention,... Callgrind: CPU cache profiling hotspots, bottlenecks, cache issues,... Massif: memory profiling total consumption, leaks, peaks, Milian Massif-Visualizer Desktop Summit Berlin 7/32

16 1 Valgrind Introduction Tool Suite Usage Caveats Milian Massif-Visualizer Desktop Summit Berlin 8/32

17 Usage no special compilation flags required but: debug symbols very useful running valgrind: valgrind --tool=... [tool options] myapp [your options] errors are outputted to CLI human readable profiling data written to file visualization UI required Milian Massif-Visualizer Desktop Summit Berlin 9/32

18 Usage no special compilation flags required but: debug symbols very useful running valgrind: valgrind --tool=... [tool options] myapp [your options] errors are outputted to CLI human readable profiling data written to file visualization UI required Milian Massif-Visualizer Desktop Summit Berlin 9/32

19 Usage no special compilation flags required but: debug symbols very useful running valgrind: valgrind --tool=... [tool options] myapp [your options] errors are outputted to CLI human readable profiling data written to file visualization UI required Milian Massif-Visualizer Desktop Summit Berlin 9/32

20 Usage no special compilation flags required but: debug symbols very useful running valgrind: valgrind --tool=... [tool options] myapp [your options] errors are outputted to CLI human readable profiling data written to file visualization UI required Milian Massif-Visualizer Desktop Summit Berlin 9/32

21 Usage no special compilation flags required but: debug symbols very useful running valgrind: valgrind --tool=... [tool options] myapp [your options] errors are outputted to CLI human readable profiling data written to file visualization UI required Milian Massif-Visualizer Desktop Summit Berlin 9/32

22 1 Valgrind Introduction Tool Suite Usage Caveats Milian Massif-Visualizer Desktop Summit Berlin 10/32

23 Caveats slowdown by factor 5 to 100 increased memory consumption interpretation of results requires knowledge and experience Milian Massif-Visualizer Desktop Summit Berlin 11/32

24 Caveats slowdown by factor 5 to 100 increased memory consumption interpretation of results requires knowledge and experience Milian Massif-Visualizer Desktop Summit Berlin 11/32

25 Caveats slowdown by factor 5 to 100 increased memory consumption interpretation of results requires knowledge and experience Milian Massif-Visualizer Desktop Summit Berlin 11/32

26 1 Valgrind 2 Massif 3 Massif-Visualizer Milian Massif-Visualizer Desktop Summit Berlin 12/32

27 2 Massif Introduction Output Useful Options ms print Milian Massif-Visualizer Desktop Summit Berlin 13/32

28 Massif Introduction mainly aimed at heap profiling optionally also stack profiling possible tracks memory allocations and deallocations caveats: slowdown by 20x, high memory overhead Milian Massif-Visualizer Desktop Summit Berlin 14/32

29 Massif Introduction mainly aimed at heap profiling optionally also stack profiling possible tracks memory allocations and deallocations caveats: slowdown by 20x, high memory overhead Milian Massif-Visualizer Desktop Summit Berlin 14/32

30 Massif Introduction mainly aimed at heap profiling optionally also stack profiling possible tracks memory allocations and deallocations caveats: slowdown by 20x, high memory overhead Milian Massif-Visualizer Desktop Summit Berlin 14/32

31 Massif Introduction mainly aimed at heap profiling optionally also stack profiling possible tracks memory allocations and deallocations caveats: slowdown by 20x, high memory overhead Milian Massif-Visualizer Desktop Summit Berlin 14/32

32 2 Massif Introduction Output Useful Options ms print Milian Massif-Visualizer Desktop Summit Berlin 15/32

33 Output snapshots of memory consumption over time simple snapshots: total memory consumption detailed snapshots: backtraces to significant memory allocations Milian Massif-Visualizer Desktop Summit Berlin 16/32

34 Output snapshots of memory consumption over time simple snapshots: total memory consumption detailed snapshots: backtraces to significant memory allocations Milian Massif-Visualizer Desktop Summit Berlin 16/32

35 Output snapshots of memory consumption over time simple snapshots: total memory consumption detailed snapshots: backtraces to significant memory allocations Milian Massif-Visualizer Desktop Summit Berlin 16/32

36 2 Massif Introduction Output Useful Options ms print Milian Massif-Visualizer Desktop Summit Berlin 17/32

37 Useful Options --max-snapshots=n [Default: 100] increase for long running profiling sessions --detailed-freq=n [Default: 10] decrease for short running, increase for long running profiling sessions --threshold=<m.n> [Default: 1.0] increase in case your app mainly consists of allocations below the default threshold Output: --massif-out-file=... [Default: massif.out.%p] Milian Massif-Visualizer Desktop Summit Berlin 18/32

38 Useful Options --max-snapshots=n [Default: 100] increase for long running profiling sessions --detailed-freq=n [Default: 10] decrease for short running, increase for long running profiling sessions --threshold=<m.n> [Default: 1.0] increase in case your app mainly consists of allocations below the default threshold Output: --massif-out-file=... [Default: massif.out.%p] Milian Massif-Visualizer Desktop Summit Berlin 18/32

39 Useful Options --max-snapshots=n [Default: 100] increase for long running profiling sessions --detailed-freq=n [Default: 10] decrease for short running, increase for long running profiling sessions --threshold=<m.n> [Default: 1.0] increase in case your app mainly consists of allocations below the default threshold Output: --massif-out-file=... [Default: massif.out.%p] Milian Massif-Visualizer Desktop Summit Berlin 18/32

40 Useful Options --max-snapshots=n [Default: 100] increase for long running profiling sessions --detailed-freq=n [Default: 10] decrease for short running, increase for long running profiling sessions --threshold=<m.n> [Default: 1.0] increase in case your app mainly consists of allocations below the default threshold Output: --massif-out-file=... [Default: massif.out.%p] Milian Massif-Visualizer Desktop Summit Berlin 18/32

41 2 Massif Introduction Output Useful Options ms print Milian Massif-Visualizer Desktop Summit Berlin 19/32

42 ms print Visualization ms print massif.out.pid less Milian Massif-Visualizer Desktop Summit Berlin 20/32

43 ms print Visualization ms print massif.out.pid less Milian Massif-Visualizer Desktop Summit Berlin 20/32

44 1 Valgrind 2 Massif 3 Massif-Visualizer Milian Massif-Visualizer Desktop Summit Berlin 21/32

45 3 Massif-Visualizer Massif-Visualizer Features Future Ideas Packages Resources Milian Massif-Visualizer Desktop Summit Berlin 22/32

46 Massif-Visualizer massif-visualizer massif.out.pid Milian Massif-Visualizer Desktop Summit Berlin 23/32

47 Massif-Visualizer interactive! Milian Massif-Visualizer Desktop Summit Berlin 23/32

48 3 Massif-Visualizer Massif-Visualizer Features Future Ideas Packages Resources Milian Massif-Visualizer Desktop Summit Berlin 24/32

49 Features vis. evolution of mem consumption vis. backtrace/callgraph custom allocators hiding functions shorten templates... Milian Massif-Visualizer Desktop Summit Berlin 25/32

50 Features vis. evolution of mem consumption vis. backtrace/callgraph custom allocators hiding functions shorten templates... Milian Massif-Visualizer Desktop Summit Berlin 25/32

51 Features vis. evolution of mem consumption vis. backtrace/callgraph custom allocators hiding functions shorten templates... Milian Massif-Visualizer Desktop Summit Berlin 25/32

52 Features vis. evolution of mem consumption vis. backtrace/callgraph custom allocators hiding functions shorten templates... Milian Massif-Visualizer Desktop Summit Berlin 25/32

53 Features vis. evolution of mem consumption vis. backtrace/callgraph custom allocators hiding functions shorten templates... Milian Massif-Visualizer Desktop Summit Berlin 25/32

54 Features vis. evolution of mem consumption vis. backtrace/callgraph custom allocators hiding functions shorten templates... Milian Massif-Visualizer Desktop Summit Berlin 25/32

55 3 Massif-Visualizer Massif-Visualizer Features Future Ideas Packages Resources Milian Massif-Visualizer Desktop Summit Berlin 26/32

56 Future Ideas & Todo s Comparison/Diff of Massif data files Top-Down view of backtraces (subtree matching) Export Graphs Milian Massif-Visualizer Desktop Summit Berlin 27/32

57 Future Ideas & Todo s Comparison/Diff of Massif data files Top-Down view of backtraces (subtree matching) Export Graphs Milian Massif-Visualizer Desktop Summit Berlin 27/32

58 Future Ideas & Todo s Comparison/Diff of Massif data files Top-Down view of backtraces (subtree matching) Export Graphs Milian Massif-Visualizer Desktop Summit Berlin 27/32

59 3 Massif-Visualizer Massif-Visualizer Features Future Ideas Packages Resources Milian Massif-Visualizer Desktop Summit Berlin 28/32

60 Packages Arch, Slackware,... have packages OpenSuse BuildService: MacOS X: Generally: Please help with packaging! Milian Massif-Visualizer Desktop Summit Berlin 29/32

61 Packages Arch, Slackware,... have packages OpenSuse BuildService: MacOS X: Generally: Please help with packaging! Milian Massif-Visualizer Desktop Summit Berlin 29/32

62 Packages Arch, Slackware,... have packages OpenSuse BuildService: MacOS X: Generally: Please help with packaging! Milian Massif-Visualizer Desktop Summit Berlin 29/32

63 Packages Arch, Slackware,... have packages OpenSuse BuildService: MacOS X: Generally: Please help with packaging! Milian Massif-Visualizer Desktop Summit Berlin 29/32

64 3 Massif-Visualizer Massif-Visualizer Features Future Ideas Packages Resources Milian Massif-Visualizer Desktop Summit Berlin 30/32

65 Resources Project Page: Bugs and Wish Requests: Mailing List: KDE-Apps Page: Milian Massif-Visualizer Desktop Summit Berlin 31/32

66 Questions? Milian Wolff Milian Massif-Visualizer Desktop Summit Berlin 32/32

Timing programs with time

Timing programs with time Profiling Profiling measures the performance of a program and can be used to find CPU or memory bottlenecks. time A stopwatch gprof The GNU (CPU) Profiler callgrind Valgrind s CPU profiling tool massif

More information

Valgrind. Philip Blakely. Laboratory for Scientific Computing, University of Cambridge. Philip Blakely (LSC) Valgrind 1 / 21

Valgrind. Philip Blakely. Laboratory for Scientific Computing, University of Cambridge. Philip Blakely (LSC) Valgrind 1 / 21 Valgrind Philip Blakely Laboratory for Scientific Computing, University of Cambridge Philip Blakely (LSC) Valgrind 1 / 21 Part I Valgrind Philip Blakely (LSC) Valgrind 2 / 21 Valgrind http://valgrind.org/

More information

Performance Measurement

Performance Measurement ECPE 170 Jeff Shafer University of the Pacific Performance Measurement 2 Lab Schedule Activities Today / Thursday Background discussion Lab 5 Performance Measurement Next Week Lab 6 Performance Optimization

More information

CS2141 Software Development using C/C++ Debugging

CS2141 Software Development using C/C++ Debugging CS2141 Software Development using C/C++ Debugging Debugging Tips Examine the most recent change Error likely in, or exposed by, code most recently added Developing code incrementally and testing along

More information

valgrind overview: runtime memory checker and a bit more What can we do with it?

valgrind overview: runtime memory checker and a bit more What can we do with it? Valgrind overview: Runtime memory checker and a bit more... What can we do with it? MLUG Mar 30, 2013 The problem When do we start thinking of weird bug in a program? The problem When do we start thinking

More information

Use Dynamic Analysis Tools on Linux

Use Dynamic Analysis Tools on Linux Use Dynamic Analysis Tools on Linux FTF-SDS-F0407 Gene Fortanely Freescale Software Engineer Catalin Udma A P R. 2 0 1 4 Software Engineer, Digital Networking TM External Use Session Introduction This

More information

CptS 360 (System Programming) Unit 4: Debugging

CptS 360 (System Programming) Unit 4: Debugging CptS 360 (System Programming) Unit 4: Debugging Bob Lewis School of Engineering and Applied Sciences Washington State University Spring, 2018 Motivation You re probably going to spend most of your code

More information

Cache Profiling with Callgrind

Cache Profiling with Callgrind Center for Information Services and High Performance Computing (ZIH) Cache Profiling with Callgrind Linux/x86 Performance Practical, 17.06.2009 Zellescher Weg 12 Willers-Bau A106 Tel. +49 351-463 - 31945

More information

Data and File Structures Laboratory

Data and File Structures Laboratory Tools: GDB, Valgrind Assistant Professor Machine Intelligence Unit Indian Statistical Institute, Kolkata August, 2018 1 GDB 2 Valgrind A programmer s experience Case I int x = 10, y = 25; x = x++ + y++;

More information

Cache Performance Analysis with Callgrind and KCachegrind

Cache Performance Analysis with Callgrind and KCachegrind Cache Performance Analysis with Callgrind and KCachegrind VI-HPS Tuning Workshop 8 September 2011, Aachen Josef Weidendorfer Computer Architecture I-10, Department of Informatics Technische Universität

More information

Cache Performance Analysis with Callgrind and KCachegrind

Cache Performance Analysis with Callgrind and KCachegrind Cache Performance Analysis with Callgrind and KCachegrind Parallel Performance Analysis Course, 31 October, 2010 King Abdullah University of Science and Technology, Saudi Arabia Josef Weidendorfer Computer

More information

Performance Measurement

Performance Measurement ECPE 170 Jeff Shafer University of the Pacific Performance Measurement 2 Lab Schedule Ac?vi?es Today Background discussion Lab 5 Performance Measurement Wednesday Lab 5 Performance Measurement Friday Lab

More information

Pointers. Héctor Menéndez 1. November 28, AIDA Research Group Computer Science Department Universidad Autónoma de Madrid.

Pointers. Héctor Menéndez 1. November 28, AIDA Research Group Computer Science Department Universidad Autónoma de Madrid. Pointers Héctor Menéndez 1 AIDA Research Group Computer Science Department Universidad Autónoma de Madrid November 28, 2013 1 based on the original slides of the subject Index 1 Dynamic Memory 2 Arrays

More information

Praktische Aspekte der Informatik

Praktische Aspekte der Informatik Praktische Aspekte der Informatik Moritz Mühlhausen Prof. Marcus Magnor Optimization valgrind, gprof, and callgrind Further Reading Warning! The following slides are meant to give you a very superficial

More information

KDev-Valgrind : User Documentation

KDev-Valgrind : User Documentation KDev-Valgrind : User Documentation Damien Coppel Anthony Corbacho Lionel Duc Mathieu Lornac Sébastien Rannou Lucas Sarie This document is for developers wishing to use the plugin. It enables to understand

More information

Running Valgrind on multiple processors: a prototype. Philippe Waroquiers FOSDEM 2015 valgrind devroom

Running Valgrind on multiple processors: a prototype. Philippe Waroquiers FOSDEM 2015 valgrind devroom Running Valgrind on multiple processors: a prototype Philippe Waroquiers FOSDEM 2015 valgrind devroom 1 Valgrind and threads Valgrind runs properly multi-threaded applications But (mostly) runs them using

More information

Software Analysis Tools

Software Analysis Tools CSCE 790 Introduction to Software Analysis Software Analysis Tools Professor Lisa Luo Fall 2018 Overview Source code CFG generator Binary code analysis Code obfuscation Symbolic Execution Dynamic analysis

More information

DEBUGGING: DYNAMIC PROGRAM ANALYSIS

DEBUGGING: DYNAMIC PROGRAM ANALYSIS DEBUGGING: DYNAMIC PROGRAM ANALYSIS WS 2017/2018 Martina Seidl Institute for Formal Models and Verification System Invariants properties of a program must hold over the entire run: integrity of data no

More information

Valgrind Documentation

Valgrind Documentation Valgrind Documentation Release 3.10.0 10 September 2014 Copyright 2000-2014 AUTHORS Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

More information

Valgrind Documentation

Valgrind Documentation .eps Valgrind Documentation Release 3.13.0 15 June 2017 Copyright 2000-2017 AUTHORS Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

More information

Valgrind Documentation

Valgrind Documentation Valgrind Documentation Release 3.6.0 21 October 2010 Copyright 2000-2010 AUTHORS Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

More information

Cache Performance Analysis with Callgrind and KCachegrind

Cache Performance Analysis with Callgrind and KCachegrind Cache Performance Analysis with Callgrind and KCachegrind 21 th VI-HPS Tuning Workshop April 2016, Garching Josef Weidendorfer Computer Architecture I-10, Department of Informatics Technische Universität

More information

Scientific Programming in C IX. Debugging

Scientific Programming in C IX. Debugging Scientific Programming in C IX. Debugging Susi Lehtola 13 November 2012 Debugging Quite often you spend an hour to write a code, and then two hours debugging why it doesn t work properly. Scientific Programming

More information

Debugging and Profiling

Debugging and Profiling Debugging and Profiling Dr. Axel Kohlmeyer Senior Scientific Computing Expert Information and Telecommunication Section The Abdus Salam International Centre for Theoretical Physics http://sites.google.com/site/akohlmey/

More information

CSE 160 Discussion Section. Winter 2017 Week 3

CSE 160 Discussion Section. Winter 2017 Week 3 CSE 160 Discussion Section Winter 2017 Week 3 Homework 1 - Recap & a few points ComputeMandelbrotPoint func() in smdb.cpp does the job serially. You will have to do the same task in parallel manner in

More information

Dynamic Race Detection with LLVM Compiler

Dynamic Race Detection with LLVM Compiler Dynamic Race Detection with LLVM Compiler Compile-time instrumentation for ThreadSanitizer Konstantin Serebryany, Alexander Potapenko, Timur Iskhodzhanov, and Dmitriy Vyukov OOO Google, 7 Balchug st.,

More information

High Performance Computing and Programming. Performance Analysis

High Performance Computing and Programming. Performance Analysis High Performance Computing and Programming Performance Analysis What is performance? Performance is a total effectiveness of a program What are the measures of the performance? execution time FLOPS memory

More information

Fast dynamic program analysis Race detection. Konstantin Serebryany May

Fast dynamic program analysis Race detection. Konstantin Serebryany May Fast dynamic program analysis Race detection Konstantin Serebryany May 20 2011 Agenda Dynamic program analysis Race detection: theory ThreadSanitizer: race detector Making ThreadSanitizer

More information

C/C++ toolchain. Static and dynamic code analysis. Karel Kubíček. Masaryk University. Brno, Czech Republic

C/C++ toolchain. Static and dynamic code analysis. Karel Kubíček. Masaryk University. Brno, Czech Republic C/C++ toolchain Static and dynamic code analysis Karel Kubíček Masaryk University Brno, Czech Republic April 20, 2018 Questions Who uses C/C++? Karel Kubíček C/C++ toolchain April 20, 2018 2 / 12 Questions

More information

Using Intel VTune Amplifier XE and Inspector XE in.net environment

Using Intel VTune Amplifier XE and Inspector XE in.net environment Using Intel VTune Amplifier XE and Inspector XE in.net environment Levent Akyil Technical Computing, Analyzers and Runtime Software and Services group 1 Refresher - Intel VTune Amplifier XE Intel Inspector

More information

Tuning Valgrind for your Workload

Tuning Valgrind for your Workload Tuning Valgrind for your Workload Hints, tricks and tips to effectively use Valgrind on small or big applications Philippe Waroquiers FOSDEM 2015 valgrind devroom 1 Some rumours about Valgrind... Valgrind

More information

MODERNIZATION C++ Bjarne Stroustrup, creator of C++

MODERNIZATION C++ Bjarne Stroustrup, creator of C++ C++ MODERNIZATION New releases of the C++ language maintain incredibly strong backwards compatibility, making it easy to keep older C++ code working properly as standards march forward. This makes C++

More information

Memory Checking and Single Processor Optimization with Valgrind [05b]

Memory Checking and Single Processor Optimization with Valgrind [05b] Memory Checking and Single Processor Optimization with Valgrind Memory Checking and Single Processor Optimization with Valgrind [05b] University of Stuttgart High-Performance Computing-Center Stuttgart

More information

SELF-AWARE APPLICATIONS AUTOMATIC PRODUCTION DIAGNOSIS DINA GOLDSHTEIN

SELF-AWARE APPLICATIONS AUTOMATIC PRODUCTION DIAGNOSIS DINA GOLDSHTEIN SELF-AWARE APPLICATIONS AUTOMATIC PRODUCTION DIAGNOSIS DINA GOLDSHTEIN Agenda Motivation Hierarchy of self-monitoring CPU profiling GC monitoring Heap analysis Deadlock detection 2 Agenda Motivation Hierarchy

More information

Core dumped - on debuggers and other tools

Core dumped - on debuggers and other tools Pascal M. Vaudrevange 28.03.2008 1 2 3 4 5 Motto Everyone knows that debugging is twice as hard as writing a program in the first place. So if you re as clever as you can be when you write it, how will

More information

Computer Systems and Networks

Computer Systems and Networks LECTURE 7: PERFORMANCE MEASUREMENT Computer Systems and Networks Dr. Pallipuram (vpallipuramkrishnamani@pacific.edu) University of the Pacific Lab Schedule Today Lab 5 Performance Measurement is open Work

More information

Zing Vision. Answering your toughest production Java performance questions

Zing Vision. Answering your toughest production Java performance questions Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A

More information

Borland Optimizeit Enterprise Suite 6

Borland Optimizeit Enterprise Suite 6 Borland Optimizeit Enterprise Suite 6 Feature Matrix The table below shows which Optimizeit product components are available in Borland Optimizeit Enterprise Suite and which are available in Borland Optimizeit

More information

Debugging / Profiling

Debugging / Profiling The Center for Astrophysical Thermonuclear Flashes Debugging / Profiling Chris Daley 23 rd June An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at Motivation

More information

A Novel Approach to Explain the Detection of Memory Errors and Execution on Different Application Using Dr Memory.

A Novel Approach to Explain the Detection of Memory Errors and Execution on Different Application Using Dr Memory. A Novel Approach to Explain the Detection of Memory Errors and Execution on Different Application Using Dr Memory. Yashaswini J 1, Tripathi Ashish Ashok 2 1, 2 School of computer science and engineering,

More information

Debugging with gdb and valgrind

Debugging with gdb and valgrind Debugging with gdb and valgrind Dr. Axel Kohlmeyer Associate Dean for Scientific Computing, CST Associate Director, Institute for Computational Science Assistant Vice President for High-Performance Computing

More information

Single Processor Optimization III

Single Processor Optimization III Russian-German School on High-Performance Computer Systems, 27th June - 6th July, Novosibirsk 2. Day, 28th of June, 2005 HLRS, University of Stuttgart Slide 1 Outline Motivation Valgrind Memory Tracing

More information

Improving the Performance of your LabVIEW Applications

Improving the Performance of your LabVIEW Applications Improving the Performance of your LabVIEW Applications 1 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization 2 Optimization Cycle Benchmark

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Facing the challenges of. New Approaches To Debugging Complex Codes! Ed Hinkel, Sales Engineer Rogue Wave Software

Facing the challenges of. New Approaches To Debugging Complex Codes! Ed Hinkel, Sales Engineer Rogue Wave Software Facing the challenges of or New Approaches To Debugging Complex Codes! Ed Hinkel, Sales Engineer Rogue Wave Software Agenda Introduction Rogue Wave! TotalView! Approaching the Debugging Challenge! 1 TVScript

More information

Analysis and Optimization of the Memory Access Behavior of Applications

Analysis and Optimization of the Memory Access Behavior of Applications Analysis and Optimization of the Memory Access Behavior of Applications October 8th, 2013 David Büttner (Josef Weidendorfer) Chair for Computer Architecture (LRR) TUM, Munich, Germany My Background Chair

More information

CS420: Operating Systems. OS Services & System Calls

CS420: Operating Systems. OS Services & System Calls OS Services & System Calls James Moscola Department of Engineering & Computer Science York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Operating

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Programming Tips for CS758/858

Programming Tips for CS758/858 Programming Tips for CS758/858 January 28, 2016 1 Introduction The programming assignments for CS758/858 will all be done in C. If you are not very familiar with the C programming language we recommend

More information

Concurrency, Thread. Dongkun Shin, SKKU

Concurrency, Thread. Dongkun Shin, SKKU Concurrency, Thread 1 Thread Classic view a single point of execution within a program a single PC where instructions are being fetched from and executed), Multi-threaded program Has more than one point

More information

6.S096: Introduction to C/C++

6.S096: Introduction to C/C++ 6.S096: Introduction to C/C++ Frank Li, Tom Lieber, Kyle Murray Lecture 4: Data Structures and Debugging! January 17, 2012 Today Memory Leaks and Valgrind Tool Structs and Unions Opaque Types Enum and

More information

CS 240 Final Exam Review

CS 240 Final Exam Review CS 240 Final Exam Review Linux I/O redirection Pipelines Standard commands C++ Pointers How to declare How to use Pointer arithmetic new, delete Memory leaks C++ Parameter Passing modes value pointer reference

More information

Sista: Improving Cog s JIT performance. Clément Béra

Sista: Improving Cog s JIT performance. Clément Béra Sista: Improving Cog s JIT performance Clément Béra Main people involved in Sista Eliot Miranda Over 30 years experience in Smalltalk VM Clément Béra 2 years engineer in the Pharo team Phd student starting

More information

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 2: Operating-System Structures Operating System Services User Operating

More information

CSCI-1200 Data Structures Spring 2016 Lecture 6 Pointers & Dynamic Memory

CSCI-1200 Data Structures Spring 2016 Lecture 6 Pointers & Dynamic Memory Announcements CSCI-1200 Data Structures Spring 2016 Lecture 6 Pointers & Dynamic Memory There will be no lecture on Tuesday, Feb. 16. Prof. Thompson s office hours are canceled for Monday, Feb. 15. Prof.

More information

Valgrind Documentation Release June 2006 Copyright AUTHORS

Valgrind Documentation Release June 2006 Copyright AUTHORS Valgrind Documentation Release 3.2.0 7 June 2006 Copyright 2000-2006 AUTHORS Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

More information

Lecture #10 Context Switching & Performance Optimization

Lecture #10 Context Switching & Performance Optimization SPRING 2015 Integrated Technical Education Cluster At AlAmeeria E-626-A Real-Time Embedded Systems (RTES) Lecture #10 Context Switching & Performance Optimization Instructor: Dr. Ahmad El-Banna Agenda

More information

Chapter 2: Operating-System

Chapter 2: Operating-System Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services! User Operating System Interface! System Calls! Types of System Calls! System Programs! Operating

More information

Comprehensive Kernel Instrumentation via Dynamic Binary Translation

Comprehensive Kernel Instrumentation via Dynamic Binary Translation Comprehensive Kernel Instrumentation via Dynamic Binary Translation Peter Feiner Angela Demke Brown Ashvin Goel University of Toronto 011 Complexity of Operating Systems 012 Complexity of Operating Systems

More information

Flex 3 Pre-release Tour

Flex 3 Pre-release Tour Flex 3 Pre-release Tour Andrew Shorten shorten@adobe.com Enrique Duvos duvos@adobe.com Flex 3 Pre-release Tour Agenda Adobe Platform Update (45 mins) Flex Builder 3 Features (45 mins) Adobe & Open Source

More information

Effective Debugging and Profiling for Qt and Qt Quick. Volker Krause KDAB

Effective Debugging and Profiling for Qt and Qt Quick. Volker Krause KDAB Effective Debugging and Profiling for Qt and Qt Quick Volker Krause volker.krause@kdab.com KDAB What's going to happen? Debugging/profiling Qt applications How to make generic tools work better with Qt

More information

TI2725-C, C programming lab, course

TI2725-C, C programming lab, course Valgrind tutorial Valgrind is a tool which can find memory leaks in your programs, such as buffer overflows and bad memory management. This document will show per example how Valgrind responds to buggy

More information

ArcGIS Enterprise: Advanced Topics in Administration. Thomas Edghill & Moginraj Mohandas

ArcGIS Enterprise: Advanced Topics in Administration. Thomas Edghill & Moginraj Mohandas ArcGIS Enterprise: Advanced Topics in Administration Thomas Edghill & Moginraj Mohandas Outline Overview: Base ArcGIS Enterprise Deployment - Key Components - Administrator Endpoints Advanced Workflows:

More information

Intel Parallel Studio 2011

Intel Parallel Studio 2011 THE ULTIMATE ALL-IN-ONE PERFORMANCE TOOLKIT Studio 2011 Product Brief Studio 2011 Accelerate Development of Reliable, High-Performance Serial and Threaded Applications for Multicore Studio 2011 is a comprehensive

More information

Advanced Debugging and the Address Sanitizer

Advanced Debugging and the Address Sanitizer Developer Tools #WWDC15 Advanced Debugging and the Address Sanitizer Finding your undocumented features Session 413 Mike Swingler Xcode UI Infrastructure Anna Zaks LLVM Program Analysis 2015 Apple Inc.

More information

A Design for Comprehensive Kernel Instrumentation

A Design for Comprehensive Kernel Instrumentation Design for Comprehensive Kernel Instrumentation Peter Feiner ngela Demke Brown shvin Goel peter@cs.toronto.edu demke@cs.toronto.edu ashvin@eecg.toronto.edu University of Toronto 011 / 16 Motivation Transparent

More information

Lecture 14 Notes. Brent Edmunds

Lecture 14 Notes. Brent Edmunds Lecture 14 Notes Brent Edmunds October 5, 2012 Table of Contents 1 Sins of Coding 3 1.1 Accessing Undeclared Variables and Pointers...................... 3 1.2 Playing With What Isn t Yours..............................

More information

Introduction to Virtual Machines. Michael Jantz

Introduction to Virtual Machines. Michael Jantz Introduction to Virtual Machines Michael Jantz Acknowledgements Slides adapted from Chapter 1 in Virtual Machines: Versatile Platforms for Systems and Processes by James E. Smith and Ravi Nair Credit to

More information

Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2

Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Lecture 3: Processes Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Process in General 3.3 Process Concept Process is an active program in execution; process

More information

CodeDynamics 2018 Release Notes

CodeDynamics 2018 Release Notes These release notes contain a summary of new features and enhancements, late-breaking product issues, migration from earlier releases, and bug fixes. PLEASE NOTE: The version of this document in the product

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Chapter 2: System Structures. Operating System Concepts 9 th Edition Chapter 2: System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs

More information

Kernel Self Protection

Kernel Self Protection Kernel Self Protection Kernel Summit 2016, Santa Fe Kees ( Case ) Cook keescook@chromium.org @kees_cook http://kernsec.org/wiki/index.php/kernel_self_protection_project http://www.openwall.com/lists/kernel-hardening/

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Objectives To describe the services an operating system provides to users, processes, and

More information

Debugging HPC Applications. David Lecomber CTO, Allinea Software

Debugging HPC Applications. David Lecomber CTO, Allinea Software Debugging HPC Applications David Lecomber CTO, Allinea Software david@allinea.com Agenda Bugs and Debugging Debugging parallel applications Debugging OpenACC and other hybrid codes Debugging for Petascale

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

현재이이미지를표시할수없습니다. Chapter 9: Virtual Memory

현재이이미지를표시할수없습니다. Chapter 9: Virtual Memory 현재이이미지를표시할수없습니다. Chapter 9: Virtual Memory Objectives To describe the benefits of a virtual memory system To explain the concepts of demand paging, page-replacement algorithms, and allocation of page frames

More information

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014 Profiling and Debugging OpenCL Applications with ARM Development Tools October 2014 1 Agenda 1. Introduction to GPU Compute 2. ARM Development Solutions 3. Mali GPU Architecture 4. Using ARM DS-5 Streamline

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures 2.1 Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 21 Main Memory Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Why not increase page size

More information

ECMWF Workshop on High Performance Computing in Meteorology. 3 rd November Dean Stewart

ECMWF Workshop on High Performance Computing in Meteorology. 3 rd November Dean Stewart ECMWF Workshop on High Performance Computing in Meteorology 3 rd November 2010 Dean Stewart Agenda Company Overview Rogue Wave Product Overview IMSL Fortran TotalView Debugger Acumem ThreadSpotter 1 Copyright

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls (important!) Types of System Calls (important!) System

More information

Embedded System Programming

Embedded System Programming Embedded System Programming Multicore ES (Module 40) Yann-Hang Lee Arizona State University yhlee@asu.edu (480) 727-7507 Summer 2014 The Era of Multi-core Processors RTOS Single-Core processor SMP-ready

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: System Structures Chapter 2: System Structures 2.1 Operating-System Services 2.2 User and Operating-System Interface 2.3 System Calls 2.4 Types of System Calls 2.5 System Programs 2.6 Operating-System

More information

Practical Memory Safety with REST

Practical Memory Safety with REST Practical Memory Safety with REST KANAD SINHA & SIMHA SETHUMADHAVAN COLUMBIA UNIVERSITY Is memory safety relevant? In 2017, 55% of remote-code execution causing bugs in Microsoft due to memory errors Is

More information

EE355 Lab 5 - The Files Are *In* the Computer

EE355 Lab 5 - The Files Are *In* the Computer 1 Introduction In this lab you will modify a working word scramble game that selects a word from a predefined word bank to support a user-defined word bank that is read in from a file. This is a peer evaluated

More information

CUDA Tools for Debugging and Profiling

CUDA Tools for Debugging and Profiling CUDA Tools for Debugging and Profiling CUDA Course, Jülich Supercomputing Centre Andreas Herten, Forschungszentrum Jülich, 3 August 2016 Overview What you will learn in this session Use cuda-memcheck to

More information

Improve your C++! John Richardson. Lab Study Meeting 2013

Improve your C++! John Richardson. Lab Study Meeting 2013 Improve your C++! John Richardson Lab Study Meeting 2013 Objectives How do I use the standard library correctly? What is C++11? Should I use it? Skills for debugging...? What kind of profiling is possible

More information

Operating System Services

Operating System Services CSE325 Principles of Operating Systems Operating System Services David Duggan dduggan@sandia.gov January 22, 2013 Reading Assignment 3 Chapter 3, due 01/29 1/23/13 CSE325 - OS Services 2 What Categories

More information

CHAPTER 16 - VIRTUAL MACHINES

CHAPTER 16 - VIRTUAL MACHINES CHAPTER 16 - VIRTUAL MACHINES 1 OBJECTIVES Explore history and benefits of virtual machines. Discuss the various virtual machine technologies. Describe the methods used to implement virtualization. Show

More information

Prototyping Architectural Support for Program Rollback Using FPGAs

Prototyping Architectural Support for Program Rollback Using FPGAs Prototyping Architectural Support for Program Rollback Using FPGAs Radu Teodorescu and Josep Torrellas http://iacoma.cs.uiuc.edu University of Illinois at Urbana-Champaign Motivation Problem: Software

More information

Oracle Developer Studio Performance Analyzer

Oracle Developer Studio Performance Analyzer Oracle Developer Studio Performance Analyzer The Oracle Developer Studio Performance Analyzer provides unparalleled insight into the behavior of your application, allowing you to identify bottlenecks and

More information

Dynamically Detecting and Tolerating IF-Condition Data Races

Dynamically Detecting and Tolerating IF-Condition Data Races Dynamically Detecting and Tolerating IF-Condition Data Races Shanxiang Qi (Google), Abdullah Muzahid (University of San Antonio), Wonsun Ahn, Josep Torrellas University of Illinois at Urbana-Champaign

More information

Parallelism Marco Serafini

Parallelism Marco Serafini Parallelism Marco Serafini COMPSCI 590S Lecture 3 Announcements Reviews First paper posted on website Review due by this Wednesday 11 PM (hard deadline) Data Science Career Mixer (save the date!) November

More information

Debugging (Part 2) 1

Debugging (Part 2) 1 Debugging (Part 2) 1 Programming in the Large Steps Design & Implement Program & programming style (done) Common data structures and algorithms Modularity Building techniques & tools (done) Test Testing

More information

Performance Optimization: Simulation and Real Measurement

Performance Optimization: Simulation and Real Measurement Performance Optimization: Simulation and Real Measurement KDE Developer Conference, Introduction Agenda Performance Analysis Profiling Tools: Examples & Demo KCachegrind: Visualizing Results What s to

More information

Computer Organization: A Programmer's Perspective

Computer Organization: A Programmer's Perspective Profiling Oren Kapah orenkapah.ac@gmail.com Profiling: Performance Analysis Performance Analysis ( Profiling ) Understanding the run-time behavior of programs What parts are executed, when, for how long

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Improving the Productivity of Scalable Application Development with TotalView May 18th, 2010

Improving the Productivity of Scalable Application Development with TotalView May 18th, 2010 Improving the Productivity of Scalable Application Development with TotalView May 18th, 2010 Chris Gottbrath Principal Product Manager Rogue Wave Major Product Offerings 2 TotalView Technologies Family

More information