+ All Categories
Home > Documents > Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... ·...

Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... ·...

Date post: 20-Mar-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
21
1 NACSE – Oregon State University Tool Requirements for High-Performance Java: Are Users Getting What They Need? Cherri M. Pancake Oregon State University Northwest Alliance for Computational Science & Engineering www.nacse.org [email protected] NACSE – Oregon State What I Mean By ... “High-performance Java ” (HP/J) Large-scale, multi-machine Parallel applications: Multi-threaded (e.g., shared memory HPC machine) or RMI- based or message-passing parallelism CPUs/OS typically homogeneous Distributed applications: Distributed JVM or cooperating JVMs Typically heterogeneous
Transcript
Page 1: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

1

NACSE – Oregon State University

Tool Requirements for High-Performance Java: Are Users Getting What They Need?

Cherri M. PancakeOregon State University

Northwest Alliance for Computational Science & Engineeringwww.nacse.org

[email protected]

NACSE – Oregon State

What I Mean By ...

• “High-performance Java” (HP/J)– Large-scale, multi-machine– Parallel applications:

• Multi-threaded (e.g., shared memory HPC machine) or RMI-based or message-passing parallelism

• CPUs/OS typically homogeneous– Distributed applications:

• Distributed JVM or cooperating JVMs• Typically heterogeneous

Page 2: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

2

NACSE – Oregon State

The Idea of HP/J Is Gaining in Popularity

– Portability– Higher abstraction than previous parallel computing– Power as important / more important than performance

NACSE – Oregon State

What I Mean By ...

• “HP/J tools”– Software or middleware outside the application– Does not include programming classes, libraries,

templates, etc.• A number of IDEs are available, e.g.

• Java WorkShop (Sun)• Visual Age for Java (IBM)• Jbuilder (Borland)• Visual Café (Symantic)

– They do more than IDEs for other languages• Support for object classes, event model, concurrent threads,

beans

– … But they do not really address HP/J• No provision for multiple CPUs, thread migration, etc.• Assume a single JVM

Page 3: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

3

NACSE – Oregon State

User Requirements for HP/J Tool Support

Requirement 1: Launching and controllingthreads that execute on different JVMs

NACSE – Oregon State

JavaPorts (Galatopoullos, Northeastern Univ.)

Tools that Create/Launch Multi-JVM Applications

• Approach A: explicit assignment of processors– JavaPorts launches application, manages “port

operations”

begin configurationbegin definitionsdefine machine M!=“corea.cdsp.neu.edu” masterdefine machine M2=“walker.cdsp.neu.edu”define machine M=“hawk.cdsp.neu.edu”define task T1=“Manager” numofports=3define task T2=“Worker1” numofports=1define task T3=“Worker2” numofports=1define task T4=“Worker3” numofports=1

end definitionsbegin allocationsallocate T1 M1allocate T2 M2allocate T3 M2allocate T4 M3

end allocationsbegin connectionsconnect M1.T1.P[0] M2.T2.P[0]connect M1.T1.P[1] M2.T3.P[0]connect M1.T1.P[2] M3.T4.P[0]

end connectionsend configuration

– Requires script to assign “tasks” and allocate processors

Page 4: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

4

NACSE – Oregon State

Tools that Create/Launch Multi-JVM Applications

• Approach B: automatic assignment of processors– Users select application from list, then assign input files– DOGMA selects processors and launches application

DOGMA(Clement, Brigham Young Univ.)

NACSE – Oregon State

User Requirements for HP/J Tool Support

Requirement 2: Examining the progress ofthreads that execute on different JVMs

Page 5: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

5

NACSE – Oregon State

Examining the Progress of HP/J Applications

• Approach A: text-based (command-driven) debugging– SDB (UC Berkeley) for Titanium dialect of Java– DCDB (National HPC Center, Hefei, China)

(sdb) break worker.ti:30Breakpoint 1 at 0x33dd0: file worker.ti, line 30.(sdb) runStarting program: Srvc2Breakpoint 1, Main.main (args=0x197f80) at worker.ti:3030 aPoint = [2];(sdb) thread 12[Switching to Thread 5 (LWP 4)]#0 Main.main (args=01xcaf00) at Worker.ti:3030 aPoint = [2];(sdb) print ti_array[aPoint]$8 = (MyClass) 0x1a1648 (java.lang.Object.PrivateInfo = 0,

MyClass.x = 1, MyClass.y = 2(sdb)

SDB(Miyamoto, UC Berkeley)

• Provides simple functionality (breakpoints, single-stepping, info on threads, info on JVMs)… but interfaces are reminiscent of 1970s debuggers

NACSE – Oregon State

