Jump to: navigation, search

Difference between revisions of "PTP/photran/rsync remote projects"

< PTP‎ | photran
m
Line 14: Line 14:
 
*'''Remote include path support:''' Changes Photran to use URIs, rather than local paths, to specify INCLUDE paths, and allows the user to set such paths by changing the project properties dialog to allow the selection of folders on any filesystem (including RSE).
 
*'''Remote include path support:''' Changes Photran to use URIs, rather than local paths, to specify INCLUDE paths, and allows the user to set such paths by changing the project properties dialog to allow the selection of folders on any filesystem (including RSE).
  
=== Technical Issues ===
+
=== Technical Issues ===
  
*The C build console will not allow SSH to ask for a password (gives an error); the user must have password-less SSH set up.
+
*The C build console will not allow SSH to ask for a password (gives an error); the user must have password-less SSH set up.  
*Make may give a "clock skew detected" error if the local and remote machine do not have their clocks synchronized.
+
*Make may give a "clock skew detected" error if the local and remote machine do not have their clocks synchronized.  
*The prototype build establishes two or three separate connections during a build, which slows it down noticeably.
+
*The prototype build establishes two or three separate connections during a build, which slows it down noticeably.  
*Include files are not cached locally.&nbsp; Repeatedly loading them from the server is slow; also, one advantage of rsync-style remote projects is supposed to be that the code can be edited locally, without a persistent connection to the server.
+
*Include files are not cached locally.&nbsp; Repeatedly loading them from the server is slow; also, one advantage of rsync-style remote projects is supposed to be that the code can be edited locally, without a persistent connection to the server.
*The prototype only supports remote paths for Fortran INCLUDE lines.&nbsp; A full implementation must also allow remote module paths and remote C preprocessor #include paths.
+
*It may be useful for a full implementation to include an "SSH error parser" so that connection timeouts, etc. can be displayed in the Problems view.
 +
*The prototype only supports remote paths for Fortran INCLUDE lines.&nbsp; A full implementation must also allow remote module paths and remote C preprocessor #include paths.  
 
*Attempting to set a remote breakpoint in PTP is giving the error "Error completing debug job launch: Cannot create routing file: unable to determine process location"
 
*Attempting to set a remote breakpoint in PTP is giving the error "Error completing debug job launch: Cannot create routing file: unable to determine process location"
  

Revision as of 13:46, 17 May 2010

Overview

One item that has been discussed several times at NCSA/Blue Waters meetings is the desire to have Eclipse support for a new type of C/C++/Fortran project, which we're calling a "rsync-style remote project." In this type of project, the code is stored and edited locally, e.g., on a user's laptop. When it is time to build, however, the code is copied (rsync'd) to a remote machine (e.g., a cluster) and compiled there. The user then runs and debugs the executable on the remote machine.

Matt Fotzler (UIUC) will be prototyping support for rsync-style remote projects in Photran. The final code will be contributed as Bug 313194; this wiki page has been set up to track requirements/issues in the interim.

Implementation

Strawman Prototype

Components

  • New project wizard: Essentially the same as a C Makefile project, except the builder is changed from make to a custom script, build.sh, which is stored in the project root.  This script rsyncs the project to the remote machine and runs make there.
  • Remote include path support: Changes Photran to use URIs, rather than local paths, to specify INCLUDE paths, and allows the user to set such paths by changing the project properties dialog to allow the selection of folders on any filesystem (including RSE).

Technical Issues

  • The C build console will not allow SSH to ask for a password (gives an error); the user must have password-less SSH set up.
  • Make may give a "clock skew detected" error if the local and remote machine do not have their clocks synchronized.
  • The prototype build establishes two or three separate connections during a build, which slows it down noticeably.
  • Include files are not cached locally.  Repeatedly loading them from the server is slow; also, one advantage of rsync-style remote projects is supposed to be that the code can be edited locally, without a persistent connection to the server.
  • It may be useful for a full implementation to include an "SSH error parser" so that connection timeouts, etc. can be displayed in the Problems view.
  • The prototype only supports remote paths for Fortran INCLUDE lines.  A full implementation must also allow remote module paths and remote C preprocessor #include paths.
  • Attempting to set a remote breakpoint in PTP is giving the error "Error completing debug job launch: Cannot create routing file: unable to determine process location"

Usability Issues

  • Windows users do not have make and rsync available by default
  • The user may want to exclude some folders (e.g., documentation) from the rsync (for efficiency)
  • The