28
03/28/20 12 11/18/20 11 COMPONENT BASED TOOL FRAMEWORK: CBT Status of Krell Tools Built using Dyninst/MRNet Paradyn Week 2012 College Park, MD March 28, 2012 1 Paradyn Week 2012 LLNL-PRES-503431

Status of Krell Tools Built using Dyninst / MRNet

  • Upload
    lola

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Status of Krell Tools Built using Dyninst / MRNet. Paradyn Week 2012 College Park, MD March 28, 2012. LLNL-PRES-503431. Presenters. Jim Galarowicz , Krell Don Maghrak , Krell Larger team William Hachfeld and Dave Whitney, Dane Gardner, Krell - PowerPoint PPT Presentation

Citation preview

Page 1: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 111/18/2011

COMPONENT BASED TOOL FRAMEWORK: CBTF

Status of Krell Tools Built using Dyninst/MRNet

Paradyn Week 2012College Park, MD

March 28, 2012

Paradyn Week 2012

LLNL-PRES-503431

Page 2: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 211/18/2011

Presenters Jim Galarowicz, Krell Don Maghrak, Krell

Larger team William Hachfeld and Dave Whitney, Dane Gardner, Krell Martin Schulz, Matt Legendre, Chris Chambreau, LLNL TJ Machado, Mike Mason, Jennifer Green, David Montoya, LANL Mahesh Rajan, SNLs Dyninst group • Bart Miller, UW and team• Jeff Hollingsworth, UMD and team

Phil Roth, ORNL

Paradyn Week 2012

Page 3: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 311/18/2011

Outline Welcome① Open|SpeedShop overview and status② SWAT (Scalable Targeted Debugger for Scientific and

Commercial Computing) ③ Component Based Tool Framework (overview)④ Component Based Tool Framework (tools)⑤ Next generation: CBTF Questions

Paradyn Week 2012

Page 4: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 411/18/2011

COMPONENT BASED TOOL FRAMEWORK: CBTF

Open|SpeedShop(www.openspeedshop.org)

Paradyn Week 2012March 28, 2012

Paradyn Week 2012

Page 5: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

What is Open|SpeedShop? HPC Linux, platform independent application performance tool

What can Open|SpeedShop do for the user? Give lightweight overview of where program

spends time Find hot call paths in user program and libraries Give access to hardware counter event information Record calls to POSIX I/O functions, give timing, call

paths, and optional info like: bytes read, file names...

Record calls to MPI functions. give timing, call paths, and optional info like: source, destination ranks, .....

Help pinpoint numerical problem areas by tracking FPE

Maps the performance information back to the source and displays source annotated with the performance information.

osspcsamp “How you run your application outside of O|SS”

Paradyn Week 2012 5

Project Overview: What is Open|SpeedShop?

Page 6: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 611/18/2011

Update on status of Open|SpeedShop More focus on CBTF the past year, but… Added functionality to Open|SpeedShop

• Improved installation of Cray and Blue Gene versions• Support for Cray dynamic executables

– Execute similar to cluster: osspcsamp “how you run your application”• Blue Gene P static executable support• Added more options to compare script (osscompare)• Support for doing arithmetic on the columns of information to create

derived metrics Starting DOE SBIR to research and add performance analysis

support for GPU/Accelerators Porting to Blue Gene Q Adding a CBTF component instrumentor for data collection that

leverages Lightweight MRNet for scalable data gathering and filtering.• Talk more about this in the CBTF portion of talk

Paradyn Week 2012

Open|SpeedShop

Page 7: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 711/18/2011

Currently: What UW/UMD software is used in Open|SpeedShop?

symtabAPI – for symbol resolution on the Blue Gene/Q dyninstAPI – for dynamic instrumentation and binary rewriting

• Includes the subcomponents that comprise “Dyninst”.• Inserts performance info gathering collectors and runtimes into the

application. MRNet – for transfer mechanism

Future: What UW/UMD software will we use in Open|SpeedShop?

Will be using much of the same software but in a different context through CBTF (code in CBTF components and component networks)

Paradyn Week 2012

UW/UMD Software - Open|SpeedShop

Page 8: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 811/18/2011

COMPONENT BASED TOOL FRAMEWORK: CBTF

SWATParadyn Week 2012

March 28, 2012

Paradyn Week 2012

Page 9: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 911/18/2011

