amarjeet for their assistance . help and motivation. Ajay Kumar Sharma . I would like to acknowledge the support and encouragement of my friends who help me to make this project.navin .I sincerely thank my faculty Mr.ACKNOWLEDGEMENT I take this opportunity with much pleasure to thank all the people who have helped me through the course of my journey towards producing this project . I am especially grateful to my group mates kamlesh .criticisms and useful insights. I learnt a lot from him. Apart from the subject of my research. which I am sure will be useful in different stages of my life. Sourav Bhattacharya for him guidance.

. Key features include sampling capability. analyzing.NET integration. counter monitor. optional Visual Studio* . and displaying performance data from the system down to the source level. PXA255. call graph capability.GNIIT SEMESTER C SIGNATURE INTRODUCTION Intel® VTune™ analyzers help locate and remove software performance bottlenecks by collecting. and an enhanced Intel® Tuning Assistant. Intel VTune Performance Analyzer provides both a graphical and a command line interface on Windows* platforms. and PXA26x processor-based applications. and remote support for IA-32 and Intel® Itanium® processor-based Linux* applications as well as sampling on Intel® PXA250.

Each node in the Call Graph represents a function (f) and each edge represents the function (g) being called by (f).1.1.What's in Intel VTune Performance Analyzer • • • Hyperthreading support -. AHA technology unlocks the power of Intel's latest Pentium 4 and Xeon Processors. Java. In essence. and Pentium 4 processors with Hyper-Threading technology Automatic Hotspot Analysis (AHA) is a new expert system technology in the Intel Tuning Assistant in VTune 6. such as an analysis that .The Tuning Assistant provides tuning advice based on source code. a cycle in the graph indicates recursive procedure calls. this support includes visibility into the threads running on the Hyperthreaded Intel processors Itanium 2 support Enhancements to Tuning Asst --. g) indicates that procedure f calls procedure g. Call graphs are a basic program analysis result that can be used for human understanding of programs. or as a basis for further analyses.With VTune analyzer 6. each node represents a procedure and each edge (f. A node can be thought of as the "Parent function" and each node as the "Child function A call graph (also known as a call multigraph) is a directed graph that represents calling relationships between subroutines in a computer program. What is a Call Graph? A Call Graph allows the user to view the relationship between Parents and Child subroutines in their program. Specifically.speeding up your code by up to an additional 40% (beyond the speedup you can achieve through algorithmic improvements alone). and where in your code to make them. Thus. by analyzing Event Based Sampling data to quickly identify both what optimizations you should make. operating system counters. It includes tuning advice for Counter Monitor. and Pentium III processor and Pentium 4 processor counter-based data. to take advantage of Hyper-Threading technology and other advanced performance features of Intel's latest processors -.

The edges time is the total time taken by a caller function to execute when it is called from a specific caller function. Fully context-sensitive call graphs are usually not computed statically. call list . Identifying Critical Paths Using Call Graphs Using the call graph collector . Call graphs can be dynamic or static. but only describes one run of the program. as output by a profiler. The least precise call graph is context-insensitive. The exact static call graph is undecidable. This function contain the maximum edges time values in the application . Graph View The graph view display the graphical of the application that you run in VTune Performance Analyzer . Using the three views . and possibly also some call relationships that would never occur in actual runs of the program.tracks the flow of values between procedures. The most precise call graph is fully context-sensitive. which means that for each procedure. so static call graph algorithms are generally overapproximations. VTune Performance Analyzer displays the results of the call graph in three . at the cost of taking longer to compute and more memory to store. One simple application of call graphs is finding procedures that are never called.g. although it may take up a large amount of memory. That is. the graph contains a separate node for each call stack that procedure can be activated with.. A more precise call graph more precisely approximates the behavior of the real program. The graph view also display the caller function . which means that there is only one node for each procedure. and functional summary. synchronized views: graph . Call graphs can be defined to represent varying degrees of precision. In a call graphs . every call relationship that occurs is represented in the graph. a dynamic call graph can be exact. because it would take too long for a large program. the caller . A static call graph is a call graph intended to represent every possible run of the program. you can identify the most time-consuming function in a call sequence. e. Thus. A dynamic call graph is a record of an execution of the program. The critical path is the most time-consuming path in the call sequence of an application that originates from the root function . you can identify the critical path in the application or module. A fully contextsensitive call graph can be computed dynamically easily. the critical path is displayed with a thick red edges and starts from the most time-consuming function or thread.

Performance Metric Total time Description Time spend between the start of the execution of a function and its termination.spent waiting between executing activities. However . Time spent on a function when the thread is suspended. the wait time Self time Total wait time Wait time .including time .function . self time does not include the time spend on child functions. Find potential performance bottlenecks. Function Summary View The function summary view displays all the functions that your application calls along with the performance metrics list in tabular format.and time information as seen in the following figure. However. The time information that the graph view provides enables you to Estimate the performance of your application. Find the critical path. Time spent on a function and its child function when the thread is suspended. Time spend inside a function .

The focus function is the function summary or the graph view. Call Graph profiling reveals: • • • • The structure of your program on a function level. The time spent in each function and Functions on a critical path.does not include the time spend on the child functions of the shown in the following figure. . Calls Number of times a function is called. The number of times a function is called from a particular location. caller function. The call list view has three different section: focus function. Different Value of Performance Metrics in a Call Graph Call List View The call list view displays information about time and calls of the focus function. and callee function .

Each edge (line with an arrow) connecting two nodes represents the call from the caller to the caller function. The edge to the caller with the highest call time is colored in blue. Call Graph profiling implements the following conventions to represent the computing activity: • • • • Nodes colored red designate functions that are on the critical path from the root (thread). • Exporting the Call Graph . and the edge changes its color to red when you click on its arrow. To indicate which function or edge you are trying to get information about.Each node (box) in the call graph (above) represents a function. all selected nodes turn blue and edges turn red. the function changes its color to blue when you click on it. If you select one or more functions with the selection tool. The number next to the edge (line) indicates the number of calls to that function.

The left hand side of the call graph window shows a Collapsing/Expanding tree menu of the Parent and Children function. At this point you should see the Call Graph Window populated with a graphical image showing the relationship between the selected Parent function and its Children functions. The right hand side of the Call Graph window shows a graphical representation of the Parent/Children functions. . right click anywhere in the Call Graph window and select "Export". To populate the Call Graph window. The Call Graph in MPLAB X allows you to perform certain functionalities such as: • • • • Viewing the function declaration View the child of the parent function View the parents of the child function Exporting the Call Graph Viewing Function Declaration MPLAB X allows the user to view the declaration of the selected function using Call Graphs.png file. A "Export Graph As" window will appear. go to the toolbar click on Window-> Output-> Call Graph. An empty (Call Graph) window should appear below your code. Thread Profiler 3. we must first highlight a function in your code. do a right-click and select "Show Call Graph". To view its functionality. [edit] References • Intel Releases Thread Tools. The Call Graph window is divided into two sections. type a file name for your graph and click Save.MPLAB X allows you to export the Call Graph in a .0.1 and Thread Checker 3. hover over the desired function.c file where the function was declared. MPLAB X will then open the . Working with Call Graphs in MPLAB X Call Graph functionality is supported by MPLAB X.1. To view the declaration of the function. To export the Call Graph. right click on it and select "Go to Declaration" . Library For Multicore CPUs CRN test center article on VTune Performance Analyzer 9.

Introduction of VTune …………………………………………… 4. Call List view ……………………………………………………… …………………………………………… 7. What is Call graph ………………………………………………. …………………………………………… Page : 1 Page : 2 Page : 3 Page : 4 Page : 4 Page : 5 Page: 5 2. Graph view ………………………………………………………… 6.• • • • • Product Review: Intel’s VTune 6 Performance Analyzer Gamasutra web site Performance Analysis Tools: A Look at the Intel VTune Performance Analyzer Real World Technologies IEEE Explore (registration required) New Intel VTune Performance Analyzer Helps Optimize Web Services Applications Lock and Lock INDEX 1. Function Summary view . Acknowledgement 3. Identifying Critical path using call graph ………………………… 5.

Exporting the Call graphs ……………………………………………… www. Call Graph profiling reveals ………………………………………… www.scribd.Google .8. 11. Working with call Graphs in MPLABX …………………………….com Edit Refernces ……………………………………………………… Page : 6 Page : 7 Page : 8 Page : 9 Bibliography .Wikipedia.msdn.

These two methods are explained below: .THANK YOU Viewing "The children of the parent function" (Expanding Caller) There are two ways to view what functions are being called from the selected function.

Call graph can now profile applications on remote Intel Itanium processor-based systems running Linux. Viewing "The children of the parent function" using the graphical representation Select a function whom you wish to know its children functions. Right click on the function and select "Expand Callee". A list of children functions should appear in the menu tree as well as in the Graphical representation of the call graph. In the graphical representation of the Call Graph. Right click on the function and select "Expand Callers". Intel® Software Development Products for Intel® Platforms and Technologies Intel® VTune™ Performance Analyzer Call Graph Call graph profiling quickly identifies critical functions and call sequences.Viewing "The children of the parent function" using the tree menu Select a function whom you wish to know its children functions. A graphical representation of all the parents functions calling the selected function should appear in the Call Graph window. Intel Tuning Assistant has extensive tuning knowledge that enables it to suggest optimization . Click on the (+) sign to expand the menu tree. A list of children functions should appear in the menu tree as well as in the Graphical representation of the call graph. select a function whom you wish to know its parent function.

You can now remotely profile software running on Intel PXA250. . such as Java and C++. generate a call graph and identify critical functions and call sequences. Java* and . and generate a call graph of active functions.NET wizards are now better tailored to different profiling scenarios such as profiling an application that is launched outside of the VTune analyzer. functions executed in memory and caller and callee functions of a specific function. In addition. VTune™ Analyzer Product Support Engineer Use the Intel® VTune™ Performance Analyzer to profile your Win32* executable files or Java* applications. This term is frequently used in the compiler and binary translation community. By tracking a call graph. Remote Java profiling on IA-32 systems on Linux is now available. It has been enhanced with tuning advice for software running on Intel Itanium 2 processor and Intel processor code named Prescott. The call graph profiling also generates a Call Graph spreadsheet and call list – all shown in the Call Graph View window. and PXA26x processors using the VTune Performance Analyzer GUI. Call graph With languages that feature dynamic dispatch. including mixed DLLs.NET support has been improved. Mixed mode call graph of Java calls and native module calls is supported on Windows operating systems running on Itanium and Itanium 2 processor-based systems. computing a static call graph precisely requires alias analysis results. Conversely. The Call List view lists all the callers and the callee of the function selected in the spreadsheet (also referred to as the function in question) and displayed in the Call Graph view. Call list tab The window has a Call List tab in the bottom of the Call Graph view. For .techniques. Call Graph profiling allows you to analyze your Windows* or Java application.NET the VTune analyzer can profile Managed C++ applications. PXA255. Many static analysis systems solve the apparent infinite regress by computing both simultaneously. computing precise aliasing requires a call graph. it may be possible to detect anomalies of program execution or code injection attacks[citation needed]. the Call List has a View by Call Sites in which you can see call information represented by call sites: addresses from where the function was actually called. It shows threads created. Both the Java and .

such as resource consumption during the execution of an application Intel Thread Profiler A timeline view shows what threads are doing and how they interact. Counter monitor Provides system level performance information. plus concurrency analysis and locks & waits analysis. It shows the distribution of work to threads and locates load imbalances. This includes things like Data Access Analysis that identifies memory hotspots and relates them to code hotspots. based on instrumenting the binary executable files which is used to produce function calling sequence data Time-based and Event based sampling Sampling is a low overhead statistical method for locating performance bottlenecks. Call graph profiling offers a graphical high-level. Source view Sampling results are displayed line by line on the source / assembly code. If you purchase VTune analyzer. algorithmic view of program execution. branch mis-predictions and other performance issues occur.Graph view Call graph Provides a graphical view of the flow of an application. Event based sampling finds places where cache misses. Time-based sampling finds program “hot spots” that consume a lot of CPU time. . you can also download and use Parallel Amplifier. It adds a statistical call graph (hotspot analysis) which is lower overhead than VTune's exact call graph. Intel Parallel Amplifier Parallel Amplifier is the performance profiler component of Intel Parallel Studio. Performance Tuning Utility (PTU) PTU is a separate download that gives VTune analyzer users access to experimental tuning technology. and helps to identify critical functions and timing details in the applications.

Sign up to vote on this title
UsefulNot useful