SCALASCA parallel performance analyses of SPEC MPI2007 applications

Similar documents
Performance analysis of Sweep3D on Blue Gene/P with Scalasca

Large-scale performance analysis of PFLOTRAN with Scalasca

Automatic trace analysis with the Scalasca Trace Tools

Scalasca performance properties The metrics tour

Large-scale performance analysis of PFLOTRAN with Scalasca

Benchmarking Clusters with High Core-Count Nodes

Scalasca support for Intel Xeon Phi. Brian Wylie & Wolfgang Frings Jülich Supercomputing Centre Forschungszentrum Jülich, Germany

Architecture of Parallel Computer Systems - Performance Benchmarking -

[Scalasca] Tool Integrations

Performance properties The metrics tour

A configurable binary instrumenter

Performance properties The metrics tour

Scalable performance analysis of large-scale parallel applications. Brian Wylie Jülich Supercomputing Centre

Score-P. SC 14: Hands-on Practical Hybrid Parallel Application Performance Engineering 1

Scalasca performance properties The metrics tour

Scalasca 1.4 User Guide

Performance properties The metrics tour

Performance Analysis with Periscope

Performance analysis on Blue Gene/Q with

Developing Scalable Applications with Vampir, VampirServer and VampirTrace

Performance analysis with Periscope

SCALASCA v1.0 Quick Reference

Scalasca 1.3 User Guide

Characterizing Imbalance in Large-Scale Parallel Programs. David Bo hme September 26, 2013

SPEC MPI2007 Benchmarks for HPC Systems

Performance Analysis for Large Scale Simulation Codes with Periscope

Checklist for Selecting and Deploying Scalable Clusters with InfiniBand Fabrics

Introduction to Parallel Performance Engineering

Quantifying power consumption variations of HPC systems using SPEC MPI benchmarks

Introduction to Parallel Performance Engineering with Score-P. Marc-André Hermanns Jülich Supercomputing Centre

Usage of the SCALASCA toolset for scalable performance analysis of large-scale parallel applications

The SCALASCA performance toolset architecture

An evaluation of the Performance and Scalability of a Yellowstone Test-System in 5 Benchmarks

Performance engineering of GemsFDTD computational electromagnetics solver

IBM High Performance Computing Toolkit

I/O Monitoring at JSC, SIONlib & Resiliency

MPI Optimisation. Advanced Parallel Programming. David Henty, Iain Bethune, Dan Holmes EPCC, University of Edinburgh

Performance of HPC Applications over InfiniBand, 10 Gb and 1 Gb Ethernet. Swamy N. Kandadai and Xinghong He and

General Purpose Timing Library (GPTL)

I/O at JSC. I/O Infrastructure Workloads, Use Case I/O System Usage and Performance SIONlib: Task-Local I/O. Wolfgang Frings

Basic Communication Operations (Chapter 4)

UCB CS61C : Machine Structures

LARGE-SCALE PERFORMANCE ANALYSIS OF SWEEP3D WITH THE SCALASCA TOOLSET

Stockholm Brain Institute Blue Gene/L

Performance Analysis of MPI Programs with Vampir and Vampirtrace Bernd Mohr

Scalable Critical Path Analysis for Hybrid MPI-CUDA Applications

Performance Analysis and Modeling of the SciDAC MILC Code on Four Large-scale Clusters

Parallel I/O on JUQUEEN

Scalability of Trace Analysis Tools. Jesus Labarta Barcelona Supercomputing Center

Analyzing the Performance of IWAVE on a Cluster using HPCToolkit

Distributed recovery for senddeterministic. Tatiana V. Martsinkevich, Thomas Ropars, Amina Guermouche, Franck Cappello

Visualization and Data Analysis using VisIt - In Situ Visualization -

Score-P A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir (continued)

A scalable tool architecture for diagnosing wait states in massively parallel applications

Sami Saarinen Peter Towers. 11th ECMWF Workshop on the Use of HPC in Meteorology Slide 1

Intel VTune Performance Analyzer 9.1 for Windows* In-Depth

MPI Performance Tools

