Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "PTP/designs/2.x"

< PTP‎ | designs
m (Overview)
(Debug Platform)
Line 70: Line 70:
 
* proxy client
 
* proxy client
 
* scalable debug manager
 
* scalable debug manager
 +
 +
The ''debug model'' provides a representation of a job and its associated processes being debugged. The ''debug views'' allow the user to interact with the debug model, and control the operation of the debugger. The ''parallel debug interface (PDI)'' is an abstract interface that defines how to interact with the job being debugged. Implementations of this interface provide the concrete classes necessary to interact with a real application. The ''SDM proxy'' provides an implementation of PDI that communicates via a proxy running on a remote machine. The ''proxy debug'' layer implements a set of commands and events that are used for this communication, and that use the ''proxy client'' communication services (the same proxy client used by the runtime platform). All of these elements are implemented as Eclipse plugins.
 +
 +
The ''scalable debug manager'' is an external program that runs on the remote system. It manages the debugger communication between the proxy client and low-level debug engines that control the debug operations on the application processes.
  
 
Each of these elements is described in more detail below.
 
Each of these elements is described in more detail below.

Revision as of 10:38, 15 September 2007

Overview

The Parallel Tools Platform (PTP) is a portable, scalable, standards-based integrated development environment specifically suited for application development for parallel computer architectures. The PTP combines existing functionality in the Eclipse Platform, the C/C++ Development Tools, and new services specifically designed to interface with parallel computing systems, to enable the development of parallel programs suitable for a range of scientific, engineering and commercial applications.

This document provides a detailed design description of the major elements of the Parallel Tools Platform version 2.x.

Architecture

The Parallel Tools Platform provides an Eclipse-based environment for supporting the integration of development tools that interact with parallel computer systems. PTP provides pre-installed tools for launching, controlling, monitoring, and debugging parallel applications. A number of services and extension points are also provided to enable other tools to be integrated with Eclipse an fully utilize the PTP functionality.

Unlike traditional computer systems, launching a parallel program is a complicated process. Although there is some standardization in the way to write parallel codes (such as MPI), there is little standardization in how to launch, control and interact with a parallel program. To further complicate matters, many parallel systems employ some form of resource allocation system, such as a job scheduler, and in many cases execution of the parallel program must be managed by the resource allocation system, rather than by direct invocation by the user.

In most parallel computing environments, the parallel computer system is remote from the user's location. This necessitates that the parallel runtime environment be able to communicate with the parallel computer system remotely.

The PTP architecture has been designed to address these requirements. The following diagram provides an overview of the overall architecture.

Ptp20 arch.png

The architecture can be roughly divided into three major components: the runtime platform, the debug platform, and tool integration services. These components are defined in more detail in the following sections.

Runtime Platform

The runtime platform comprises those elements relating to the launching, controlling, and monitoring of parallel applications. The runtime platform is comprised of the following elements in the architecture diagram:

  • runtime model
  • runtime views
  • resource manager
  • runtime system
  • remote proxy runtime
  • proxy runtime
  • proxy client
  • proxy server
  • launch

PTP follows a model-view-controller (MVC) design pattern. The heart of the architecture is the runtime model, which provides an abstract representation of the parallel system and the running applications. Runtime views provide the user with visual feedback of the state of the model, and provide the user interface elements that allow jobs to be launched and controlled. The resource manager is an abstraction of a resource management system, such as a job scheduler, which is typically responsible for controlling user access to compute resources via queues. The resource manager is responsible for updating the runtime model. The resource manager communicates with the runtime system, which is an abstraction of a parallel runtime system, and is typically responsible for node-to-process allocation, launching processes, and other communication services. The runtime system, in turn, communicates with the remote proxy runtime, which manages proxy communication via some form of remote service. The proxy runtime is used to map the runtime system interface onto a set of commands and events that are used to communicate with a physically remote system. The proxy runtime makes use of the proxy client to provide client-side communication services for managing proxy communication. All of these elements are Eclipse plugins.

The proxy server is a small program that typically runs on the remote system front-end, and is responsible for performing local actions in response to commands sent by the proxy client. The results of the actions are return to the client in the form of events. The proxy server is usually written in C. The proxy client/server protocol is defined in more detail here.

The final element is launch, which is responsible for managing Eclipse launch configurations, and translating these into the appropriate actions required to initiate the launch of an application on the remote parallel machine.

Each of these elements is described in more detail below.

Runtime Model

Runtime Views

Resource Manager

Runtime System

Remote Proxy Runtime

Proxy Runtime

Proxy Client

Proxy Server

Launch

Debug Platform

The debug platform comprises those elements relating to the debugging of parallel applications. The debug platform is comprised of the following elements in the architecture diagram:

  • debug model
  • debug views
  • PDI
  • SDM proxy
  • proxy debug
  • proxy client
  • scalable debug manager

The debug model provides a representation of a job and its associated processes being debugged. The debug views allow the user to interact with the debug model, and control the operation of the debugger. The parallel debug interface (PDI) is an abstract interface that defines how to interact with the job being debugged. Implementations of this interface provide the concrete classes necessary to interact with a real application. The SDM proxy provides an implementation of PDI that communicates via a proxy running on a remote machine. The proxy debug layer implements a set of commands and events that are used for this communication, and that use the proxy client communication services (the same proxy client used by the runtime platform). All of these elements are implemented as Eclipse plugins.

The scalable debug manager is an external program that runs on the remote system. It manages the debugger communication between the proxy client and low-level debug engines that control the debug operations on the application processes.

Each of these elements is described in more detail below.

Debug Model

Debug User Interface

Debug Controller

Debug API

Scalable Debug Manager

Tool Integration Services

Back to the top