• No results found

Developing Parallel Applications with the Eclipse Parallel Tools Platform

N/A
N/A
Protected

Academic year: 2021

Share "Developing Parallel Applications with the Eclipse Parallel Tools Platform"

Copied!
23
0
0

Loading.... (view fulltext now)

Full text

(1)

Developing Parallel Applications

with the

Eclipse Parallel Tools Platform

Greg Watson

IBM STG

[email protected]

(2)

Parallel Tools Platform

Enabling Parallel Application Development

parallel  tools  pla*orm  

(ptp)  

Tools to assist new

breed of programmers

to develop parallel

programs

Best practice tools for

experienced parallel

programmers

Improve parallel tools

and the productivity of

tool developers

Leverage Eclipse ecosystem and community for development and support

Provide focal point for parallel tool development for a broad

(3)

PTP Timeline

2008 2012 Europa Ganymede 3.4 Galileo 3.5 Helios 3.6 Indigo 3.7 PTP 5.0 June ’11 PTP 4.0 June ’10 PTP 3.0 Nov ’09 PTP 2.0 Mar ’08 PTP 1.0 Mar ’06 PTP 2.1 Nov ’08 PTP 1.1 Feb ’07 Creation 2010 2007 2009

18 committers from 11 different

organizations

SR1 Sep ’10 SR2 Feb ’11 2011 2013 PTP 6.0 June ’12 Juno 4.2

PTP 6.0 is part of the Eclipse “Juno”

simultaneous release of over 70

Eclipse projects

SR1 Sep ’11

SR2 Feb ’12

(4)

PTP Application Development Cycle

Application Execution

Coding & Static Analysis

(5)

 

Eclipse provides a wide variety of coding assistance tools

– 

Project management, Editing and formatting, Navigation, Advanced

searching, Refactoring, Version control

 

C/C++ Development Tools (CDT)

– 

Standard (Makefile) and managed builders, Support for arbitrary

toolchains, Visual debugging using GDB, High level views (outline view,

call hierarchy, type hierarchy, include browser), Refactorings

 

Parallel Tools Platform (PTP)

– 

Fortran, New project wizards (MPI, OpenMP) Content Assist, Hover help,

Built-in API descriptions (MPI, OpenMP, LAPI, UPC), Location of parallel

“artifacts” in code (MPI, OpenMP, PAMI, and UPC), Barrier analysis,

Deadlock detection

(6)

 

Assistance tools to increase productivity of

parallel programmers

– New project wizards (MPI, OpenMP)

– Content Assist (command/API completion), hover help, built-in API help descriptions built-in an html help “view” (MPI,

OpenMP, LAPI, UPC)

– Location of parallel “artifacts” in code: MPI, OpenMP, LAPI APIs, and UPC

Coding & Static Analysis

(7)

 

Static analysis tools

 

Provides “advanced” error checking

 

Not always 100% accurate

 

MPI analysis

– Barrier deadlock detection

 

OpenMP analysis

– Concurrency analysis

– Common OpenMP problems

Coding & Static Analysis

(8)

Fortran Development Tools

 

Photran project

–  http://eclipse.org/photran

–  Tech lead at UIUC, Jeff Overbey

–  More UIUC students are contributing

–  Merged with PTP in 2009

–  Photran 8.0 released in Jun ’12 with PTP 6.0 / Eclipse Juno

 

Photran features:

–  Supports Fortran 77-2008

–  Syntax-highlighting editor

–  GUI interface to gdb

–  Makefile-based compilation

–  Compiler error extraction

–  Outline view

–  Open declaration

–  Fortran refactorings

(9)

Fortran Refactoring

Some samples:

 

Rename

–  Change name of every use of a variable, function, etc.

–  Only proceeds if new name will be legal

 

Extract procedure

–  Moves statements into a new subroutine, replacing statements with a call

–  Local variables are passed as arguments

 

Introduce implicit none

–  Adds an ‘implicit none’ statement

–  Adds explicit variable declarations

 

Photran 7.0: 31 refactorings

(10)

PTP Application Development Cycle

Application Execution

Coding & Static Analysis

(11)

Application Execution

Launching & Monitoring

PBS/Torque

SLURM

 

Improves visibility into target system

(12)

 

Extensible framework for launching & monitoring

– 

System and node status information

– 

Job status (e.g. position in queue) & application status

– 

Job submission & control

– 

Debugger launch

 