Ateles performance assessment report

RDMA Read Based Rendezvous Protocol for MPI over InfiniBand: Design Alternatives and Benefits

EZTrace upcoming features

MILC Performance Benchmark and Profiling. April 2013

Performance analysis basics

Score-P A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir

UCB CS61C : Machine Structures

Lawrence Livermore National Laboratory Tools for High Productivity Supercomputing: Extreme-scale Case Studies

LS-DYNA Scalability Analysis on Cray Supercomputers

High performance computing and numerical modeling

READEX: A Tool Suite for Dynamic Energy Tuning. Michael Gerndt Technische Universität München

Hardware Counter Performance Analysis of Parallel Programs

Performance Tools for Technical Computing

Instrumentation. BSC Performance Tools

CMSC 714 Lecture 6 MPI vs. OpenMP and OpenACC. Guest Lecturer: Sukhyun Song (original slides by Alan Sussman)

VAMPIR & VAMPIRTRACE INTRODUCTION AND OVERVIEW

Analyzing the High Performance Parallel I/O on LRZ HPC systems. Sandra Méndez. HPC Group, LRZ. June 23, 2016

A Trace-Scaling Agent for Parallel Application Tracing 1

Shared Memory Parallel Programming. Shared Memory Systems Introduction to OpenMP

Porting The Spectral Element Community Atmosphere Model (CAM-SE) To Hybrid GPU Platforms

Scalable, Automated Parallel Performance Analysis with TAU, PerfDMF and PerfExplorer

Parallel Processing. Parallel Processing. 4 Optimization Techniques WS 2018/19

Performance Comparison between Blocking and Non-Blocking Communications for a Three-Dimensional Poisson Problem

Review of previous examinations TMA4280 Introduction to Supercomputing

ScalaIOTrace: Scalable I/O Tracing and Analysis

Optimization of MPI Applications Rolf Rabenseifner

Determining Optimal MPI Process Placement for Large- Scale Meteorology Simulations with SGI MPIplace

An Implementation of the POMP Performance Monitoring for OpenMP based on Dynamic Probes

Adventures in Load Balancing at Scale: Successes, Fizzles, and Next Steps

Jülich Supercomputing Centre

Critically Missing Pieces on Accelerators: A Performance Tools Perspective

On the scalability of tracing mechanisms 1

Algorithm Engineering with PRAM Algorithms

Further MPI Programming. Paul Burton April 2015

Parallel I/O using standard data formats in climate and NWP

MPI Runtime Error Detection with MUST

Allinea Unified Environment

Introduction to Performance Engineering

Enzo-P / Cello. Scalable Adaptive Mesh Refinement for Astrophysics and Cosmology. San Diego Supercomputer Center. Department of Physics and Astronomy

Tool for Analysing and Checking MPI Applications

A Survey on Performance Tools for OpenMP

Analysis report examination with Cube

Using Lamport s Logical Clocks

Transcription:

Mitglied der Helmholtz-Gemeinschaft SCALASCA parallel performance analyses of SPEC MPI2007 applications 2008-05-22 Zoltán Szebenyi Jülich Supercomputing Centre, Forschungszentrum Jülich Aachen Institute for Advanced Study in Computational Engineering Science, RWTH Aachen z.szebenyi@fz-juelich.de

Overview Introduction to JUMP the SPEC MPI 2007 suite SCALASCA overview Measurement methodology Experimental results Slide 2

Motivation SPEC MPI 2007 provides a representative set of MPI application kernels 13 applications C/C++/Fortran, often combined Different MPI programming patterns - blocking/nonblocking/persistent communication - with or without extensive collective communication Most of them show iterative behavior suitable for phase instrumentation Slide 3

JUMP - IBM SP2 Regatta p690+ system 41 IBM SP2 p690+ frames 16 dual-core 1.7GHz Power4+ processors 128GB of shared main memory Connected via IBM High Performance Switch GPFS filesystem AIX 5.3 IBM XL compiler suites version 7.0/8.0 for C/C++ version 9.1/10.1 for Fortran IBM POE 4.2 MPI Slide 4