What is SWAT? A Commercialized version of the STAT debugger primarily

developed by LLNL/UW UW and Argo Navis* teaming together on SBIR to:

Port SWAT to more platforms Test and extend the stack walking component used by SWAT, the

StackwalkerAPI to work with more compilers, platforms, … Enhance the GUI so that it is portable, robust, and easy to use. It

will support simplified modes of use. Develop more advanced call tree reduction algorithms Improve SWAT’s ability to display complex stack trees

Uses StackWalkerAPI and MRNet

*Commercial entity associated with KrellParadyn Week 2012

SWAT

Page 10: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 1011/18/2011

COMPONENT BASED TOOL FRAMEWORK: CBTF

Component Based Tool Framework (CBTF)

Paradyn Week 2012March 28, 2012

Paradyn Week 2012

Page 11: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 1111/18/2011

What is CBTF? A Framework for writing Tools that are Based on Components. Consists of:

• Libraries that support the creation of reusable components, component networks (single node and distributed) and support connection of the networks.

• Tool building libraries (decomposed from O|SS)

Benefits of CBTF Components are reusable and easily added to new tools. With a large component repository new tools can be written

quickly with little code. Create scalable tools by virtue of the distributed network based

on MRNet. Components can be shared with other projects

Paradyn Week 2012

CBTF

Page 12: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

CBTF: Base CBTF Libraries

12

Create components, component networks, distributed component networks

cbtf

framework tools

libcbtf libcbtf-xml libcbtf-mrnet examplesservicesmessagescore

pcsampDemoUsing LW MRNet BE

daemonToolDemoUsing MRNet

components

Paradyn Week 2012

contrib

Page 13: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 1311/18/2011

Reusable objects with 0-N inputs and 0-M outputs. Designed to be connected together

Connections defined in C++ or XML file. Components are written in C++

Components can do anything your C code can do. Run system commands, open files, do calculations.

Paradyn Week 2012

Main concepts: Components

Page 14: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

CBTF: Component Networks Components

Specific Versions Connections

Matching Types Arbitrary Component

Topology Pipelines Graphs with cycles ….

Recursive CBTF Component Network is

itself a component. XML-Specified

14Paradyn Week 2012

Page 15: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 1511/18/2011

Simple way to build the CBTF networks and connect the components. No need to recompile (if the available components provide

the capabilities needed).

Paradyn Week 2012

XML File

<Backend> <Network> <Type>TestNetwork_Backend</Type> <Version>1.0.0</Version> <SearchPath>/users/mmason/mycode-rr/psToolGui</SearchPath> <Plugin>psPlugin</Plugin> <Plugin>mrnetPlugin</Plugin>

<Component> <Name>psCmdComp</Name> <Type>psCmd</Type> </Component>... <Input> <Name>Backend_In</Name> <To> <Name>PacketToString</Name> <Input>in1</Input> </To> </Input>

… <Connection> <From> <Name>psCmd</Name> <Output>out</Output> </From> <To> <Name>StringToPacket</Name> <Input>in2</Input> </To> </Connection> </Network>

<IncomingDownstream> <Name>DownwardStream</Name> <To><Input>Backend_In</Input></To> </IncomingDownstream> <OutgoingUpstream> <Name>UpwardStream</Name> <From><Output>Backend_Output</Output></From> </OutgoingUpstream>

</Backend>

Page 16: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 1611/18/2011

CBTF uses a transport mechanism to handle all of its communications.

Currently that transport mechanism is MRNet Multicast/Reduction Network Scalable tree structure Hierarchical on-line data aggregation

CBTF views MRNet as just another component. In the future it could be swapped with some other transport

mechanism, if desired.

Paradyn Week 2012

MRNet

Page 17: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 1711/18/2011

Three Networks where components can be connected Frontend, Backend, multiple Filter levels Every level is homogeneous

Each Network also has some number of inputs and outputs.

Any component network can be run on any level, but logically Frontend component network

• Interact with or Display info to the user Filter component network

• Filter or Aggregate info from below• Make decisions about what is sent up or down

the tree Backend component network

• Real work of the tool (extracting information)Paradyn Week 2012

CBTF Networks

Page 18: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

CBTF: Tool Building Support

18

To enable tool builders to get started Add a tool building side to CBTF (tools subdirectory under cbtf)

cbtf

framework tools

libcbtf libcbtf-xml libcbtf-mrnet examplesservicesmessagescore