Configuration files to support different resource managers

– 

Job schedulers (LoadLeveler, PBS, Torque, SLURM, GridEngine)

– 

Interactive runtimes (e.g. PE, Open MPI, MPICH2, MVAPICH)

– 

Systems (AIX, Linux, Power, x86, BG/Q, Cray)

 

Local or remote system support

– 

Command-line tools executed locally or via ssh connection

Application Execution

(13)

PTP Application Development Cycle

Application Execution

Coding & Static Analysis

(14)

Application Debugging

PTP Parallel Debugger

 

Mid-scale integrated debugger

 

Tightly integrated with Eclipse

 

Supports debugging multiple jobs

simultaneously

 

Utilizes backend debugger (e.g. gdb) for

low level operations

 

Targeted at SPMD programming models

 

Supports mixed MPI & thread

debugging

 

Single process and group operations

 

Platform for building new debugging

paradigms

(15)

 

Scalable debugger using multicast reduction network

 

Integrated with PTP and launched using target configurations

 

Supports basic debug dommand

 

Uses gdb on backend

Application Debugging

IParallel Debugger Architecture

gdb sdm gdb gdb sdm gdb gdb sdm gdb gdb sdm master

(16)

PTP Application Development Cycle

Application Execution

Coding & Static Analysis

(17)

Dynamic & Performance Analysis

Dynamic Analysis Tools

 

Perform analysis on the running

application using external tools

 

Generate results that must be brought

back into Eclipse as part of the

development workflow

 

May require external tool for

visualization or other purposes

(18)

Dynamic & Performance Analysis

Tools Integrated with PTP

 

Tuning and Analysis Utilities (TAU)

– Instrumentation and transparent re-build of application executable

– Execution of profiled application and collect performance data

– Performance data visible in UI

– Launches paraprof visualization client from Eclipse

 

Graphical Explorer of MPI Programs (GEM)

– Formal Dynamic Verification of MPI Applications

– Detects all deadlocks, assert violations, MPI object leaks, and default safety properties

– Matches sends and receives

– Allows post-verification review of highlighted bugs

(19)

Conclusion

 

Complexity of peta-scale application development is becoming

clearer to developers

–  IDEs are starting to be seen as key to improving HPC developer productivity

–  IDEs are becoming more accepted in the HPC community

 

Eclipse is now a very mature platform

–  Has more users than VS

–  Hundreds of commercial products based on Eclipse

 

PTP is the only available platform on which to build an HPC

development environment

–  PTP developer community is starting to reach critical mass

(20)

Online Information

 

Information about PTP

– Main web site for downloads, documentation, etc.

– http://eclipse.org/ptp

– Developers’ wiki for designs, planning, meetings, etc.

– http://wiki.eclipse.org/PTP

– Articles and other documents

(21)

Community

 

PTP Mailing lists

– Major announcements (new releases, etc.) - low volume

–  http://dev.eclipse.org/mailman/listinfo/ptp-announce

– User discussion and queries - medium volume

– http://dev.eclipse.org/mailman/listinfo/ptp-user

– Developer discussions - high volume

– http://dev.eclipse.org/mailman/listinfo/ptp-dev

 

Meetings

– Monthly developer conference calls

– Announced on ptp-dev list

– Monthly user conference calls

(22)
(23)

References

Related documents

The moving average measure, which smooths out the volatility, edged up to 0.90, well above average (“zero” indicates average growth over the 1990-present period).. Only

Tanto el surgimiento de los movimientos juveniles independientes entre los estudiantes como el importante papel de éstos en la movilización juvenil más general se deben, en

Our model gauges the relationship between risk and reward in several ways, including: the pricing drawdown as compared to potential profit volatility, i.e.how much one is willing

Research has revealed that Open Source Software projects does not have same kind of requirements engineering processes as proprietary software projects usually

Figure 6.2 Comparison of decryption time of algorithms for large for large data From the above graphs, it can be observed that for large block of data AES-200

Since increasing the frequency of assessments generally leads to in- creased cost, herein, I mainly evaluate the performance of unbalanced design with only increasing the frequency

• In addition, allow ½ mark for relevant trends which form part of the business risk evaluation, e.g.. Allow 1 mark per audit risk for relevant materiality calculations, to a maximum

The Oracle Product Master Data Management Integration Pack, offers a pre-built integration process that seamlessly integrates Oracle Product Data Hub to Siebel