SPEC MPI 2007 applications overview Code LOC Language Application subject area 104.milc 17987 C Lattice quantum chromodynamics 107.leslie3d 10503 F77, F90 Combustion dynamics 113.GemsFDTD 21858 F90 Computational electrodynamics 115.fds4 44524 F90, C Computational fluid dynamics 121.pop2 69203 F90 Oceanography 122.tachyon 15512 C Computer graphics: ray tracing 126.lammps 6796 C++ Molecular dynamics 127.wrf2 163462 F90, C Numerical weather prediction 128.GAPgeofem 30935 F77, C Geophysics finite-element methods 129.tera_tf 6468 F90 Eulerian hydrodynamics 130.socorro 91585 F90 Quantum chemistry 132.zeusmp2 44441 C, F90 Astrophysical hydrodynamics 137.lu 5671 F90 Linear algebra SSOR Slide 5

SPEC MPI 2007 execution times on JUMP Slide 6

The SCALASCA project Overview Started in January 2006 Funded by Helmholtz Initiative & Networking Fund Developed in collaboration with ICL/UT Follow-up to pioneering KOJAK project Automatic pattern-based performance analysis Objective Development of a scalable performance analysis toolset Specifically targeting large-scale applications Slide 7

Features Open source Portable BG/L, BG/P, IBM SP & blade clusters, Cray XT3/4, SGI Altix, Sun Fire clusters (SPARC, x86-64),... Supports various languages & parallel programming paradigms Fortran, C, C++ MPI, OpenMP & hybrid MPI/OpenMP Integrated measurement & analysis toolset Runtime summarization (aka profiling) Automatic event trace analysis Slide 8

Application instrumentation Automatic/manual code instrumenter Processes program sources Adds instrumentation and measurement library into application executable program sources compiler instrumenter instrumented executable application application+epik + application+epik measurement application+epik lib Measurement library Exploits MPI standard profiling interface (PMPI) Provides measurement infrastructure & instrumentation API Slide 9

Runtime summarization Measurement library manages threads & events produced by instrumentation Measurements summarized by thread & call-path during execution Analysis report unified & collated at finalization Presentation of analysis results program sources compiler instrumenter instrumented executable expt config application application+epik + application+epik measurement application+epik lib summary analysis analysis report examiner Slide 10

Event tracing & analysis Time-stamped events buffered during measurement for each thread Flushed to files along with unified definitions & mapping tables at finalization program sources compiler instrumenter instrumented executable expt config application application+epik + application+epik measurement application+epik lib unified defs+maps Follow-up analysis replays events and produces extended analysis report trace trace trace 1trace 2.. N parallel trace SCOUT SCOUT SCOUT analyzer Presentation of analysis report trace analysis analysis report examiner Slide 11

SCALASCA components Automatic/manual code instrumenter Unified measurement library supporting both runtime summaries trace file generation Parallel, replay-based trace analyzer Common analysis report examiner program sources compiler instrumenter instrumented executable expt config application application+epik + application+epik measurement application+epik lib unified defs+maps trace trace trace 1trace 2.. N parallel trace SCOUT SCOUT SCOUT analyzer summary analysis trace analysis analysis report examiner Slide 12

Runtime summary report What kind of performance problem? Where is it in the source code? In what context? How is it distributed across the system? Slide 13

132.zeusmp2 point-to-point communication time Summary experiment 12.8% of time spent in MPI point-to-point communication 13.9% of which is on a single callpath to an MPI_Waitall Has a 35.6% standard variation across 512 processes Highest values in 2nd and 7th planes of the Cartesian grid Slide 14

Trace analysis report Additional trace-based metrics No hardware counters Slide 15

Phase-instrumentation Motivation This is all very good, but I still can't see how things evolve over time Is there a way to analyze time-dependent behavior? Phase-instrumentation Identify the main loop of the application Place markers at the beginning and the end of the loop SCALASCA will now save all the iterations separately Slide 16

132.zeusmp2 late sender time Tracing experiment Including manually inserted timestep annotations Neighbors are waiting for a few slower processes in the first timestep Slide 17