pcsampDemoUsing LW MRNet BE

daemonToolDemoUsing MRNet

Note: The directory structure is subject to change daemonToolDemo doesn’t rely on any service, message, or core “tools” code

components

Paradyn Week 2012

contrib

Page 19: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

CBTF: Software Stack (Future Tools)

Open|SpeedShop Using Services, Messages, Core built using CBTF infrastructure Full fledged multipurpose performance tool

Customized Tools Use the CBTF infrastructure, not necessarily any support from

the tools support sub-directories If tool creator sees a useful service in tools, they can choose to

use it (along with any message and/or core library). Aimed at specific tool needs determined by application code

teams

19Paradyn Week 2012

Page 20: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 2011/18/2011

What can this framework be used for? CBTF is flexible and general enough

To be used for any tool that needs to “do something” on a large number of nodes and filter or collect the results.

Sysadmin Tools Poll information on a large number of nodes Run commands or manipulate files on the backends Make decisions at the filter level to reduce output or interaction

Performance Analysis Tools Massively parallel applications need scalable tools Have components running along side the application

Debugging Tools Use cluster analysis to reduce thousands (or more) processes into a

small number of groupsParadyn Week 2012

Using CBTF Beyond O|SS

Page 21: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 2111/18/2011

memTool (tools/contrib/memTool) Displays memory info for each node and total memory used for

each MPI process.

Tool Example: Simple Memory Tool

Frontend

Backend

PID MEM

BE

FE

FE

Paradyn Week 2012

Page 22: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 2211/18/2011

PS Tool (tools/contrib/psTool) Run ps on all backends, use filters to identify the procs running

on all nodes and what procs are unique to each node.

Paradyn Week 2012

Tool Example: Sysadmin

FE

F

BE BE

Frontend

Filter

Backend

PS

Diff Same

Page 23: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 2311/18/2011

CBTF based TBON-FS implementation (tools/contrib/tbonFS) Perform group file operations on the backend local file system. Run top on all backends. Run grep, tail, read or write files on all backends. Copy a file from NFS to the local /tmp on all backends.

Paradyn Week 2012

Tool Example: Sysadmin

FE

F

BE BE

Frontend

Filter

Backend

T

G

T

R

W

Cat

Page 24: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 2411/18/2011

Stack trace grouping (tools/contrib/stack) Run gstack on each pid for a parallel application and group

similar stack traces together.

Paradyn Week 2012

Tool Example: Debugging

Frontend

Filter

Backend

gstack

group

Page 25: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

Why do we want to connect CBTF to O|SS? Scalability…..

Allow filtering of performance data as it moves from the application to the client tool.

Eliminates the current “fileio” method which writes temporary files to disk. New method does not write files.

CBTF hides many details of MRNet coding by providing components that handle the actual MRNet implementation when using MRnet as a transport mechanism

For O|SS we will use: MRNet, symtabAPI initially, then dyninstAPI (and components) for “online/dynamic” version.

25

Connecting CBTF to Open|SpeedShop

Paradyn Week 2012

Page 26: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

Support Active Harmony integration with CBTF More detailed documentation of examples, demo tools Tool start up investigation/implementation (launchmon,

libi, …) Variations dependent on platform type (BG, Cray)

Tool services, messages, component creation to support more types of collection (don’t have all O|SS in cbtf/tools)

Continue porting to Cray and Blue Gene platforms Add filtering components for MRNet communication node

deployment Continue the connection of CBTF to Open|SpeedShop

26

CBTF Next Steps

Paradyn Week 2012

Page 27: Status of Krell Tools Built using  Dyninst / MRNet

03/28/201211/18/2011

Where to find information CBTF wiki: http://ft.ornl.gov/doku/cbtfw/start

Source Access Currently -> Friendly access available through request• Probably will be completely open shortly

Source hosted at ORNL git repository CBTF Tutorial, Step by Step Instructional Info on CBTF

wiki. Technical paper is needed… Always looking to collaborate with others, please

contact us.

27

CBTF Information

An Introduction into Performance Analysis for HPC Systems with Open|Speedshop

Page 28: Status of Krell Tools Built using  Dyninst / MRNet

03/28/2012 2811/18/2011

Questions

Jim Galarowicz [email protected]

Don Maghrak [email protected]

Questions about Open|SpeedShop or CBTF [email protected]

Paradyn Week 2012