Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-dev] Question about performance tools framework in PTP

Wyatt
I think what you propose works for me.  My usage of boolean environment 
variables accepts 'yes' for set and 'no' for unset. However, for the 
general model, this doesn't provide a mechanism where a boolean 
environment value is not set at all. In your TAU_THROTTLE example, 
TAU_THROTTLE can be either "yes" or "". It cannot be unset. I wrote a 
simple test, where if I 'export XX=' then run my program, getenv() returns 
an empty string. If XX is not set at all (or 'unset XX'), then 
getenv("XX") returns NULL, so there is a distinction between unset and set 
to an empty string.

I wasn't suggesting that GUI elements be set to enabled state in the 
panel. I was only thining that an environment value name and value would 
be copied into the application's environment variable set or not copied. 
The only time I think enabling/disabling GUI elements makes sense is when 
you have GUI options based on other selections or are mutually exclusive, 
then you may want to lock out some fields by disabling. This has the 
potential problem that the user may want to enter something in  adisabled 
field, but has no way to enable that field. A multi-pane/multi-tab dialog 
just makes that more confusing. At the moment, I think I'd recommend 
against disabling GUI elements.
Dave



Wyatt Spear <wspear@xxxxxxxxxxxxxx> 
Sent by: ptp-dev-bounces@xxxxxxxxxxx
04/10/2009 04:20 PM
Please respond to
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>


To
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
cc

Subject
Re: [ptp-dev] Question about performance tools framework in PTP






As an example of environment variable usage for the execution step I had 
something like this in mind:

        <execute>
        <optionpane title="TAU Vars">
            <togoption label="Throttle" optname="TAU_THROTTLE" 
envvar="true"/>
                 <optvalue seton="yes" setoff=""/>
            <togoption label="Callpath Depth" optname="TAU_CALLPATH_DEPTH" 
envvar="true">
                <optvalue type="number"/>
            </togoption>
        </optionpane>
        <global>
            <envvar flag="TAU_VERBOSE" value="1"/>
        </global>
    </execute>

UI components in an optionpane are about the same as for arguments except 
that they are specified as env-vars.  The seton/off attributes let you 
change the default values (1/0) for variables that are just toggled on and 
off. 

There is also a global area to place hard-coded environment variables, 
analogous to the 'argument' tags under tool commands.

I will have to give some thought to enabling/disabling variables based on 
text entry.  It is not hard to do but it makes environment-variable field 
behavior different from argument field behavior and I would prefer to keep 
the two transparent.  Would it work to have all environment variable 
widgets enabled by default?   There is already markup for that, and for 
removing the checkboxes (soon to be documented!).  As I recall providing 
an empty string when setting an environment variable is the same as not 
setting it at all, so leaving the fields blank would be the same as 
disabling them as far as the runtime was concerned.

Please let me know if you have any more thoughts or suggestions.

Thanks,
Wyatt

On Thu, Apr 9, 2009 at 5:38 PM, Dave Wootton <dwootton@xxxxxxxxxx> wrote:

Wyatt 
Is what you are proposing is an XML tag that lists the environment 
variables that need to be passed to the launch environment or a section in 
the XML file with one statement for each environment variable that gets 
passed to the launch environment? 

How are you thinking you picking up the values for environment variables? 
I was thinking that if one of the widgets had a value, that would mean 
that the corresponding environment variable would be set. 

For instance, if I had a text field "Maximum event count" that 
corresponded to environment variable MAX_EVENTS, that if that field in the 
panel was blank then MAX_EVENTS would not be set, and if the field was 
non-blank, then the environment variable would not be set or passed to the 
application. Maybe another keyword in the togoption specification 
envname=MAX_EVENTS, possibly mutually exclusive with optname? I'd prefer 
that the environment variable be set only if the field was non-blank 
rather than asking the user to both check a checkbox and then set the 
value. 

In the case of a boolean, where you present a checkbox, I need a value to 
be set when the checkbox is checked, in my case 'yes', and if the checkbox 
is not checked, then the environment variable does not need to be set. 

The tool I am working with doesn't have a compilation stage as such. It 
parses the binary so it can give the user a list of instrumentation 
points. Once the user selects the instrumentation he wants, the tool 
rewrites the binary with instrumentation code. At the moment, I'm required 
to use the user interface that already exists within the tool. I'm trying 
to add an execution flow to the tool that is a little more friendly than 
what we have today. 
Dave 


Wyatt Spear <wspear@xxxxxxxxxxxxxx> 
Sent by: ptp-dev-bounces@xxxxxxxxxxx 
04/09/2009 12:21 PM


Please respond to
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>


To
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx> 
cc

Subject
Re: [ptp-dev] Question about performance tools framework in PTP