Examining the Progress of HP/J Applications

• Approach B: paned text-based debugging– Metamata Debug (Metamata Inc.)– Provides multiple, tabbed windows for controlling and

viewing each thread– Also adds code and object browsers… but still limited to rudimentary commands

Page 6: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

6

NACSE – Oregon State

User Requirements for HP/J Tool Support

Requirement 3: Stabilizing errorsoccurring across JVMs

so possible causes can be explored

NACSE – Oregon State

Stabilizing the Progress of HP/J Applications

• Approach: support for deterministic replay– DejaVu (IBM Research)

“Maybe we should write that spot down.”

• Use JVM extensions to capture sequence of execution– Makes it possible to

replay execution later– When coupled with

debugger, makes it possible to stabilize errors

Page 7: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

7

NACSE – Oregon State

Tuning the Performance of HP/J Applications

• Several tool suites include support for performance analysis and tuning

JProbe Memory Debugger(KL Group)

• Quantify and PureCoverage(Rational Software)

• OptimizeIt!• Jprobe Profiler, Threadalyzer,

Coverage, Memory Debugger (KL Group)

• Numega TrueTime, Memory Profiler, JCheck, TrueCoverage (Compuware)

… but they do not supportmulti-JVM applications

NACSE – Oregon State

Current “Best-in-Class” for Single JVMs

• HPjMeter– Lets user choose how

much information to see (top-10 only, etc.)

– ”Find" operations facilitate comparing method timings vs. counts, etc.

– Provides "hints" about what to do next

– Documentation is organized by user task

– Can be downloaded free

– [will see more later]

HPjMeter (Hewlett -Packard)

Page 8: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

8

NACSE – Oregon State

User Requirements for HP/J Tool Support

Requirement 4: Identifying the primarycandidates for optimization activities

NACSE – Oregon State

Tuning HP/J Applications

• Users don’t want to spend optimization efforts indiscriminately

Page 9: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

9

NACSE – Oregon State

TAU/Racy(Malony, U of Oregon)

Tuning HP/J Applications

• Profilers can help … but user still has to do a lot of work

NACSE – Oregon State

User Requirements for HP/J Tool Support

Requirement 5: Identifying and eliminatingperformance bottlenecks occurring

across JVMs

Page 10: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

10

NACSE – Oregon State

TAU trace + VAMPIR visualization

Finding Bottlenecks in HP/J Applications

• Dynamic call trees help identify bottlenecks … but don’t scale well to volume, method names in Java

NACSE – Oregon State

Finding Bottlenecks in HP/J Applications

• Collapsible trees scale better

… but make it hard to compare

JavaViz (IBM Research)

Page 11: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

11

NACSE – Oregon State

User Requirements for HP/J Tool Support

Requirement 6: Identifying and eliminatingpotential synchronization problems

across JVMs

NACSE – Oregon State

Java Instrumentation Suite + Paraver

(Torres, CEPBA)

Finding Bottlenecks in HP/J Applications

• Trace visualizations help identify synchronization bottlenecks

… but don’t scale to many threads/processes, long runs

Page 12: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

12

NACSE – Oregon State

User Requirements for HP/J Tool Support

Requirement 7: Understanding theimplications of increasing parallelism

NACSE – Oregon State

Java Instrumentation Suite + Paraver(Torres, CEPBA)

Determining Scalability of HP/J Applications

• Trace visualizations help show how performance changes as problems scale

… but don’t correlate with objects and classes

Page 13: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

13

NACSE – Oregon State

Today’s HP/J Tool Situation

• Today’s tools are– Clumsy to use– Hard to relate to

objects and other abstractions

– Unable to analyze even simple patterns

• They swamp the user with confusing detail

… and they don’t really help the user write better Java

Early experiments in transportation

NACSE – Oregon State

Why Aren’t HP/J Tools Better?

• Today’s HP/J tools borrow heavily from earlier tools… that were designed to meet other needs

HP/J tools

Other IDEs

Java IDEs

New approaches

Parallel tools

Serial tools

Page 14: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

14

NACSE – Oregon State

Today’s Tools “Borrow” from the Past

• Tools for creating/launching HP/J applications– Scripted and GUI-based launching: adapted from early

parallel programming tools (GMAT, Schedule, PVM scripts)

• Tools for debugging HP/J applications– Text-based debugging: adapted from early serial

debuggers (1970s)– Pane-based debugging: adapted from early parallel

debuggers (1980s)– Deterministic replay: adapted from early parallel

debuggers (1980s)

NACSE – Oregon State

Today’s Tools “Borrow” from the Past

• Tools for tuning HP/J applications– Profilers: adapted with few changes from earliest

