Hardware Performance Monitoring with PAPI
|
|
|
- Buddy Boyd
- 10 years ago
- Views:
Transcription
1 Hardware Performance Monitoring with PAPI Dan Terpstra Workshop July 2007
2 What s s PAPI? Middleware that provides a consistent programming interface for the performance counter hardware found in most major micro-processors. Countable events are defined in two ways: Platform-neutral Preset Events Platform-dependent Native Events Preset Events can be derived from multiple Native Events All events are referenced by name and collected into EventSets for sampling Events can be multiplexed if counters are limited Statistical sampling is implemented by: Software overflow with timer driven sampling Hardware overflow if supported by the platform
3 Where s s PAPI PAPI runs on most modern processors and Operating Systems of interest to HPC: IBM POWER{3, 4, 5} / AIX POWER{4, 5, 6} / Linux PowerPC{-32, -64, 970} / Linux Blue Gene / L Intel Pentium II, III, 4, M, Core, etc. / Linux Intel Itanium{1, 2, Montecito?} AMD Athlon, Opteron / Linux Cray T3E, X1, XD3, XT{3, 4} Catamount Altix, Sparc, SiCortex and even Windows! but not Mac
4 History of PAPI Started as a Parallel Tools Consortium project in 1998 Goal: Produce a specification for a portable interface to the hardware performance counters available on most modern microprocessors.
5 Release Timeline Figure 2: Timeline of releases for each tool represented in the project. The vertical dashed lines indicate SC conference dates where the tools are regularly demonstrated. TAU s v1.0 release occurred at SC 97. SDCI HPC Improvement: High-Productivity Performance Engineering (Tools, Methods, Training) for the NSF HPC Applications Submitted January 22, 2007 Allen D. Malony, Sameer Shende, Shirley Moore, Nicholas Nystrom, Rick Kufrin
6 Some Tools that use PAPI TAU (U Oregon) HPCToolkit (Rice Univ) KOJAK (UTK, FZ Juelich) PerfSuite (NCSA) Titanium (UC Berkeley) SCALEA (Thomas Fahringer, U Innsbruck) Open Speedshop (SGI) SvPablo (UNC Renaissance Computing Institute)
7 Current PAPI Design Low Level API Hi Level API Portable PAPI Framework Layer PAPI Component Layer Platform Dependent Kernel Patch Operating System Perf Counter Hardware Two exposed interfaces to the underlying counter hardware: 1. The low level API manages hardware events in user defined groups called EventSets, and provides access to advanced features. 2. The high level API provides the ability to start, stop and read the counters for a specified list of events.
8 PAPI Hardware Events Preset Events Standard set of over 100 events for application performance tuning No standardization of the exact definition Mapped to either single or linear combinations of native events on each platform Use papi_avail utility to see what preset events are available on a given platform Native Events Any event countable by the CPU Same interface as for preset events Use papi_native_avail utility to see all available native events Use papi_event_chooser utility to select a compatible set of events
9 Data and Instruction Range Qualification Generalized PAPI interface for data structure and instruction address range qualification Applied to the specific instance of the Itanium2 Extended an existing PAPI call, PAPI_set_opt(), to specify starting and ending addresses of data structures or instructions to be instrumented option.addr.eventset = EventSet; option.addr.start = (caddr_t)array; option.addr.end = (caddr_t)(array + size_array); retval = PAPI_set_opt(PAPI_DATA_ADDRESS, &option); An instruction range can be set using PAPI_INSTR_ADDRESS papi_native_avail was modified to list events that support data or instruction address range qualification.
10 PAPI Preset Events Of ~100 events, over half are cache related: PAPI_L1_DCH: PAPI_L1_DCA: PAPI_L1_DCR: PAPI_L1_DCW: PAPI_L1_DCM: PAPI_L1_ICH: PAPI_L1_ICA: PAPI_L1_ICR: PAPI_L1_ICW: PAPI_L1_ICM: PAPI_L1_TCH: PAPI_L1_TCA: PAPI_L1_TCR: PAPI_L1_TCW: PAPI_L1_TCM: Level 1 data cache hits Level 1 data cache accesses Level 1 data cache reads Level 1 data cache writes Level 1 data cache misses Level 1 instruction cache hits Level 1 instruction cache accesses Level 1 instruction cache reads Level 1 instruction cache writes Level 1 instruction cache misses Level 1 total cache hits Level 1 total cache accesses Level 1 total cache reads Level 1 total cache writes Level 1 cache misses PAPI_L1_LDM: Level 1 load misses PAPI_L1_STM: Level 1 store misses Repeat for Levels 2 and 3
11 PAPI Preset Events (ii) Other cache and memory events: Shared cache TLB Resource Stalls PAPI_CA_SNP: PAPI_CA_SHR: PAPI_CA_CLN: PAPI_CA_INV: PAPI_CA_ITV: PAPI_TLB_DM: PAPI_TLB_IM: PAPI_TLB_TL: PAPI_TLB_SD: PAPI_LD_INS: PAPI_SR_INS: PAPI_MEM_SCY: PAPI_MEM_RCY: PAPI_MEM_WCY: PAPI_RES_STL: PAPI_FP_STAL: Requests for a snoop Requests for exclusive access to shared cache line Requests for exclusive access to clean cache line Requests for cache line invalidation Requests for cache line intervention Data translation lookaside buffer misses Instruction translation lookaside buffer misses Total translation lookaside buffer misses Translation lookaside buffer shootdowns Load instructions Store instructions Cycles Stalled Waiting for memory accesses Cycles Stalled Waiting for memory Reads Cycles Stalled Waiting for memory writes Cycles stalled on any resource Cycles the FP unit(s) are stalled
12 PAPI Preset Events (iii) Program flow: Branches PAPI_BR_INS: PAPI_BR_UCN: PAPI_BR_CN: PAPI_BR_TKN: PAPI_BR_NTK: PAPI_BR_MSP: PAPI_BR_PRC: PAPI_BTAC_M: Branch instructions Unconditional branch instructions Conditional branch instructions Conditional branch instructions taken Conditional branch instructions not taken Conditional branch instructions mispredicted Conditional branch instructions correctly predicted Branch target address cache misses Conditional Stores PAPI_CSR_FAL: PAPI_CSR_SUC: PAPI_CSR_TOT: Failed store conditional instructions Successful store conditional instructions Total store conditional instructions
13 PAPI Preset Events (iv) Timing, efficiency, pipeline: PAPI_TOT_CYC: PAPI_TOT_IIS: PAPI_TOT_INS: PAPI_INT_INS: PAPI_LST_INS: PAPI_SYC_INS: PAPI_BRU_IDL: PAPI_FXU_IDL: PAPI_FPU_IDL: PAPI_LSU_IDL: PAPI_STL_ICY: PAPI_FUL_ICY: PAPI_STL_CCY: PAPI_FUL_CCY: PAPI_HW_INT: Total cycles Instructions issued Instructions completed Integer instructions completed Load/store instructions completed Synchronization instructions completed Cycles branch units are idle Cycles integer units are idle Cycles floating point units are idle Cycles load/store units are idle Cycles with no instruction issue Cycles with maximum instruction issue Cycles with no instructions completed Cycles with maximum instructions completed Hardware interrupts
14 PAPI Preset Events (v) Floating point: PAPI_FP_INS: PAPI_FP_OPS: PAPI_FML_INS: PAPI_FAD_INS: PAPI_FDV_INS: PAPI_FSQ_INS: PAPI_FNV_INS: PAPI_FMA_INS: PAPI_VEC_INS: Floating point instructions Floating point operations Floating point multiply instructions Floating point add instructions Floating point divide instructions Floating point square root instructions Floating point inverse instructions FMA instructions completed Vector/SIMD instructions
15 What s s a Native Event? PMD: AMD Athlon, Opteron 8 mask bits 8 bits: 256 events PMC: Intel Pentium II, III, M, Core; AMD Athlon, Opteron 6 bits: 64 events 16 mask bits PMC: Pentium 4
16 Intel Pentium Core: L2_ST {.pme_name = "L2_ST",.pme_code = 0x2a,.pme_flags = PFMLIB_CORE_CSPEC,.pme_desc = "L2 store requests",.pme_umasks = { {.pme_uname = "MESI",.pme_udesc = "Any cacheline access",.pme_ucode = 0xf }, {.pme_uname = "I_STATE",.pme_udesc = "Invalid cacheline",.pme_ucode = 0x1 }, {.pme_uname = "S_STATE",.pme_udesc = "Shared cacheline",.pme_ucode = 0x2 }, {.pme_uname = "E_STATE",.pme_udesc = "Exclusive cacheline",.pme_ucode = 0x4 }, {.pme_uname = "M_STATE",.pme_udesc = "Modified cacheline",.pme_ucode = 0x8 } {.pme_uname = "SELF",.pme_udesc = "This core",.pme_ucode = 0x40 }, {.pme_uname = "BOTH_CORES",.pme_udesc = "Both cores",.pme_ucode = 0xc0 } },.pme_numasks = 7 }, PRESET, PAPI_L2_DCA, DERIVED_ADD, L2_LD:SELF:ANY:MESI, L2_ST:SELF:MESI
17 How many counters does it take (3 fixed) 8:16 4: (6:2) 18 0 Pentium Pentium II Pentium III Pentium M Itanium AMD Athlon AMD Opteron SiCortex MIPS Intel Core POWER3 POWER4 Cell POWER5 Pentium 4 BG/L Cray X1 S1
18 PAPI and BG/L 2 FPU PMCs 2 FPU PMCs UPC Module 48 Shared Counters Performance Counters: 48 UPC Counters shared by both CPUs External to CPU cores 32 bits :( 2 Counters on each FPU 1 counts load/stores 1 counts arithmetic operations Accessed via blg_perfctr 15 Preset Events 10 PAPI presets 5 Custom BG/L presets 328 native events available
19 Cell Broadband Engine Each Cell contains: 1 PPE and 8 SPEs. and 1 PMU external to all of these bit counters configurable as 4 32-bit counters slot 128-bit trace buffer 400 native events Working with IBM engineers on developing perfmon2 libpfm layer for Cell BE Linux Cell BE kernel modifications Porting PAPI-C (LANL grant)
20 Top500 Operating Systems
21 Perfctr Written by Mikael Petterson Labor of love First available: Fall 1999 First PAPI use: Fall 2000 Supports: Intel Pentium II, III, 4, M, Core AMD K7 (Athlon), K8 (Opteron) IBM PowerPC 970, POWER4, POWER5
22 Perfctr Features Patches the Linux kernel Saves perf counters on context switch Virtualizes counters to 64-bits Memory-maps counters for fast access Supports counter overflow interrupts where available User Space Library PAPI uses about a dozen calls
23 Perfctr Timeline Steady development Concerted effort for kernel inclusion May 2004 May 2005 Ported to Cray Catamount; Power Linux ~ 2005 Maintenance only 2005
24 Perfmon Written by Stephane HP Originally Itanium only Built-in to the Linux-ia64 kernel since System call interface libpfm helper library for bookkeeping
25 Perfmon2* Provides a generic interface to access PMU Not dedicated to one app, avoid fragmentation Must be portable across all PMU models: Almost all PMU-specific knowledge in user level libraries Supports per-thread monitoring Self-monitoring, unmodified binaries, attach/detach multi-threaded and multi-process workloads Supports system-wide monitoring Supports counting and sampling No modification to applications or system Built-in, efficient, robust, secure, simple, documented * Slide contents courtesy Stephane Eranian
26 Perfmon2 Setup done through external support library Uses a system call for counting operations More flexibility, ties with ctxsw, exit, fork Kernel compile-time option on Linux Perfmon2 context encapsulates all PMU state Each context uniquely identified by file descriptor int perfmonctl(int fd, int cmd, void *arg, int narg) PFM_CREATE_CONTEXT PFM_WRITE_PMCS PFM_WRITE_PMDS PFM_CREATE_EVTSET PFM_GETINFO_PMCS PFM_GET_CONFIG PFM_READ_PMDS PFM_LOAD_CONTEXT PFM_UNLOAD_CONTEXT PFM_DELETE_EVTSET PFM_GETINFO_PMDS PFM_SET_CONFIG PFM_START PFM_STOP PFM_RESTART PFM_GETINFO_EVTSET
27 Perfmon2 Features Support today for: Intel Itanium, P6, M, Core, Pentium4, AMD Opteron, IBM Power, MIPS, SiCortex Full native event tables for supported processors Kernel based Multiplexing Event set chaining Kernel based Sampling/Overflow Time or event based Custom sampling buffers
28 Next Steps Kernel integration Final integration testing underway Possible inclusion in kernel Implemented by Cray in CNK, X2 Cell BE Port with IBM engineers is underway Leverage libpfm for PAPI native events Migration completed for P6, Core, P4, Opteron PAPI testing on perfmon2 patched kernels Opteron currently being tested Woodcrest/Clovertown testing planned
29 Component PAPI (PAPI-C) Goals: Support simultaneous access to on- and offprocessor counters Isolate hardware dependent code in a separable component module Extend platform independent framework code to support multiple simultaneous components Add or modify API calls to support access to any of several components Modify build environment for easy selection and configuration of multiple available components Will be released (RSN*) as PAPI 4.0
30 Current PAPI Design Low Level API Hi Level API Portable PAPI Framework Layer PAPI Component Layer Platform Dependent Kernel Patch Operating System Perf Counter Hardware
31 Component PAPI Design Low Level API Hi Level API PAPI Framework Layer PAPI Component Layer (network) Kernel Patch Operating System Perf Counter Hardware Devel API Devel API PAPI Component Layer (CPU) Kernel Patch Operating System Perf Counter Hardware Devel API PAPI Component Layer (thermal) Kernel Patch Operating System Perf Counter Hardware
32 PAPI-C C Status PAPI 3.9 pre-release available with documentation Implemented Myrinet substrate (native counters) Implemented ACPI temperature sensor substrate Working on Infiniband and Cray Seastar substrates (access to Seastar counters not available under Catamount but expected under CNL) Asked by Cray engineers for input on desired metrics for next network switch Tested on HPC Challenge benchmarks Tested platforms include Pentium III, Pentium 4, Core2Duo, Itanium (I and II) and AMD Opteron
33 PAPI-C C New Routines PAPI_get_component_info() PAPI_num_cmp_hwctrs() PAPI_get_cmp_opt() PAPI_set_cmp_opt() PAPI_set_cmp_domain() PAPI_set_cmp_granularity()
34 PAPI-C C Building and Linking CPU components are automatically detected by configure and included in the build CPU component assumed to be present and always configured as component 0 To include additional components, use configure option --with-<cmp> = yes Currently supported components with-acpi = yes with-mx = yes with-net = yes The make process compiles and links sources for all requested components into a single library
35 Myrinet Myrinet MX Counters MX Counters ROUTE_DISPERSION OUT_OF_SEND_HANDLES OUT_OF_PULL_HANDLES OUT_OF_PUSH_HANDLES MEDIUM_CONT_RACE CMD_TYPE_UNKNOWN UREQ_TYPE_UNKNOWN INTERRUPTS_OVERRUN WAITING_FOR_INTERRUPT_DMA WAITING_FOR_INTERRUPT_ACK WAITING_FOR_INTERRUPT_TIM ER SLABS_RECYCLING SLABS_PRESSURE SLABS_STARVATION OUT_OF_RDMA_HANDLES EVENTQ_FULL BUFFER_DROP MEMORY_DROP HARDWARE_FLOW_CONTROL SIMULATED_PACKETS_LOST LOGGING_FRAMES_DUMPED WAKE_INTERRUPTS AVERTED_WAKEUP_RACE DMA_METADATA_RACE REPLY_SEND REPLY_RECV QUERY_UNKNOWN DATA_SEND_NULL DATA_SEND_SMALL DATA_SEND_MEDIUM DATA_SEND_RNDV DATA_SEND_PULL DATA_RECV_NULL DATA_RECV_SMALL_INLINE DATA_RECV_SMALL_COPY DATA_RECV_MEDIUM DATA_RECV_RNDV DATA_RECV_PULL ETHER_SEND_UNICAST_CNT ETHER_SEND_MULTICAST_C NT ETHER_RECV_SMALL_CNT ETHER_RECV_BIG_CNT ETHER_OVERRUN ETHER_OVERSIZED DATA_RECV_NO_CREDITS PACKETS_RESENT PACKETS_DROPPED MAPPER_ROUTES_UPDATE ACK_NACK_FRAMES_IN_PIPE NACK_BAD_ENDPT NACK_ENDPT_CLOSED NACK_BAD_SESSION NACK_BAD_RDMAWIN NACK_EVENTQ_FULL SEND_BAD_RDMAWIN CONNECT_TIMEOUT CONNECT_SRC_UNKNOWN QUERY_BAD_MAGIC QUERY_TIMED_OUT QUERY_SRC_UNKNOWN RAW_SENDS RAW_RECEIVES RAW_OVERSIZED_PACKETS RAW_RECV_OVERRUN RAW_DISABLED CONNECT_SEND CONNECT_RECV ACK_SEND ACK_RECV PUSH_SEND PUSH_RECV QUERY_SEND QUERY_RECV LANAI_UPTIME COUNTERS_UPTIME BAD_CRC8 BAD_CRC32 UNSTRIPPED_ROUTE PKT_DESC_INVALID RECV_PKT_ERRORS PKT_MISROUTED DATA_SRC_UNKNOWN DATA_BAD_ENDPT DATA_ENDPT_CLOSED DATA_BAD_SESSION PUSH_BAD_WINDOW PUSH_DUPLICATE PUSH_OBSOLETE PUSH_RACE_DRIVER PUSH_BAD_SEND_HANDLE _MAGIC PUSH_BAD_SRC_MAGIC PULL_OBSOLETE PULL_NOTIFY_OBSOLETE PULL_RACE_DRIVER ACK_BAD_TYPE ACK_BAD_MAGIC ACK_RESEND_RACE LATE_ACK
36 Myrinet Myrinet MX Counters MX Counters ROUTE_DISPERSION OUT_OF_SEND_HANDLES OUT_OF_PULL_HANDLES OUT_OF_PUSH_HANDLES MEDIUM_CONT_RACE CMD_TYPE_UNKNOWN UREQ_TYPE_UNKNOWN INTERRUPTS_OVERRUN WAITING_FOR_INTERRUPT_DMA WAITING_FOR_INTERRUPT_ACK WAITING_FOR_INTERRUPT_TIM ER SLABS_RECYCLING SLABS_PRESSURE SLABS_STARVATION OUT_OF_RDMA_HANDLES EVENTQ_FULL BUFFER_DROP MEMORY_DROP HARDWARE_FLOW_CONTROL SIMULATED_PACKETS_LOST LOGGING_FRAMES_DUMPED WAKE_INTERRUPTS AVERTED_WAKEUP_RACE DMA_METADATA_RACE REPLY_SEND REPLY_RECV QUERY_UNKNOWN DATA_SEND_NULL DATA_SEND_SMALL DATA_SEND_MEDIUM DATA_SEND_RNDV DATA_SEND_PULL DATA_RECV_NULL DATA_RECV_SMALL_INLINE DATA_RECV_SMALL_COPY DATA_RECV_MEDIUM DATA_RECV_RNDV DATA_RECV_PULL ETHER_SEND_UNICAST_CNT ETHER_SEND_MULTICAST_C NT ETHER_RECV_SMALL_CNT ETHER_RECV_BIG_CNT ETHER_OVERRUN ETHER_OVERSIZED DATA_RECV_NO_CREDITS PACKETS_RESENT PACKETS_DROPPED MAPPER_ROUTES_UPDATE ACK_NACK_FRAMES_IN_PIPE NACK_BAD_ENDPT NACK_ENDPT_CLOSED NACK_BAD_SESSION NACK_BAD_RDMAWIN NACK_EVENTQ_FULL SEND_BAD_RDMAWIN CONNECT_TIMEOUT CONNECT_SRC_UNKNOWN QUERY_BAD_MAGIC QUERY_TIMED_OUT QUERY_SRC_UNKNOWN RAW_SENDS RAW_RECEIVES RAW_OVERSIZED_PACKETS RAW_RECV_OVERRUN RAW_DISABLED CONNECT_SEND CONNECT_RECV ACK_SEND ACK_RECV PUSH_SEND PUSH_RECV QUERY_SEND QUERY_RECV LANAI_UPTIME COUNTERS_UPTIME BAD_CRC8 BAD_CRC32 UNSTRIPPED_ROUTE PKT_DESC_INVALID RECV_PKT_ERRORS PKT_MISROUTED DATA_SRC_UNKNOWN DATA_BAD_ENDPT DATA_ENDPT_CLOSED DATA_BAD_SESSION PUSH_BAD_WINDOW PUSH_DUPLICATE PUSH_OBSOLETE PUSH_RACE_DRIVER PUSH_BAD_SEND_HANDLE _MAGIC PUSH_BAD_SRC_MAGIC PULL_OBSOLETE PULL_NOTIFY_OBSOLETE PULL_RACE_DRIVER ACK_BAD_TYPE ACK_BAD_MAGIC ACK_RESEND_RACE LATE_ACK
37 Multiple Measurements The HPCC HPL benchmark with 3 performance metrics: FLOPS; Temperature; Network Sends/Receives Temperature is from an on-chip thermal diode
38 Multiple Measurements (2) The HPCC HPL benchmark with 3 performance metrics: FLOPS; Temperature; Network Sends/Receives Temperature is from an on-chip thermal diode
39 Eclipse PTP IDE
40 Performance Evaluation within Eclipse PTP
41 TAU and PAPI Plugins for Eclipse PTP
42 Potential Autotuning Opportunities Provide feedback to compilers or search engines Run-time monitoring for dynamic tuning or selection Minimally intrusive collection of algorithm/application statistics How little data do we need? How can we find the needle in the haystack? Other suggestions?
43 Conclusions PAPI has a long track record of successful adoption and use. New architectures pose a challenge for off-processor hardware monitoring as well as interpretation of counter values. Integration of perfmon2 into the Linux kernel will broaden the base of PAPI users still further.
44 Hardware Performance Monitoring with PAPI Dan Terpstra Workshop July 2007
Performance Application Programming Interface
/************************************************************************************ ** Notes on Performance Application Programming Interface ** ** Intended audience: Those who would like to learn more
A Brief Survery of Linux Performance Engineering. Philip J. Mucci University of Tennessee, Knoxville [email protected]
A Brief Survery of Linux Performance Engineering Philip J. Mucci University of Tennessee, Knoxville [email protected] Overview On chip Hardware Performance Counters Linux Performance Counter Infrastructure
PAPI - PERFORMANCE API. ANDRÉ PEREIRA [email protected]
1 PAPI - PERFORMANCE API ANDRÉ PEREIRA [email protected] 2 Motivation Application and functions execution time is easy to measure time gprof valgrind (callgrind) It is enough to identify bottlenecks,
Performance Counter. Non-Uniform Memory Access Seminar Karsten Tausche 2014-12-10
Performance Counter Non-Uniform Memory Access Seminar Karsten Tausche 2014-12-10 Performance Counter Hardware Unit for event measurements Performance Monitoring Unit (PMU) Originally for CPU-Debugging
perfmon2: a flexible performance monitoring interface for Linux perfmon2: une interface flexible pour l'analyse de performance sous Linux
perfmon2: a flexible performance monitoring interface for Linux perfmon2: une interface flexible pour l'analyse de performance sous Linux Stéphane Eranian HP Labs July 2006 Ottawa Linux Symposium 2006
Perfmon2: a standard performance monitoring interface for Linux. Stéphane Eranian <[email protected]>
Perfmon2: a standard performance monitoring interface for Linux Stéphane Eranian Agenda PMU-based performance monitoring Overview of the interface Current status Tools Challenges 2
A Scalable Cross-Platform Infrastructure for Application Performance Tuning Using Hardware Counters
A Scalable Cross-Platform Infrastructure for Application Performance Tuning Using Hardware Counters S. Browne, J. Dongarra +, N. Garner, K. London, and P. Mucci Introduction For years collecting performance
Performance Analysis Tools and PAPI
Performance Analysis Tools and PAPI Philip J. Mucci [email protected] Innovative Computing Laboratory, Knoxville, TN Center for Parallel Computers, Stockholm, Sweden Linux Performance Infrastructure Contrary
STUDY OF PERFORMANCE COUNTERS AND PROFILING TOOLS TO MONITOR PERFORMANCE OF APPLICATION
STUDY OF PERFORMANCE COUNTERS AND PROFILING TOOLS TO MONITOR PERFORMANCE OF APPLICATION 1 DIPAK PATIL, 2 PRASHANT KHARAT, 3 ANIL KUMAR GUPTA 1,2 Depatment of Information Technology, Walchand College of
Linux/ia64 support for performance monitoring
Linux/ia64 support for performance monitoring Stéphane Eranian HP Labs Gelato Meeting, May 2004 UIUC, IL 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change
Perfmon2: A leap forward in Performance Monitoring
Perfmon2: A leap forward in Performance Monitoring Sverre Jarp, Ryszard Jurga, Andrzej Nowak CERN, Geneva, Switzerland [email protected] Abstract. This paper describes the software component, perfmon2,
End-user Tools for Application Performance Analysis Using Hardware Counters
1 End-user Tools for Application Performance Analysis Using Hardware Counters K. London, J. Dongarra, S. Moore, P. Mucci, K. Seymour, T. Spencer Abstract One purpose of the end-user tools described in
Multi-Threading Performance on Commodity Multi-Core Processors
Multi-Threading Performance on Commodity Multi-Core Processors Jie Chen and William Watson III Scientific Computing Group Jefferson Lab 12000 Jefferson Ave. Newport News, VA 23606 Organization Introduction
Using PAPI for hardware performance monitoring on Linux systems
Using PAPI for hardware performance monitoring on Linux systems Jack Dongarra, Kevin London, Shirley Moore, Phil Mucci, and Dan Terpstra Innovative Computing Laboratory, University of Tennessee, Knoxville,
Perfmon2: a flexible performance monitoring interface for Linux
Perfmon2: a flexible performance monitoring interface for Linux Stéphane Eranian HP Labs [email protected] Abstract Monitoring program execution is becoming more than ever key to achieving world-class
Full and Para Virtualization
Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels
Performance Monitoring of the Software Frameworks for LHC Experiments
Proceedings of the First EELA-2 Conference R. mayo et al. (Eds.) CIEMAT 2009 2009 The authors. All rights reserved Performance Monitoring of the Software Frameworks for LHC Experiments William A. Romero
An Implementation Of Multiprocessor Linux
An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than
D5.6 Prototype demonstration of performance monitoring tools on a system with multiple ARM boards Version 1.0
D5.6 Prototype demonstration of performance monitoring tools on a system with multiple ARM boards Document Information Contract Number 288777 Project Website www.montblanc-project.eu Contractual Deadline
Multi-core architectures. Jernej Barbic 15-213, Spring 2007 May 3, 2007
Multi-core architectures Jernej Barbic 15-213, Spring 2007 May 3, 2007 1 Single-core computer 2 Single-core CPU chip the single core 3 Multi-core architectures This lecture is about a new trend in computer
Performance Fundamentals. Application Performance Tuning. Serial Efficiency. Algorithmic Efficiency
Introduction to Performance Engineering in HPC Performance Foundations Performance Fundamentals Application Performance Tuning M. D. Jones, Ph.D. Center for Computational Research University at Buffalo
Introduction to Virtual Machines
Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 Abstraction Mechanism to manage complexity
The Intel VTune Performance Analyzer
The Intel VTune Performance Analyzer Focusing on Vtune for Intel Itanium running Linux* OS Copyright 2002 Intel Corporation. All rights reserved. VTune and the Intel logo are trademarks or registered trademarks
Application Performance Analysis Tools and Techniques
Mitglied der Helmholtz-Gemeinschaft Application Performance Analysis Tools and Techniques 2012-06-27 Christian Rössel Jülich Supercomputing Centre [email protected] EU-US HPC Summer School Dublin
On the Importance of Thread Placement on Multicore Architectures
On the Importance of Thread Placement on Multicore Architectures HPCLatAm 2011 Keynote Cordoba, Argentina August 31, 2011 Tobias Klug Motivation: Many possibilities can lead to non-deterministic runtimes...
THE BASICS OF PERFORMANCE- MONITORING HARDWARE
THE BASICS OF PERFORMANCE- MONITORING HARDWARE PERFORMANCE-MONITORING FEATURES PROVIDE DATA THAT DESCRIBE HOW AN APPLICATION AND THE OPERATING SYSTEM ARE PERFORMING ON THE PROCESSOR. THIS INFORMATION CAN
A Study of Performance Monitoring Unit, perf and perf_events subsystem
A Study of Performance Monitoring Unit, perf and perf_events subsystem Team Aman Singh Anup Buchke Mentor Dr. Yann-Hang Lee Summary Performance Monitoring Unit, or the PMU, is found in all high end processors
Basic Performance Measurements for AMD Athlon 64, AMD Opteron and AMD Phenom Processors
Basic Performance Measurements for AMD Athlon 64, AMD Opteron and AMD Phenom Processors Paul J. Drongowski AMD CodeAnalyst Performance Analyzer Development Team Advanced Micro Devices, Inc. Boston Design
Performance Monitoring of Parallel Scientific Applications
Performance Monitoring of Parallel Scientific Applications Abstract. David Skinner National Energy Research Scientific Computing Center Lawrence Berkeley National Laboratory This paper introduces an infrastructure
Performance monitoring of the software frameworks for LHC experiments
Performance monitoring of the software frameworks for LHC experiments William A. Romero R. [email protected] J.M. Dana [email protected] First EELA-2 Conference Bogotá, COL OUTLINE Introduction
PAPI-V: Performance Monitoring for Virtual Machines
PAPI-V: Performance Monitoring for Virtual Machines Matt Johnson, Heike McCraw, Shirley Moore, Phil Mucci, John Nelson, Dan Terpstra, Vince Weaver Electrical Engineering and Computer Science Dept. University
VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D
ware and CPU Virtualization Technology Jack Lo Sr. Director, R&D This presentation may contain ware confidential information. Copyright 2005 ware, Inc. All rights reserved. All other marks and names mentioned
Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:
Virtual Machines Uses for Virtual Machines Virtual machine technology, often just called virtualization, makes one computer behave as several computers by sharing the resources of a single computer between
Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...
Contents Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...3 The Challenges of x86 Hardware Virtualization...3 Technique 1 - Full Virtualization using Binary Translation...4 Technique
Operating System Impact on SMT Architecture
Operating System Impact on SMT Architecture The work published in An Analysis of Operating System Behavior on a Simultaneous Multithreaded Architecture, Josh Redstone et al., in Proceedings of the 9th
Libmonitor: A Tool for First-Party Monitoring
Libmonitor: A Tool for First-Party Monitoring Mark W. Krentel Dept. of Computer Science Rice University 6100 Main St., Houston, TX 77005 [email protected] ABSTRACT Libmonitor is a library that provides
Release Notes for Open Grid Scheduler/Grid Engine. Version: Grid Engine 2011.11
Release Notes for Open Grid Scheduler/Grid Engine Version: Grid Engine 2011.11 New Features Berkeley DB Spooling Directory Can Be Located on NFS The Berkeley DB spooling framework has been enhanced such
Performance monitoring at CERN openlab. July 20 th 2012 Andrzej Nowak, CERN openlab
Performance monitoring at CERN openlab July 20 th 2012 Andrzej Nowak, CERN openlab Data flow Reconstruction Selection and reconstruction Online triggering and filtering in detectors Raw Data (100%) Event
Basics of VTune Performance Analyzer. Intel Software College. Objectives. VTune Performance Analyzer. Agenda
Objectives At the completion of this module, you will be able to: Understand the intended purpose and usage models supported by the VTune Performance Analyzer. Identify hotspots by drilling down through
VxWorks Guest OS Programmer's Guide for Hypervisor 1.1, 6.8. VxWorks GUEST OS PROGRAMMER'S GUIDE FOR HYPERVISOR 1.1 6.8
VxWorks Guest OS Programmer's Guide for Hypervisor 1.1, 6.8 VxWorks GUEST OS PROGRAMMER'S GUIDE FOR HYPERVISOR 1.1 6.8 Copyright 2009 Wind River Systems, Inc. All rights reserved. No part of this publication
Data Structure Oriented Monitoring for OpenMP Programs
A Data Structure Oriented Monitoring Environment for Fortran OpenMP Programs Edmond Kereku, Tianchao Li, Michael Gerndt, and Josef Weidendorfer Institut für Informatik, Technische Universität München,
Performance Tools for Parallel Java Environments
Performance Tools for Parallel Java Environments Sameer Shende and Allen D. Malony Department of Computer and Information Science, University of Oregon {sameer,malony}@cs.uoregon.edu http://www.cs.uoregon.edu/research/paracomp/tau
Next Generation GPU Architecture Code-named Fermi
Next Generation GPU Architecture Code-named Fermi The Soul of a Supercomputer in the Body of a GPU Why is NVIDIA at Super Computing? Graphics is a throughput problem paint every pixel within frame time
GPU Profiling with AMD CodeXL
GPU Profiling with AMD CodeXL Software Profiling Course Hannes Würfel OUTLINE 1. Motivation 2. GPU Recap 3. OpenCL 4. CodeXL Overview 5. CodeXL Internals 6. CodeXL Profiling 7. CodeXL Debugging 8. Sources
Obtaining Hardware Performance Metrics for the BlueGene/L Supercomputer
Obtaining Hardware Performance Metrics for the BlueGene/L Supercomputer Pedro Mindlin, José R. Brunheroto, Luiz DeRose, and José E. Moreira pamindli,brunhe,laderose,jmoreira @us.ibm.com IBM Thomas J. Watson
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux
White Paper Real-time Capabilities for Linux SGI REACT Real-Time for Linux Abstract This white paper describes the real-time capabilities provided by SGI REACT Real-Time for Linux. software. REACT enables
9/26/2011. What is Virtualization? What are the different types of virtualization.
CSE 501 Monday, September 26, 2011 Kevin Cleary [email protected] What is Virtualization? What are the different types of virtualization. Practical Uses Popular virtualization products Demo Question,
Application Note 195. ARM11 performance monitor unit. Document number: ARM DAI 195B Issued: 15th February, 2008 Copyright ARM Limited 2007
Application Note 195 ARM11 performance monitor unit Document number: ARM DAI 195B Issued: 15th February, 2008 Copyright ARM Limited 2007 Copyright 2007 ARM Limited. All rights reserved. Application Note
Introduction to RISC Processor. ni logic Pvt. Ltd., Pune
Introduction to RISC Processor ni logic Pvt. Ltd., Pune AGENDA What is RISC & its History What is meant by RISC Architecture of MIPS-R4000 Processor Difference Between RISC and CISC Pros and Cons of RISC
Towards an Implementation of the OpenMP Collector API
John von Neumann Institute for Computing Towards an Implementation of the OpenMP Collector API Van Bui, Oscar Hernandez, Barbara Chapman, Rick Kufrin, Danesh Tafti, Pradeep Gopalkrishnan published in Parallel
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Virtualization. Dr. Yingwu Zhu
Virtualization Dr. Yingwu Zhu What is virtualization? Virtualization allows one computer to do the job of multiple computers. Virtual environments let one computer host multiple operating systems at the
Analyzing PAPI Performance on Virtual Machines. John Nelson
Analyzing PAPI Performance on Virtual Machines John Nelson I. OVERVIEW Over the last ten years, virtualization techniques have become much more widely popular as a result of fast and cheap processors.
Architecture of the Kernel-based Virtual Machine (KVM)
Corporate Technology Architecture of the Kernel-based Virtual Machine (KVM) Jan Kiszka, Siemens AG, CT T DE IT 1 Corporate Competence Center Embedded Linux [email protected] Copyright Siemens AG 2010.
Computer Architecture TDTS10
why parallelism? Performance gain from increasing clock frequency is no longer an option. Outline Computer Architecture TDTS10 Superscalar Processors Very Long Instruction Word Processors Parallel computers
Getting the Performance Out Of High Performance Computing. Getting the Performance Out Of High Performance Computing
Getting the Performance Out Of High Performance Computing Jack Dongarra Innovative Computing Lab University of Tennessee and Computer Science and Math Division Oak Ridge National Lab http://www.cs.utk.edu/~dongarra/
Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool
Outline CS 6V81-05: System Security and Malicious Code Analysis Overview of System ization: The most powerful platform for program analysis and system security Zhiqiang Lin Department of Computer Science
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM 1 The ARM architecture processors popular in Mobile phone systems 2 ARM Features ARM has 32-bit architecture but supports 16 bit
Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies
Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies Kurt Klemperer, Principal System Performance Engineer [email protected] Agenda Session Length:
INSTRUCTION LEVEL PARALLELISM PART VII: REORDER BUFFER
Course on: Advanced Computer Architectures INSTRUCTION LEVEL PARALLELISM PART VII: REORDER BUFFER Prof. Cristina Silvano Politecnico di Milano [email protected] Prof. Silvano, Politecnico di Milano
Android Development: a System Perspective. Javier Orensanz
Android Development: a System Perspective Javier Orensanz 1 ARM - Linux and Communities Linux kernel GNU Tools 2 Linaro Partner Initiative Mission: Make open source development easier by delivering a common
Supercomputing 2004 - Status und Trends (Conference Report) Peter Wegner
(Conference Report) Peter Wegner SC2004 conference Top500 List BG/L Moors Law, problems of recent architectures Solutions Interconnects Software Lattice QCD machines DESY @SC2004 QCDOC Conclusions Technical
ELE 356 Computer Engineering II. Section 1 Foundations Class 6 Architecture
ELE 356 Computer Engineering II Section 1 Foundations Class 6 Architecture History ENIAC Video 2 tj History Mechanical Devices Abacus 3 tj History Mechanical Devices The Antikythera Mechanism Oldest known
Tools for Performance Debugging HPC Applications. David Skinner [email protected]
Tools for Performance Debugging HPC Applications David Skinner [email protected] Tools for Performance Debugging Practice Where to find tools Specifics to NERSC and Hopper Principles Topics in performance
Generations of the computer. processors.
. Piotr Gwizdała 1 Contents 1 st Generation 2 nd Generation 3 rd Generation 4 th Generation 5 th Generation 6 th Generation 7 th Generation 8 th Generation Dual Core generation Improves and actualizations
AMD Opteron Quad-Core
AMD Opteron Quad-Core a brief overview Daniele Magliozzi Politecnico di Milano Opteron Memory Architecture native quad-core design (four cores on a single die for more efficient data sharing) enhanced
12. Introduction to Virtual Machines
12. Introduction to Virtual Machines 12. Introduction to Virtual Machines Modern Applications Challenges of Virtual Machine Monitors Historical Perspective Classification 332 / 352 12. Introduction to
Chapter 5 Cloud Resource Virtualization
Chapter 5 Cloud Resource Virtualization Contents Virtualization. Layering and virtualization. Virtual machine monitor. Virtual machine. Performance and security isolation. Architectural support for virtualization.
Code Coverage Testing Using Hardware Performance Monitoring Support
Code Coverage Testing Using Hardware Performance Monitoring Support Alex Shye Matthew Iyer Vijay Janapa Reddi Daniel A. Connors Department of Electrical and Computer Engineering University of Colorado
Models For Modeling and Measuring the Performance of a Xen Virtual Server
Measuring and Modeling the Performance of the Xen VMM Jie Lu, Lev Makhlis, Jianjiun Chen BMC Software Inc. Waltham, MA 2451 Server virtualization technology provides an alternative for server consolidation
- An Essential Building Block for Stable and Reliable Compute Clusters
Ferdinand Geier ParTec Cluster Competence Center GmbH, V. 1.4, March 2005 Cluster Middleware - An Essential Building Block for Stable and Reliable Compute Clusters Contents: Compute Clusters a Real Alternative
Current Trend of Supercomputer Architecture
Current Trend of Supercomputer Architecture Haibei Zhang Department of Computer Science and Engineering [email protected] Abstract As computer technology evolves at an amazingly fast pace,
CS222: Systems Programming
CS222: Systems Programming The Basics January 24, 2008 A Designated Center of Academic Excellence in Information Assurance Education by the National Security Agency Agenda Operating System Essentials Windows
Hardware-based performance monitoring with VTune Performance Analyzer under Linux
Hardware-based performance monitoring with VTune Performance Analyzer under Linux Hassan Shojania [email protected] Abstract All new modern processors have hardware support for monitoring processor performance.
Gary Frost AMD Java Labs [email protected]
Analyzing Java Performance Using Hardware Performance Counters Gary Frost AMD Java Labs [email protected] 2008 by AMD; made available under the EPL v1.0 2 Agenda AMD Java Labs Hardware Performance Counters
Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program
Solution: start more than one instruction in the same clock cycle CPI < 1 (or IPC > 1, Instructions per Cycle) Two approaches:
Multiple-Issue Processors Pipelining can achieve CPI close to 1 Mechanisms for handling hazards Static or dynamic scheduling Static or dynamic branch handling Increase in transistor counts (Moore s Law):
Virtualization Technology. Zhiming Shen
Virtualization Technology Zhiming Shen Virtualization: rejuvenation 1960 s: first track of virtualization Time and resource sharing on expensive mainframes IBM VM/370 Late 1970 s and early 1980 s: became
How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X
(Advanced Topics in) Operating Systems Winter Term 2009 / 2010 Jun.-Prof. Dr.-Ing. André Brinkmann [email protected] Universität Paderborn PC 1 Overview Overview of chapter 3: Case Studies 3.1 Windows Architecture.....3
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
Analysis of Virtualization Tools and Techniques
Analysis of Virtualization Tools and Techniques Mrs. Kavita S. 1, Mrs. Dakshyani G. 2, Mrs. Kiruthika 3 Assistant Professor, Department of Computer Engineering, FCRIT, Vashi, Navi Mumbai, India 1,2 Associate
The Motherboard Chapter #5
The Motherboard Chapter #5 Amy Hissom Key Terms Advanced Transfer Cache (ATC) A type of L2 cache contained within the Pentium processor housing that is embedded on the same core processor die as the CPU
COS 318: Operating Systems
COS 318: Operating Systems OS Structures and System Calls Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Outline Protection mechanisms
PerfSuite: An Accessible, Open Source Performance Analysis Environment for Linux
Presented at The 6th International Conference on Linux Clusters: The HPC Revolution 2005 (LCI-05). Chapel Hill, NC, April 2005 PerfSuite: An Accessible, Open Source Performance Analysis Environment for
Xen and the Art of. Virtualization. Ian Pratt
Xen and the Art of Virtualization Ian Pratt Keir Fraser, Steve Hand, Christian Limpach, Dan Magenheimer (HP), Mike Wray (HP), R Neugebauer (Intel), M Williamson (Intel) Computer Laboratory Outline Virtualization
