Upload
others
View
44
Download
0
Embed Size (px)
Citation preview
© 2012 by IBM Co rpo ra t i on ; made ava i l ab l e unde r t he EPL 1 .0
automat i c remote p ro jec tsynchron i za t i on us ing g i t
Greg WatsonIBM
John EblenORNL
Roland SchulzORNL
Wednesday, April 4, 12
Background
• High performance (and technical) computing typically requires remote access to compute systems
• Usually not possible to cross compile due to specialized library or environment conditions
• Remote access required for– Building
– Launching
– Debugging
2Wednesday, April 4, 12
Remote Projects (PTP 4.0)
3
Source code
Login
Compute
Launch/Monitor/Debug
Launch/MonitorDebug
Edit/Search/Index/Navigation
Build
Build
Launch
Executable
Wednesday, April 4, 12
Problems
• Network sensitive– Services may generate significant traffic
– Interactive operations can’t be delayed
• CDT is not designed for remote operation– Much code assumes direct file access
• Requires each CDT service (index, search, type hierarchy, etc) implemented on remote system
• Currently only works for C/C++, will probably never work for any other languages
• Team is not remote aware, and probably will never be
4Wednesday, April 4, 12
Synchronized Projects (PTP 5.0)
5
Source code
Login
Compute
Launch/MonitorDebug
Launch/MonitorDebug
Edit/Search/Index/Navigation
Build
Build
Launch
Executable
Source code
Synchronize
External RCSWednesday, April 4, 12
Features
• Provides remote synchronization and remote build support– Adds properties page to CDT build configuration
• Supports multiple target systems– Can synchronize active configuration or all configurations
• Synchronize on file save, and prior to build• Synchronize automatically, on demand, or disabled• Queues pending synchronize operations if off-line• Supports filtering based on files or patterns
6Wednesday, April 4, 12
Advantages
• Network insensitive– Data intensive services operate on local copy
– Off-line operation supported
• No changes required to CDT• Supports C/C++ and Fortran, other languages could
be added• Team operations supported on local copy, RCS can be
used on remote copy
7Wednesday, April 4, 12
API
• synchronizationParticipant extension point– Implements ISynchronizeParticipant
– Specifies UI for configuring synchronization
– Specifies ISyncServiceProvider
• ISyncServiceProvider– Specifies remote connection
– Specifies remote location (directory)
– Implements synchronize() method
• Current implementation for Git– Uses JGit on Eclipse side
• Initial work on rsync provider
8Wednesday, April 4, 12
Source Repository
Source Repository
Source RepositoryDevelopment Machine
Build Machine 2
Test Machine 2
Test Machine 1
Build Machine 1
A Real Life Example...
10
Development Eclipse
AFS
Runtime Eclipse
Local C/C++ Project
Local Java Plug-in
Projects
Sandbox tree
Installed binaries
CMVC
CVS
CMVC
Binaries
Local Synchronized Test Projects
Remote Synchronized Test Projects
ssh session
Build
Rsync
ssh session
Launch
Launch
Build
Analyze
Build
Synchronize
Synchronize
1. Project Synchronize
2. Project Build Started
3. Build artifacts copied to test machine
4. Launch runtime Eclipse
Backend code
Frontend code
5. Test project created
6. Test project synchronized
7. Launch tool tests
Wednesday, April 4, 12
Future Work
• New synchronized project wizard– CDT’s new project wizard is (a) not extensible enough and (b) too
complex for most situations
• Merge wizard– Conflicts occur if both local and remote source is modified
– Can happen if remote source shared, or checked out from RCS
– Looking at using Egit views
• Support for Java, Python, Perl, etc.
11Wednesday, April 4, 12
More information
• www.eclipse.org/ptp
12
Thank you!
Wednesday, April 4, 12
1. Sign in: www.eclipsecon.org
2. Select Session Evaluate
3. Vote
Feedback
13Wednesday, April 4, 12