Greetings,

Yes I can put in something to clear up those pop-ups.  They only show up 
for utility applications that aren't found in the system path but I can 
make them less persistent and add a case for non-tools.

As I was assembling the environment variable system I realized that the 
application-composite model wouldn't always apply.  TAU is actually 
similar in that regard, I've just been compiling in instrumentation 
options rather than using environment variables.  I think I will add a 
top-level xml tag for environment variables that go to the general launch 
environment.  The default behavior will be to append environment variables 
specified for the launch phase to the standard list and restore the list 
to its previous state after the launch.

By the way, how does compilation with your tool work? Is that something it 
might be worth while to incorporate into the workflow with the launcher?

I'll take care of those exceptions too.

Thanks!
Wyatt

On Thu, Apr 9, 2009 at 5:23 AM, Dave Wootton <dwootton@xxxxxxxxxx> wrote: 

Wyatt 
I was looking in the run configuration. Once I created a performance 
configuration tab the panel showed up. I noticed a couple things that 
could be problems though. The first time I created a performance 
configurations, I got popups asking me for the path to the directories for 
Tau and pinpath, where I think pinpath shows up because that's the name of 
the group in the utility statement in my XML file. I don't have Tau 
installed, and in pinpath's case, there is no such tool. I was able to 
make the dialog go way by picking a random directory for each. If a user 
chooses to not install Tau, he may be confused by what he is being asked 
for. I can also get out of this by clicking cancel, although it's not 
clear to me as a user what the consequences of clicking canel are. Maybe 
the solution is to have text in the dialog along the lines of 'Click 
cancel if <tool> is not installed or is unavailable' and then have the 
plugin handle the absence of that tool properly. 

This extension doesn't exactly fit my model either. In my case, I have an 
application binary that has been previously instrumented by my 
instrumentation and performance analysis tool which has it's own set of 
views to set up the instrumentation and create the instrumented binary. 
Once I have the instrumented binary, I think it's reasonable to tell the 
user that he has to use the profile configurations instead of the run 
configurations, since this is a different workflow. However, when I run 
the instrumented application, I don't have a tool that I'm running to do 
the performance analysis, I'm just setting environment variables which 
affect the instrumentation, running the instrumented application and then 
waiting for that application to complete. Once the application completes. 
I'm expecting PTP to notify me of job completion, perhaps by use if the 
IProgressMonitor. At that point, my tool knows that it has to look for the 
performance data files, finds them and opens views displaying that data. 
So I would expect to specify the application's path in the application tab 
of the performance configuration and not specify the application path 
again in the performance analysis tab. I think all that's required for my 
tool to work with your plugin is that your plugin not require me to 
specify some tool to run the application or assume the existence of that 
tool. 

For the environment variables, I'm thinking they just need to be appended 
to the set that's in the environment tab of the performance configuration. 
I'm guessing that since you seem to be building a command line, that your 
plugin gets control somewhere in the flow to invoking the application, and 
that it can just provide the environment variables I set at that point. In 
my case, I'm assuming the user will be running the application on a remote 
node, not the same node as Eclipse, so this would need to work for the 
remote execution case as well. 

I also ran into a couple exceptions trying this. 

The first exception appears when I try opening a performance configuration 
and may be caused by the fact taht I don't have Tau installed. 

The second exception occurs after I press cancel in both of the popup 
dialogs asking me for pathnames to Tau and pinpath. 

Exception #1 

java.lang.NoClassDefFoundError: edu/uoregon/tau/perfdmf/DataSource 
at 
org.eclipse.ptp.perf.tau.TAUAnalysisTab.initDBCombo(TAUAnalysisTab.java:1015) 

at 
org.eclipse.ptp.perf.tau.TAUAnalysisTab.initializeFrom(TAUAnalysisTab.java:994) 

at 
org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup.initializeFrom(AbstractLaunchConfigurationTabGroup.java:86) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupWrapper.initializeFrom(LaunchConfigurationTabGroupWrapper.java:143) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.displayInstanceTabs(LaunchConfigurationTabGroupViewer.java:787) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer$8.run(LaunchConfigurationTabGroupViewer.java:663) 

at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.inputChanged(LaunchConfigurationTabGroupViewer.java:680) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.setInput0(LaunchConfigurationTabGroupViewer.java:642) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.setInput(LaunchConfigurationTabGroupViewer.java:618) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.handleLaunchConfigurationSelectionChanged(LaunchConfigurationsDialog.java:959) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog$4.selectionChanged(LaunchConfigurationsDialog.java:566) 

at 
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:842) 

at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) 
at org.eclipse.core.runtime.Platform.run(Platform.java:880) 
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) 
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) 
at 
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:840) 

