eclipse parallel tools platform
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare the intent and scope of a proposed Technology PMC Project called the Eclipse Parallel Tools Platform Project, or PTP. In addition, this proposal is written to solicit additional participation and inputs from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ptp newsgroup.
Designing and developing parallel programs (that is, multi-process, not just multi-threaded programs) is an inherently complex task. Developers must choose from the many parallel architectures and programming paradigms that are available, and face a plethora of tools that are required to execute, debug, and analyze parallel programs in these environments. Few, if any, of these tools provide any degree of integration, or indeed any commonality in their user interfaces at all. This further complicates the parallel developer's task, hampering software engineering practices, and ultimately reducing productivity.
One consequence of this complexity is that best practice in parallel application development has not advanced to the same degree as more traditional programming methodologies. The result is that there is currently no open-source, industry-strength platform that provides a highly integrated environment specifically designed for parallel application development. In order to address this deficiency, the Eclipse Parallel Tools Platform Project (PTP) aims to extend the Eclipse framework to support a rich set of parallel programming languages and paradigms, and provide a core infrastructure for the integration of a wide variety of parallel tools.
The PTP project will provide a comprehensive platform that addresses many of these problems facing parallel application developers today, including:
- no standard, portable, parallel IDE
- no existing open-source parallel debugger
- the proliferation of stand-alone parallel tools
- the inability of existing tools to interoperate
- the poor scalability and reliability of existing tools
The Eclipse PTP will deliver a portable, scalable, standards-based parallel tools platform that will enable the integration of tools specifically suited for parallel computer architectures. These tools will provide functionality such as:
- parallel debugging
- performance analysis and profiling
- message traffic analysis
- data visualization
- problem solving environments
- model coupling
- automated parallelization
- data parallel languages
By providing a common parallel tools framework, PTP will also encourage tool developers and vendors to adopt a highly integrated approach to their tool design. By decoupling the user interface requirements, tool developers will also be able to focus on their core tool functionality without having to waste resources on maintaining the infrastructure needed to support their tools. The result will benefit parallel application developers by ensuring that a wide range of highly integrated parallel tools will be available to meet their development needs.
ProjectsParallel Execution Environment
The Parallel Execution Environment is an extension to the existing launch configuration environment provided by Eclipse. The Parallel Execution Environment provides Eclipse with the ability to launch and control a parallel program. Integrated into this functionality will be support for a wide range of parallel architectures, including shared memory and distributed memory systems. The parallel execution environment will also provide a simple, uniform interface into a range of resource allocation facilities (such as batch queuing systems) that are employed by many parallel systems.
The Parallel Debugger is an extension to the existing platform debug framework that will provide functionality to enable the execution debugging of multi-process programs. The goal of the project is to enable launching in debug mode, or attaching a debugger to, an extremely large (thousands of processes) parallel program. The parallel debugger will rely on services provided by the parallel execution environment in order to launch or attach to the parallel program. A range of extensions to the existing debug model and debug UI will be required to support the new functionality.
Parallel Tools Integration
The Parallel Tools Integration project will define and implement a set of core services that will enable the integration of tools specifically designed for parallel programming environments. Examples include:
- A model view controller framework for monitoring and viewing information for a large number of data sources
- Remote communication services for managing and controlling a large number of remote objects
- Standardized data structures for language support, including parallel languages
- Parallel data distribution information for analysis and visualization
The aim of this project will be to provide a comprehensive, extensible and scalable infrastructure that will encourage the development of highly integrated parallel tools.
Parallel End-User Support
In addition to the creation of a portable parallel IDE, the PTP will also provide the foundation for a rich environment to support the end-users of parallel applications. This will include a range of services to simplify end-user interaction with existing parallel run-time systems, resource allocators, and job schedulers, provide monitoring and status information, and to facilitate the management, collection and visualization of data for these applications.
Fortran Development Tools
Fortran support is specifically required by the scientific computing community to enable high performance parallel application development. The Fortran Development Tools project will add Fortran language support to the Eclipse platform, providing a similar level of functionality to that provided by the C/C++ Development Tools. This will include editing (syntax highlighting, code assist, etc.), debugging (using native debug support), and launching (as an external application). As for the C/C++ Development Tools, the Fortran Development Tools will provide a parser, search engine, content assist provider and makefile generator.
It is expected that this project will have committers from Los Alamos National Laboratory, but we are encouraging others to participate in all aspects of the project. If you are interested in participating, please take part in the newsgroup discussions or ask to be added to the list of interested parties.
Greg Watson, LANL (Project Lead)
gwatson at lanl.gov
Nathan DeBardeleben, LANL (Parallel Execution Environment)
ndebard at lanl.gov
Craig Rasmussen, LANL (Fortran Development Tools)
crasmussen at lanl.gov