Measurement & analysis methodology 1. Run uninstrumented version (as reference for validation) Determine available memory from heap usage 2. Run fully-instrumented version collecting runtime summary Determine functions with excessive overheads (distortion and trace buffer cost) Prepare filter file 3. Repeat measurement with filter Verify dilation and trace buffer cost Identify appropriate iterations/timesteps to be annotated 4. Repeat summarization with filter and phases 5. Reconfigure measurement to collect and analyze traces (with phases) Generate graphs and charts of metrics per iteration/timestep Slide 18

SPEC MPI 2007 32-way execution characteristics Code 104.milc 107.leslie3d 113.GemsFDTD 115.fds4 121.pop2 122.tachyon 126.lammps 127.wrf2 128.GAPgeofem 129.tera_tf 130.socorro 132.zeusmp2 137.lu Program execution RSS Trace buffer content (MB/proc) Filter steps depth callpaths (MB) total MPI filter residue funcs 8+243 6 257 341 2683 1.7 2626 57 4 2000 3 40 1078 1437 15.0 1422 16 6 1000 5 185 505 3619 5.9 3582 37 1 2363 8 151 209 122 2.1 117 6 6 9000 6 403 748 6361 2494.0 2606 3841 6 N/A 3 27 676 59884 0.7 59809 75 5 500 6 162 401 291 0.8 290 1 9 1375 22 4975 297 1109 0.4 1106 5 69 235 4 44 361 996 33.0 971 34 2 943 4 59 74 2459 10.0 1628 831 4 20 23 10352 148 10703 13.0 10587 120 21 200 5 179 377 5 3.4 3 0 180 4 49 384 42 28.0 28 0 Slide 19

SPEC MPI 2007 32-way execution times for different instrumentation configurations in wallclock seconds Code 104.milc 107.leslie3d 113.GemsFDTD 115.fds4 121.pop2 121.pop2 (2000) 122.tachyon 126.lammps 127.wrf2 128.GAPgeofem 129.tera_tf 130.socorro 132.zeusmp2 137.lu Trace Instrumentation/measurement Tracing None Sum Sum+f Sum+pf Trace flushing analysis size (GB) 1556 2140 1616 1611 13 50 1.587 2704 2945 2807 2892 2787 43 113 0.403 2028 2680 2042 2111 2102 57 144 0.634 951 1010 960 957 959 92 141 0.130 1687 2415 2176 2104 N/P 398 563 514 494 518 124 2734 13.613 2024 N/P 6016 6023 1 68 0.007 1883 1988 1899 2001 1963 41 74 0.038 2352 2945 2499 2475 2550 425 907 18.138 833 984 879 884 874 14 182 0.670 2399 2583 2458 2390 2395 17 71 24.737 1411 3990 1631 1701 1703 120 373 3.420 1683 1727 1729 28 67 0.113 1771 1815 1910 13 159 1.100 Slide 20

SPEC MPI 2007 32-way execution time overheads for different instrumentation configurations Code 104.milc 107.leslie3d 113.GemsFDTD 115.fds4 121.pop2 121.pop2 (2000) 122.tachyon 126.lammps 127.wrf2 128.GAPgeofem 129.tera_tf 130.socorro 132.zeusmp2 137.lu Trace Instrumentation/measurement Tracing None Sum Sum+f Sum+pf Trace flushing analysis size (GB) 1556 37.5% 3.9% 3.5% 13 50 1.587 2704 8.9% 3.8% 7.0% 3.1% 43 113 0.403 2028 32.2% 0.7% 4.1% 3.7% 57 144 0.634 951 6.2% 1.0% 0.6% 0.8% 92 141 0.130 1687 43.2% 29.0% 24.7% N/P 398 41.5% 29.2% 24.1% 30.2% 124 2734 13.613 2024 N/P 197.2% 197.6% 1 68 0.007 1883 5.6% 0.9% 6.3% 4.3% 41 74 0.038 2352 25.2% 6.3% 5.2% 8.4% 425 907 18.138 833 18.1% 5.5% 6.1% 4.9% 14 182 0.670 2399 7.7% 2.5% -0.4% -0.2% 17 71 24.737 1411 182.8% 15.6% 20.6% 20.7% 120 373 3.420 1683 2.6% 2.7% 28 67 0.113 1771 2.5% 7.9% 13 159 1.100 Slide 21

