blob: 946ff294157cf36385d81713836c805c6bea624a [file] [log] [blame]
<html>
<head>
<title>Overview and Features</title>
<link rel="stylesheet" type="text/css" href="help.css">
</head>
<body>
<h1 id="top">Overview and Features</h1>
<p><p>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 programs. PTP also includes support for Fortran programs.
<p>
PTP provides a range of tools and services to support
application development in the following four main areas:
<ul>
<li>Runtime services that allow developers to monitor and control the execution of parallel applications
<li>Debugging tools for locating runtime errors in parallel applications
<li>Analysis tools that provide advanced editing, error checking, and programmer assistance for developing parallel applications
<li>A framework for the integration of additional tools, such as performance tools for analyzing and optimizing the performance of parallel applications
</ul>
<p>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.
<h2>Runtime Services</h2>
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.
<h2>Debugging Tools</h2>
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.
<h2>Analysis Tools</h2>
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, 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.
<h2>External Tools Framework and Performance Tools</h2>
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).
<p><a href="#top">Back to Top</a> | <a href="toc.html">Back to Table of Contents</a>
</body>
</html>