at 
org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1639) 

at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1104) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView.handleConfigurationAdded(LaunchConfigurationView.java:281) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView.access$1(LaunchConfigurationView.java:271) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView$2.run(LaunchConfigurationView.java:260) 

at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133) 

at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425) 
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) 
at org.eclipse.jface.window.Window.open(Window.java:801) 
at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.open(LaunchConfigurationsDialog.java:1113) 

at org.eclipse.debug.ui.DebugUITools$1.run(DebugUITools.java:388) 
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
at 
org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.java:396) 

at 
org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.java:332) 

at 
org.eclipse.debug.ui.actions.OpenLaunchDialogAction.run(OpenLaunchDialogAction.java:81) 

at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) 
at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583) 

at 
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500) 

at 
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) 
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422) 
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) 
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) 
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) 
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) 
at 
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) 

at 
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) 

at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
at 
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) 

at 
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 

at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 

at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 

at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386) 

at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) 
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) 
at org.eclipse.equinox.launcher.Main.run(Main.java:1236) 
Caused by: java.lang.ClassNotFoundException: 
edu.uoregon.tau.perfdmf.DataSource 
at 
org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:481) 

at 
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:397) 

at 
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:385) 

at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) 

at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
... 63 more 

Exception #2 

java.lang.StringIndexOutOfBoundsException: String index out of range: -1 
at java.lang.String.substring(Unknown Source) 
at 
org.eclipse.ptp.perf.tau.TAUAnalysisTab.testTAUEnv(TAUAnalysisTab.java:533) 

at 
org.eclipse.ptp.perf.tau.TAUAnalysisTab.initMakefiles(TAUAnalysisTab.java:472) 

at 
org.eclipse.ptp.perf.tau.TAUAnalysisTab.initializeFrom(TAUAnalysisTab.java:929) 

at 
org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup.initializeFrom(AbstractLaunchConfigurationTabGroup.java:86) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupWrapper.initializeFrom(LaunchConfigurationTabGroupWrapper.java:143) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.displayInstanceTabs(LaunchConfigurationTabGroupViewer.java:787) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer$8.run(LaunchConfigurationTabGroupViewer.java:663) 

at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.inputChanged(LaunchConfigurationTabGroupViewer.java:680) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.setInput0(LaunchConfigurationTabGroupViewer.java:642) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.setInput(LaunchConfigurationTabGroupViewer.java:618) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.handleLaunchConfigurationSelectionChanged(LaunchConfigurationsDialog.java:959) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog$4.selectionChanged(LaunchConfigurationsDialog.java:566) 

at 
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:842) 

at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) 
at org.eclipse.core.runtime.Platform.run(Platform.java:880) 
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) 
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) 
at 
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:840) 

at 
org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1639) 

at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1104) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView.handleConfigurationAdded(LaunchConfigurationView.java:281) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView.access$1(LaunchConfigurationView.java:271) 

at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationView$2.run(LaunchConfigurationView.java:260) 

at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133) 

at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425) 
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) 
at org.eclipse.jface.window.Window.open(Window.java:801) 
at 
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.open(LaunchConfigurationsDialog.java:1113) 

at org.eclipse.debug.ui.DebugUITools$1.run(DebugUITools.java:388) 
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
at 
org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.java:396) 

at 
org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.java:332) 

at 
org.eclipse.debug.ui.actions.OpenLaunchDialogAction.run(OpenLaunchDialogAction.java:81) 

at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) 
at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583) 

at 
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500) 

at 
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) 
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422) 
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) 
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) 
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) 
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) 
at 
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) 

at 
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) 

at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
at 
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) 

at 
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 

at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 

at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 

at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386) 

at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) 
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) 
at org.eclipse.equinox.launcher.Main.run(Main.java:1236) 
at org.eclipse.equinox.launcher.Main.main(Main.java:1212) 

Dave 

Wyatt Spear <wspear@xxxxxxxxxxxxxx> 
Sent by: ptp-dev-bounces@xxxxxxxxxxx 
04/08/2009 09:27 PM 



Please respond to
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>


To
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx> 
cc

Subject
Re: [ptp-dev] Question about performance tools framework in PTP










Are you looking in the run configuration dialog or the profile 
configuration dialog?  It should be showing up in the latter.  Check the 
dropdown box in the Performance Analysis tab.  If your tool shows up there 
but has no associated UI tab then the tool-pane element isn't being taken 
in properly.  Can I take a look at your xml file?

I'm making some headway on environment variable support, hopefully I'll 
have that up in CVS soon.  Ideally full wiki documentation for that and a 
few other useful features will follow shortly.

Regards,
Wyatt