Iteration/timestep analysis graphs and charts Minimum/median/maximum value graph over iterations Chart of values per process color coded from yellow-white (min) to dark-red (max) Slide 22

132.zeusmp2 execution time First timestep takes longest Progressive increase from 7.9s to 8.8s Transitions at timesteps 41 and 69 A low amount of noise is visible Slide 23

132.zeusmp2 point-to-point communication time Transitions at timesteps 41 and 69 clearly visible High variation among processes Progressive increase from 0.4 to 1.2 in the maximum values Some processes, like processes 10 and 13 have low values where others are much higher Slide 24

132.zeusmp2 late sender time Around half of the point-to-point time is spent in late sender situations Same kind of transitions and progressive increase present Slide 25

132.zeusmp2 collective communication time Graph at same scale as the graphs on the point-to-point slides Peaks visible at iterations 41 and 69, where the transitions happen on the point-to-point graphs Slide 26

132.zeusmp2 bytes transferred There is a variation among processes, but There is no variation over time The visit count graphs look exactly the same The progressive increase and the transitions in point-to-point time have to be caused by something else! Slide 27

132.zeusmp2 late sender time After identifying the most interesting iterations Back to the SCALASCA GUI Look at the details Find the cause of the performance bottlenecks Slide 28

SPEC MPI 2007 32-way execution time graphs 107.leslie3d 113.GemsFDTD 115.fds4 121.pop2 126.leslie3d 127.wrf2 128.GAPgeofem 129.tera_tf 130.socorro 132.zeusmp2 137.lu Slide 29

SPEC MPI 2007 32-way execution time charts 107.leslie3d 113.GemsFDTD 115.fds4 121.pop2 126.leslie3d 127.wrf2 128.GAPgeofem 129.tera_tf 130.socorro 132.zeusmp2 137.lu Slide 30

SPEC MPI 2007 32-way point-to-point time graphs 107.leslie3d 113.GemsFDTD 115.fds4 121.pop2 126.leslie3d 127.wrf2 128.GAPgeofem 129.tera_tf 130.socorro 132.zeusmp2 137.lu Slide 31

SPEC MPI 2007 32-way point-to-point time charts 107.leslie3d 113.GemsFDTD 115.fds4 121.pop2 126.leslie3d 127.wrf2 128.GAPgeofem 129.tera_tf 130.socorro 132.zeusmp2 137.lu Slide 32

Conclusion SCALASCA analysis was possible for all the SPEC MPI 2007 applications, up to 1024 processes Phase instrumentation adds a new dimension to the existing SCALASCA analysis Analyzing the SPEC MPI 2007 suite, we have found interesting time-dependent behavioral patterns Slide 33

Thank you! For more information visit our website: http://www.scalasca.org WRF-NMM weather prediction code on MareNostrum @ 1600 CPUs Slide 34

Creating filters A filter file is a simple list of function names The SCALASCA toolset helps in choosing the right functions to filter flt type ANY MPI USR COM max_tbc 2458949120 9597728 2447099328 2261016 time 82441.94 18926.53 59827.53 3687.87 % 100.00 22.96 72.57 4.47 USR USR USR USR USR USR USR MPI MPI MPI COM 406944000 406944000 406944000 406944000 406944000 406944000 5425920 3962400 3639888 1899072 1085184 2471.16 3244.68 4717.67 12794.70 8112.65 28249.64 226.38 12808.47 9.52 2651.80 4.70 3.00 3.94 5.72 15.52 9.84 34.27 0.27 15.54 0.01 3.22 0.01......... region (summary) (summary) (summary) (summary) ALL MPI USR COM tf_projection_nmod_totalisation_advection tf_projection_nmod_interpolation_ordre_4 tf_1d_hydro_nmod_tf_1d_hydro_driver tf_projection_nmod_tf_projection_mono tf_1d_hydro_nmod_schema_de_godunov tf_thermo_nmod_exact_riemann_solver tf_ad_splitting_nmod_tf_apply_boundary_conditions MPI_Send MPI_Irecv MPI_Wait tf_ad_splitting_nmod_tf_communications_plane_init...... Slide 35

