1 Parallel Performance Analysis with Open|SpeedShop Trilab Tools-Workshop Martin Schulz, LLNL/CASC LLNL-PRES
Features, Capabilities, Status Open Source Performance Analysis Tool Framework Most common performance analysis steps all in one tool Most common performance analysis steps all in one tool Extensible by using plugins for data collection and representation Extensible by using plugins for data collection and representation Flexible and Easy to use User access through GUI, Command Line, and Python Scripting User access through GUI, Command Line, and Python Scripting Several Instrumentation Options All work on unmodified application binaries All work on unmodified application binaries Offline and online data collection / attach to running applications Offline and online data collection / attach to running applications Target: Cluster systems and MPPs Linux Clusters with x86, IA-64, Opteron, and EM64T CPUs Linux Clusters with x86, IA-64, Opteron, and EM64T CPUs Ports of data collection to more exotic platforms soon Ports of data collection to more exotic platforms soon Status & Availability Version just released / working on several large lab codes Version just released / working on several large lab codes Installed on all Trilab TLCC systems / more to come Installed on all Trilab TLCC systems / more to come
Results Experiment Workflow Run Application “Experiment” Results can be displayed using several “Views” Process Management Panel Consists of one or more data “Collectors” Stored in SQL database
Experiment Types in O|SS Sampling Experiments Periodically interrupt run and record location Periodically interrupt run and record location Report statistical distribution of these locations Report statistical distribution of these locations Good overview at modest overhead Good overview at modest overhead pcsamp, usertime, hwc, hwctime pcsamp, usertime, hwc, hwctime Tracing Experiments Gather and store individual application events, e.g., function invocations (MPI, I/O, …) Gather and store individual application events, e.g., function invocations (MPI, I/O, …) Detailed information at higher overhead Detailed information at higher overhead io, iot, mpi, mpit, mpiotf, fpe io, iot, mpi, mpit, mpiotf, fpe
Three Interfaces Experiment Commands expAttach expCreate expDetach expGo expView List Commands list –v exp list –v hosts list –v src Session Commands setBreak openGui import openss my_filename=openss.FileList("myprog.a.out") my_exptype=openss.ExpTypeList("pcsamp") my_id=openss.expCreate(my_filename,my_exptype) openss.expGo() My_metric_list = openss.MetricList("exclusive") my_viewtype = openss.ViewTypeList("pcsamp”) result = openss.expView(my_id,my_viewtype,my_metric_list) GUI Command Line Python Module
Performance Analysis in O|SS Parallel codes MPI and Threaded codes MPI and Threaded codes Apply any experiment to all tasks Apply any experiment to all tasks Choose aggregate vs. task specific views Choose aggregate vs. task specific views Pre-canned experiments Load balance Load balance Cluster analysis Cluster analysis Custom comparisons Multiple experiments, metrics, ranks, … Multiple experiments, metrics, ranks, …
Availability PlatformVer.UsageDoc.POC LLNL/TLCC OCF use opensshttps://computing.llnl.gov/code/oss.ht ml Martin Schulz LLNL/TLCC SCF use opensshttps://computing.llnl.gov/code/oss.ht ml Martin Schulz LLNL/Dawnsoon Martin Schulz SNL/Glory see below wp/documentation/ Mahesh Rajan LANL/Red Mod: hpc-tools Mod: openss man openss LANL/Yellow Yellowrail, Turing Mod: hpc-tools Mod: openss man openss LANL/Turquoise Lobo, Cerrillos and Coyote Mod: hpc-tools Mod: openss man openss Usage for SNL/Glory: module switch mpi mpi/mvapich-1.1_intel-11.1-f064-c064 module load /home/jgalaro/privatemodules/openspeedshop OR module load /home/jgalaro/privatemodules/openspeedshop mvapich OR module load /home/jgalaro/privatemodules/openspeedshop openmpi
Usage Instructions Option 1: Shortcut commands osspcsamp “ ” osspcsamp “ ” Command can be sequential or parallel Command can be sequential or parallel ossusertime/osshwc/ossio/ossmpi/… ossusertime/osshwc/ossio/ossmpi/… Option 2: Graphical User Interface Launch GUI: openss Launch GUI: openss Wizards to run experiments Wizards to run experiments View performance results View performance results Option 3: Command line openss –cli openss –cli Use help command to get details Use help command to get details
Advanced Concepts MPI Application O|SS post- mortem Offline MPI Application O|SS MRNet Easy setup Low overhead No additional resources Higher portability Online analysis Intermediate updates Attach to running code Optional aggregation
Availability and Contact Open|SpeedShop website: Tutorials & User Guides Tutorials & User Guides Lab Instructions: Demo Session 2 Open|SpeedShop 101 Open|SpeedShop 101 Test O|SS on your code Test O|SS on your code Different views and other GUI options Different views and other GUI options