Requirements for Remote Service Support
List of Authors:
Craig Rasmussen (firstname.lastname@example.org) (future authors)
This document describes the requirements for accessing remote machines via the Eclipse Parallel Tools Project. Remote access is defined to be any connection from a local Eclipse runtime to a remote computer. This remote capability will be used to provide the Eclipse user with access to remote resources as if these resources were local. Resources include file systems, compilers, linkers, queueing systems, operating systems and underlying hardware.
Remote File Systems
A mechanism shall be created to provide navigation and editing capabilities to files residing on a remote file system. A local copy of a file will be provided to Eclipse editors at the request of a user. All changes to local file copies will be reflected in (copied back to) the remote file. These capabilities are similar to those provided by the Remote Systems Explorer (RSE) DSDP Target Management project.
Remote Project Creation
The PTP shall provide the capability to create C, C++, and Fortran projects on a remote file system. A local proxy project will be created that provides a handle to the remote project. Outside of meta-data linking the local proxy with the remote project, project files will reside on the remote file system. Project resources shall be provided in the normal CDT and Photran navigator views.
The ability to set the remote environment (e.g., via environment variables through LANL's module loading capabilities) based on project type choices shall be provided. For example, if the user selects a particular managaged build type (e.g., Intel Fortran) then this choice will be reflected in the remote environment whenever a remote connection is made. This is necessary to ensure that the correct compilers and libraries are used when the project is built. For example, if the ORTE runtime is used, then the user's application will likely need to be compiled and linked with the same compilers and libraries that ORTE was built with. If changes are made to project type, then these changes shall be reflected in the remote environment.
Remote Project Build
The capability shall be provided to build a remote project automatically or through make targets. The application (build target) shall be created on the remote site using remote resources (e.g., compilers, linkers and libraries).
The capability for indexing of project files will be provided. As the project will be build using remote resources, indexing should be done in a way that reflects the remote environment (e.g., include files supplied by the remote compiler).
Remote Run Target
The capability shall be provided to created run targets that enable the project to be run remotely. When selected, the run target will need to interact with the remote resource manager to obtain the resources necessary to run the application.
Run host separate from build host
If the run target host is different machine from the build host, then a copy of the application may need to be placed on the run host and the resource manager must be capable of executing the application on the run host.
Remote Debug Target
The capability shall be provided to created debug targets that enable the project to be debugged remotely. When selected, the debug target will need to interact with the remote resource manager to obtain the resources necessary to run and debug the application.
Remote Resource Management
The capability shall be provided to view processes and queues on remote systems. A user shall be able to interact with remote resources (e.g., add or delete jobs from a remote queue). This interaction may be via a run or debug target or via the parallel debugger itself.
Run host separate from build host
If the run target host is a differenct machine from the build host, the resource manager must be capable of accessing the run host and submitting the job for executing the application on the run host.