Filter generation Example filtering 4 functions of 129.tera_tf: flt + * * * type FLT ANY MPI USR COM max_tbc 1627776000 831173120 9597728 819323328 2261016 time 42078.13 40363.81 18926.53 17749.41 3687.87 % 51.04 48.96 22.96 21.53 4.47 region (summary) (summary) (summary) (summary) (summary) FLT ALL-FLT MPI-FLT USR-FLT COM-FLT % 72.28 27.72 22.96 0.29 4.47 region (summary) (summary) (summary) (summary) (summary) FLT ALL-FLT MPI-FLT USR-FLT COM-FLT Example filtering 6 functions of 129.tera_tf: flt + * * * type FLT ANY MPI USR COM max_tbc 2441664000 17285120 9597728 5435328 2261016 time 59590.50 22851.44 18926.53 237.03 3687.87 Slide 36

107.leslie3d execution time every 5th iteration takes more time caused by an additional MPI collective call around every 43rd iteration takes longer caused by longer point-to-point communication times number of point-to-point calls and bytes transferred are the same possibly caused by flooded communication buffers transition at iteration number 1015 Slide 37

113.GemsFDTD execution time some variation among processes visible slight transitions at a number of iterations some noise present Slide 38

115.fds4 execution time the 1st iteration takes longer every 3rd iteration spends more time in user functions point-to-point communication only every 100th iteration more point-to-point and collective calls in the first 100 iterations more collective calls every 100th iteration more collective calls every 255th iteration Slide 39

121.pop2 execution time 2000 iteration experiment Remainder of 9000 iterations qualitatively similar slight transitions in collective and point-to-point call counts more collective calls every 100th iteration Slide 40

126.lammps execution time progressively increasing baseline time more point-to-point calls every 20th iteration collective communication every 100th iteration Slide 41

127.wrf2 execution time slightly increasing baseline some periodic behavior, most visible in the peaks 1st and every 1200th iterations extremely long (every simulation day) more time spent in user functions every 4th and 8th iteration collective communication every 300th iteration Slide 42

128.GAPgeofem execution time 1st iteration takes longer visible in MPI time, but MPI call count and bytes transferred is the same decreasing visit numbers and execution times Collectives every iteration Considerable amount of noise mostly from collectives Most of collective time spent in Wait at NxN situations Shows load imbalance Slide 43

129.tera_tf execution time Strong increase in execution time from 1.2s to 2.9s High amount of noise visit numbers and bytes transferred vary by processes, but constant through iterations Strange, constantly changing behavior on communication time metrics point-to-point and collective times complement each other Slide 44

130.socorro execution time low number of iterations very long time spent in each iteration last iteration takes less time Slide 45

137.lu execution time Collective communication only in last iteration execution time and communication metrics mostly constant transition around the 19th iteration Variation among processes in communication time and count metrics Slide 46

132.zeusmp2 collective communication time 5.6% of total time spent in collective communication of which 59.6% is spent on one callpath in an MPI_Allreduce Shows 47.5% standard variation The processes in the middle spend less time here than the ones on the edges Slide 47

132.zeusmp2 wait at NxN time 3.9% of total time spent in wait at NxN situations looking at the MPI_Allreduce call in the 1st iteration shows 35.7% standard variation highest waiting times on the bottom planes and in the first few rows of every plane lowest waiting times in the middle Slide 48

location Trace pattern example: Late sender MPI_Send MPI_Send MPI_Irecv MPI_Recv MPI_Wait location time MPI_Isend MPI_Recv MPI_Wait MPI_Isend MPI_Irecv MPI_Wait MPI_Wait time Waiting time caused by a blocking receive operation posted earlier than the corresponding send operation Applies to blocking as well as non-blocking communication Slide 49