# Overview and Features

The Parallel Tools Platform (PTP) extends Eclipse to enabled the development of parallel applications. It is primarily aimed at message passing codes, such as those using MPI, but also provides support for Open MP and Unified Parallel C (UPC) programs. PTP also includes support for Fortran programs.

PTP provides a range of tools and services to support application development in the following four main areas:

- Runtime services that allow developers to monitor and control the execution of parallel applications
- Debugging tools for locating runtime errors in parallel applications
- Analysis tools that provide advanced editing, error checking, and programmer assistance for developing parallel applications
- A framework for the integration of additional tools, such as performance tools for analyzing and optimizing the performance of parallel applications

PTP tools are provided for projects located both on the local machine (where Eclipse and PTP are installed) as well as on a remote target machine. Remote machines can be utilized for a variety of services including source file hosting, remote builds, execution and monitoring, and debugging.

## Runtime Services

These services allow the developer to launch and monitor parallel applications on both local and remote systems. PTP provides configuration files to support a wide range of job schedulers, including PBS, TORQUE, SLURM, GridEngine, LoadLeveler, and runtime systems, including IBM Parallel Environment, Open MPI, and MPICH2, BG/Q, and BG/P. A number of configuration files are also provided to support specific XSEDE systems (http://xsede.org). The runtime services framework also allow users to easily add support for their own systems. Application monitoring allows the user to see the job queues and the status of the nodes (including the location of running jobs, if supported) on the target systems. Users are also able to control jobs that they have launched via the Eclipse interface.

## Debugging Tools

PTP provides an integrated parallel debugger that provides a range of basic debugging functions for locating errors in parallel applications. This includes the ability to set breakpoints and control program execution (single step, resume, etc.) across an arbitrary set of application processes. The developer can also drill down into individual process to obtain more detailed information about the process state, variable information, etc.

## Analysis Tools

These tools are built on the C/C++ Development Tools (CDT) abstract syntax tree infrastructure and use static analysis techniques to provide a range of advanced editing and error checking features. Examples include content assist for MPI, OpenMP, UPC, OpenACC and OpenSHMEM APIs and directives, barrier analysis for MPI programs, and concurrency analysis for OpenMP programs. Future versions of PTP will combine this with the External Tools Framework to provide dynamic analysis functions, such as parallelization assistance.

## External Tools Framework and Performance Tools

The External Tools Framework (ETFw) provides a simple mechanism for integrating external performance tools, and other arbitrary external tools, with PTP. By providing an XML description file, the tool is able to be integrated with the editor, build, and launch systems. A Feedback view provides display of results from arbitrary tools in an Eclipse view and maps the results to source code lines for simplified interaction between the tool's results and the source code, as well as providing extension points for integration of other tools based on results. Currently, support is provided for the Tuning and Analysis Utilities (TAU) performance analysis system and the Parallel Performance Wizard (PPW).

Back to Top | Back to Table of Contents