On Wed, Apr 8, 2009 at 6:18 PM, Dave Wootton <dwootton@xxxxxxxxxx> wrote: 

Wyatt 
I tried this tonight with PTP 2.1.1 installed on an Eclipse 3.4.1 
installation and can't seem to make it work. I have a simple plugin I'm 
experimenting with which implements a single new view. That plugin loads 
successfully since I can see the new view. 
I copied the extension point usage into my plugin.xml file directly from 
the example on your wiki page 

<extension point="org.eclipse.ptp.perf.workflows">
     <workflowDefinitionXML
           XMLFile="data/toolxml/tf.xml">
     </workflowDefinitionXML>
  </extension>

Then I created the data/toolxml/tf.xml file as a new file in my plugin 
project and pasted the full contents from the tf.xml example just below 
the extension point example into that file. 

After that, I started a 2nd Eclipse instance as Eclipse application and 
could see my plugin view. I opened teh run configuration dialog and picked 
a parallel application run configuration and a C run configuration. I 
expected to see a new tab in the launch configuration dialog with the 
title Performance Analysis, but I don't see it. I don't see any errors 
logged in the error log views or to the console views. I do see the 
org.eclipse.ptp.perf plugin which I think implements your extension point, 
in the list of plugins in the Help->About Eclipse SDK dialog so I think I 
have teh right plugins loading. 

I also tried using the PTP preferences panel to select the path to the 
tf.xml file then open the launch configuration, and still didn't see the 
new tab. 

Am I doing something wrong? 
Dave 
Wyatt Spear <wspear@xxxxxxxxxxxxxx> 
Sent by: ptp-dev-bounces@xxxxxxxxxxx 
04/06/2009 02:26 PM 



Please respond to
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>


To
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx> 
cc

Subject
Re: [ptp-dev] Question about performance tools framework in PTP












The most through documentation available at the moment can be found here:  
http://wiki.eclipse.org/PTP/ETFw/PTP_External_Tools_Framework
There have been a few additions to the XML definition capabilities since 
this was written and it doesn't cover the internal API as much as the 
external XML tool definitions system.  It sounds like what you want will 
be something like what we did for TAU integration, using your plugin to 
wrap the components provided by the external tools.  I can pull together 
some more information on that for you.

So far, most of our test cases have dealt with generating command line 
arguments, so we don't have a complete general purpose environment 
variable system in place.  However it shouldn't take long to get that up 
and running.  Setting environment variables in the local eclipse launch 
environment is fairly straightforward, but if a different method is needed 
to send them to the remote system I can provide a 'getter' for environment 
variables specified in the tool's UI.

-Wyatt

On Mon, Apr 6, 2009 at 11:02 AM, Dave Wootton <dwootton@xxxxxxxxxx> wrote: 

Wyatt
I was hoping that if I chose this approach that it would cover CDT as
well. So that's good news. In order for this to be useful to me, I do need
to be able to add to the list of environment variables passed to the
remote process. Can you give me a reference to current documentation on
how to use this? I will look at the IProgessMonitor. I just need to find
time to do it.
Dave



Wyatt Spear <wspear@xxxxxxxxxxxxxx>
Sent by: ptp-dev-bounces@xxxxxxxxxxx
04/06/2009 12:11 PM
Please respond to
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>


To
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
cc

Subject
Re: [ptp-dev] Question about performance tools framework in PTP 






Greetings Dave,

The ExternalTools provide a distinct launch configuration system for both
the PTP and CDT.  Presently the system covers status with the standard
IProgressMonitor used to display job status in the UI.  It may be possible
for you to hook in to that, but if not I can probably add a listener
hook.  I'll also need to take a look and make sure environment variable
control is up and running.  Please let me know if you have any questions
or if I can help out with anything.

-Wyatt

On Mon, Apr 6, 2009 at 7:11 AM, Dave Wootton <dwootton@xxxxxxxxxx> wrote:
Wyatt
I have a performance analysis tool that has an Eclipse plugin. I'd like to
extend the Eclipse launch configuration dialog to add a new panel with
execution options specific to this tool. These options result in setting
environment variables that the tool recognizes. The tool itself runs as a
remote process on a different node than the Eclipse node. Greg suggested
that your framework might be helpful for this.

I need to use this for parallel execution, where I'm thinking of this as a
logical extension of the PTP launch configuration, as well as for serial
applications which would not use the PTP launch configuration and do not
run under control of any PTP resource manager. Does your tool framework
work only with PTP launch configurations, or would it work with the CDT
launch dialogs as well.

Also, does your framework provide any notifications of job start and
finish, such that a listener could register to be notified of those state
changes?

Thanks
Dave
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev




Back to the top