parallel versions (early 1980s)– Trace-based tools: adapted with few changes from

first parallel tools (late 1980s)– In general, ignore the nature and special requirements

of Java

Page 15: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

15

NACSE – Oregon State

Vtune (Intel)

Recommendation 1:Organize levels of detail

into click-for-more hierarchy

HP/J Tools Don’t “Borrow” Effectively Enough

• HP/J tools don’t provide the best functionality from IDEs

NACSE – Oregon State

Jinsight(IBM Research)

HP/J Tools Don’t “Borrow” Effectively Enough

• HP/J tools report methods, but not object classes

Recommendation 2:Facilitate exploring object

patterns-of-reference

Page 16: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

16

NACSE – Oregon State

Jinsight(IBM Research)

Recommendation 3:Track activity/performance of

objects per-instance

HP/J Tools Don’t “Borrow” Effectively Enough

• HP/J tools report method invocations, but not object instances

NACSE – Oregon State

HPjMeter (Hewlett -Packard)

Recommendation 4:Aggregate related

threads/processes for display

HP/J Tools Don’t “Borrow” Effectively Enough

• HP/J traces are organized by process/thread #, not object groups

Page 17: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

17

NACSE – Oregon State

HP/J Tools Aren’t Exploring “New Approaches”

• Previous tools were designed for previous programming models

HP/J tools

Other IDEs

Java IDEs

New approaches

Parallel tools

Serial tools

Newer approaches

• HP/J requires newer approaches:• Metaphors for representing behavior of distributed objects• Ability to aggregate and abstract huge amounts of execution

data• Visual portrayals that distinguish between threads and methods

executing on different JVMs

NACSE – Oregon State

Existing Tool Technologies Aren’t Enough

• Previous Java IDEs– Didn’t have to deal with multiple JVMs– Didn’t have to deal with true parallelism– Didn’t scale to the numbers needed for HP/J– Are still viewed as lacking in many respects

• Previous parallel tools– Forced programmers to think at low levels of detail– Didn’t support objects or distributed systems– Didn’t scale to the numbers needed for HP/J– Weren’t considered adequate by programmers, anyway

We shouldn’t be relying on previous tool approaches !

Page 18: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

18

NACSE – Oregon State

HP/J Tools Require “Newer Approaches”

• HP/J tools don’t address Java’s worst performance problem - synchronization bottlenecks

HPjMeter (Hewlett -Packard)

Recommendation 5:Explicitly identify where access

patterns cause bottlenecks

NACSE – Oregon State

JProbe Threadalyzer(KL Group)

Recommendation 6:Phrase options in terms of problems being addressed

HP/J Tools Require “Newer Approaches”

• HP/J tools are organized in terms of low-level mechanisms, not user goals

Page 19: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

19

NACSE – Oregon State

HPjMeter (Hewlett -Packard)

Recommendation 7:Extend displays to compareresults from two executions

HP/J Tools Require “Newer Approaches”

• HP/J tools don’t help users find changes from one execution to another

NACSE – Oregon State

What Should We Expect from HP/J Tools?

• A tool that is poorly suited to the task …

Mozart writing the digital version of hissymphony No. 38 in D major

is as bad as no tool at all! (only suitable for “geniuses”)

Page 20: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

20

NACSE – Oregon State

We Need Tools That ...

• Reflect largescale and distributed parallelism• Move programmers to higher levels of abstraction• Adapt to the particular nature of Java

– Variability in per-instance performance of objects– Unpredictable lifespan of threads– Hidden impact of bottlenecks

• Don’t just re-work old mechanisms and metaphors

NACSE – Oregon State

What Should We Expect from HP/J Tools?

• Too much reliance on the past is limiting our future !

Page 21: Tool Requirements for High -Performance Java: Are Users …pancake/presentations/... · 2003-08-15 · 1 NACSE – Oregon State University Tool Requirements for High -Performance

21

NACSE – Oregon State

Special Project: Performance Database

– Goal: Create a permanent archive for results from benchmark runs

• Web-based access to tracefiles in standard format(s)• Benchmark source code (where not proprietary)• Metadata describe key aspects of program run• Query by setup conditions, event types, etc.• Download into spreadsheets or private databases

– Status• (Initially) Joint project of NACSE and Univ.di Pavia• Funded by U.S. Dept. of Defense HPC Modernization Program• Database now contains most of Pavia’s SPEC tests

– Future• Looking for other partners• Feedback: Should we add profiler output as well as tracefiles?

NACSE – Oregon State

Produced with (involuntary) artistic assistance from:Gary Larson, creator of “Far Side”

Newspaper cartoonists John O’Brien, S. Harris, and Goff


Recommended