Jump to: navigation, search

PTP/new and noteworthy/5.0.0

The following are new features available in PTP 5.0 and Photran 7.0, released with Eclipse Indigo (3.7) June 22, 2011.

For tips on downloading, installing, and using PTP including the Eclipse IDE for Parallel Application Developers, see PTP 5.0 release notes

"New and Noteworthy" is a tradition for Eclipse projects - an interesting way to present our new features.

The PTP/new_and_noteworthy/4.0.0 is also available - new features in the previous release of PTP.

Bugs fixed in 5.0.0 release

See list of bugs fixed in PTP in 5.0

Eclipse IDE for Parallel Application Developers

With this release of Eclipse (Indigo, 3.7) there is now an Eclipse package all-in-one download with the essentials for Parallel Application Developers: Ptp-eclipse-ide-for-parallel-application-developers.png

  • Eclipse CDT - basics of C/C++ development
    • plus the CDT UPC features
  • PTP - Core features of PTP
    • basics
    • Photran - Development Environment for Fortran
    • RDT, Remote Development Tools
  • RSE
  • Some Linux Tools features not specific to Linux
    • autoconf
    • ...
  • XML Editors and tools useful for creating new JAXB-based resource managers
  • CVS and jGit

Note that not all of the features available in PTP are in this package. Features that provide PTP interfaces for other tools can be installed from the PTP update site, including:

  • Tuning and Analysis Utilities (TAU)
  • Graphical Explorer for MPI (GEM)
  • Parallel Performance Wizard (PPW)

The PTP update site is already added in this package but must be enabled. See Updating from a previous release for information about updating.

PTP System Monitoring

The System Monitoring perspective provides scalable job and system monitoring for large-scale systems. It is based on the LLview monitoring system but has been extended to support monitoring of any type of system. It is currently only used for the PBS resource manager, but will be extended to other resource managers in the future.

PTP-05sysMonPersp.png

PTP Resource Managers

Configurable (JAXB) Resource Managers

A new type of resource manager is available which makes it vastly easier to create and maintain new resource managers, without Java and Eclipse programming requirements. This configurable resource manager (also known from its implementation as a JAXB resource manager) defines a resource manager that can be configured from an XML file.

A detailed guide to the XML Schema, along with an introductory tutorial slide-set demonstrating some simple modifications to an existing XML definition, are available at PTP/resource-managers.

Remote Development Tools (RDT)

Synchronized Projects

A new type of project is available, the synchronized project.

Synchronized projects consist of files that are mirrored on the local system as well as on one or more remote systems. Editing occurs locally and each file is synchronized with the currently active remote system when it is changed, created, or deleted. This enables faster interaction with the files and editor, more CDT editor features since the files are local, and continued interaction for editing etc. if the network connection is lost.

Sync-newprojContext.png

Parallel Language Development Tools (PLDT)

  • Less intrusive/annoying insistence on setting MPI, OpenMP, preferences which were only used for non-prefix matching; more reliance on "prefix-only match" for artifacts, so these aren't really necessary now.
  • More accurate location of artifacts including within macro expansions

Photran 7

Code Templates

Code templates make it easier to type common Fortran constructs. For example, by typing "pro", pressing Ctrl+Space, and then pressing Enter to choose the "program...end program" template, Photran will automatically fill in "program <name>" and "end program <name>" statements. As you type the program name, both the "program" and "end program" statements will be adjusted accordingly. Then, press the Enter key to begin filling in the body of the program.

PhotranCodeTemplates.gif

"Correct Indentation" Command

Correct Indentation adjusts the indentation of the selected text in the editor (or the entire file if no text is selected). The current tab width (configured in the workspace preferences) is assumed to constitute one level of indentation.

PhotranCorrectIndentation.gif

Editor Improvements

Tabs-to-spaces conversion and custom tab width

It is now possible to set the "convert tabs to spaces" option in the Fortran editor without setting it workspace-wide. It is also possible to set a custom tab width for the Fortran editor.

PhotranTabsToSpaces.png

New Horizontal Ruler

The Fortran editor has a new horizontal ruler. It looks a bit nicer, shows tab stops, and (unlike in previous versions) works in both the free- and fixed-form editors, even when folding is enabled.

PhotranHorizRuler.png

19 New Refactorings

Subprogram Refactorings:

  • Add Subroutine Parameter
  • Permute Subroutine Arguments
  • Safe Delete

Do-loop Transformations (unchecked):

  • Fuse Loops
  • Reverse Loop
  • Tile Loop
  • Unroll Loop

Refactorings to Remove Obsolete Constructs:

  • Remove Arithmetic If-statement
  • Remove Assigned Go To
  • Remove Branch to End If
  • Replace Character* with Character(len=)
  • Remove Computed Goto
  • Remove Old-Style Do-loops
  • Remove Pause Statement
  • Remove Real and Double Precision Loop Counters

Refactorings to Improve Coding Style:

  • Add Identifier to End-statement
  • Convert Between If-statement and If-construct
  • Make Save Attributes Explicit
  • Remove Unreferenced Labels

Bug Fixes

  • Parser Bugs
  • Managed Make

External Tools Framework (ETFw)

Feedback view works on remote files

The ETFw Feedback view now works on files in a remote project. See Bug 349234 for a current limitation on remote DTD files.

Graphical Explorer of MPI Programs (GEM)

Full GEM help documentation can be found online here

Remote Enabled

GEM now supports remote C/C++ MPI projects whose connections are through one of the following remote service providers:

  • Remote Tools
  • Remote System Explorer

Target Machine Requirements:

  • ISP version 0.3.0 or later
  • gcc/g++
  • Some implementation of MPI must be installed, MPICH2 or OpenMPI both work well

GEM Browser View

This highly functional view summarizes and categorically groups all of the errors and warnings found by GEM on a particular MPI verification run. The summary label (just above the tabs) gives the user a quick overview of problems found. Errors and warnings are mapped to the corresponding source code lines in the Eclipse editor. The Browser View's tabs help the user to quickly locate and fix MPI errors flagged by GEM in their source code. Full documentation for the GEM Browser View is here

Figure 1 below shows what the Browser View should look like along with an explanation of its components.

GEM Browser View
Figure 1 - GEM Browser View

Browser View Tabs

Below the GEM Browser summary label (the line above the tabs summarizing the errors and warnings found) is a section containing a tab for category of error or warning that was found in the code. By selecting a particular tab the user is given detailed information on each occurrence of that type of error or warning in their MPI code. Clicking on any of these occurrences takes the user to the offending line in the source code within the Eclipse editor. If there are no instances of the problem then there is a short message indicating as much. Furthermore, a user is shown which types of errors are present via the icons of the tab (see icons directly below).

    No-error.gif Indicates that there are no instances of this particular type of problem.

    Magnified-trident.gif Tells the user that this problem is present in their code.

Deadlocks Tab: This tab allows the user to visit all of the calls that did not complete due to each detected deadlock.

Assertion Violations Tab: This tab list all local assertion violations found. Clicking any one of these will take the user to the line of source code with the failed assertion.

Leaks Tab: Clicking any of these will take the user to the line of source code where the corresponding un-freed MPI resource was allocated (these are usually MPI communicators and MPI DataTypes).

Irrelevant Barriers Tab: This tab is reserved for Functionally Irrelevant Barriers. Clicking any these will take the user to the corresponding MPI_Barrier call itself, which can then be safely removed without changing the runtime behavior of the program. This could potentially speed the application up with the absence of unnecessary synchronization.

Type Mismatches Tab: These are warnings about the send type not matching the receive type. In some cases this may be intentional, but often times it is a programming mistake.

Button Explanations

    SetNumProcsCombo.gif The first drop down combo-box shows the current number of processes and lets the user conveniently choose a new value for the next GEM run.

    Trident.gif This will re-run GEM on the current MPI project. This is equivalent to choosing "Formally Verify MPI Program" from the toolbar button drop-down and is provided for convenience.

New Preference Pages

GEM now has two preference pages. (Full documentation is here).

GEM Preference Page

This preference page is for settings related to how the views and various components within GEM behave and function. Here the user can control which GEM Views are shown and when, e.g. the active view (the view in focus after verification is complete), can be set on the GEM Preference Page. (see Figure 2 below).

GEM Preference Page
Figure 2 - GEM Preference Page

ISP Preference Page

This preference page is for command line settings for the underlying formal verification engine GEM uses, In-situ Parital Order (ISP).

Additions include the following options (see Figure 3 below):

  • Use Unix Sockets This dramatically increases the speed in which GEM verifies your application if run on a local machine.
  • Host Where ISP Resides This will allow the use of GEM in a distributed setting
ISP Preference Page
Figure 3 - ISP Preference Page

Enhanced Console Output

The main enhancement to this view is that during a GEM verification run, this view is active and gives STDOUT and STDERR as it occurs instead of a single lump sum at the end of the verification run. GEM console output is now red for STDERR. These enhancements help the user to recognize what is happening as the verification is being done at runtime (a status bar of sorts).

GEM Console View
Figure 4 - GEM Console View

Parallel Performance Wizard (PPW)

New and Noteworthy for 5.0.5 release

Several fixes and new items added so we'll list them here

Bugs fixed

Photran

  • [1], [2] - Managed build projects using the Gnu toolchain were not consistently using module dependencies to determine build order
  • [3] - PGI error parser did not recognize errors containing non-alphanumeric characters
  • [4] - Opening/closing projects raised a ResourceException
  • [5] - Managed build toolchains were selecting the deprecated Mach-O binary parser and Make error parser
  • [6] - XL Fortran managed build toolchain was activating error parser with invalid ID
  • [7] - Gnu managed build toolchain "Check syntax only (-fsyntax-only)" option in symbols was handled incorrectly

New resource manager work

Infrastructure (LML) and new resource manager implementations

New resource manager for IBM PE based on the new configurable resource manager framework (JAXB)

  • Note that these don't require the proxy to run on the remote machine.

Synchronized Project updates/fixes

Developers can now specify, via a filter dialog, which files and folders should be included during synchronization, using either explicit paths or regular expression patterns. See the documentation for more details.

Sync File Exclude/Include List
Figure 5 - Sync File Exclude/Include List


In addition, this release fixes the following bugs:

  • [8]: Output from build not printed to console until after build completes
  • [9]: Context menu not available in Project Explorer for files and folders
  • [10]: Remote sync cannot handle spaces in directory
  • [11]: Deadlock caused by overuse of sync lock