Community
Participate
Working Groups
This update replaces the previous version of the TAU PTP plugins. New functionality includes selective instrumentation, archival and display of profile data from TAU's perfdmf database system, launch configuration specific TAU instrumentation options and PAPI event counter selection. Note that these plugins require an external installation of TAU. The fortran selective instrumentation plugin (selinstfort) relies on the latest version of Photran. This release, while still under heavy development, has been stable and functional in local testing. Priorities for revision include additions to the PAPI counter selector interface, improved standard make support, separation of TAU-specific components from the general performance framework and context sensitive help.
Created attachment 55800 [details] TAU PTP Source The perfdmf plugin requires certain jar files distributed with the TAU toolkit. In addition to the project folders, this attachment includes a script to copy those jars from TAU (available at http://www.cs.uoregon.edu/research/tau/downloads.php) to the perfdmf folder. This is a temporary solution.
Thanks for the contribution. I have a few questions/comments. 1. Can you describe the purpose of each of the plugins? 2. Is Photran a dependency for the TAU plugins as a whole, or just for the selinstfort plugin? That is, can I install the TAU plugin without Photran, and if so do I get all the functionality except selinstfort? 3. The perfdmf plugin depends on libraries such as jgraph, jogl, jython, and others that seem to be TAU specific. What are your future plans regarding third party libraries? What are your future plans regarding TAU-specific libraries? Will these be contributed as source? 4. I assume that the org.eclipse.ptp.tau.launchtau is your launch configuration delegate. The convention for the package name is org.eclipse.ptp.tau.launch. 5. The perfdmf plugin has a direcory 'org' at the top level. Is this correct? It also has an 'icons' and a 'resources' directory, both of which seem to contain icons. Are these both necessary? 6. Please create a feature called org.eclipse.ptp.tau-feature that describes the TAU plugins. A good starting point is to copy the PTP feature in releng/org.eclipse.ptp-feature.
(In reply to comment #2) > Thanks for the contribution. I have a few questions/comments. > > 1. Can you describe the purpose of each of the plugins? I will include some documentation that covers this in detail with the next submission. > 2. Is Photran a dependency for the TAU plugins as a whole, or just for the > selinstfort plugin? That is, can I install the TAU plugin without Photran, and > if so do I get all the functionality except selinstfort? None of the other plugins depend on selinstfort and everything except selinstfort works with or without Photran. > 3. The perfdmf plugin depends on libraries such as jgraph, jogl, jython, and > others that seem to be TAU specific. What are your future plans regarding third > party libraries? What are your future plans regarding TAU-specific libraries? > Will these be contributed as source? I think the ideal solution would be for the plugin to reference the jars that come with the TAU distribution specified by the user, rather than including them in the plugin. I'm just getting started on implementing this. > 4. I assume that the org.eclipse.ptp.tau.launchtau is your launch configuration > delegate. The convention for the package name is org.eclipse.ptp.tau.launch. I am doing some significant reworking of the structure of the launch system. I will include this naming convention in the next submission. > 5. The perfdmf plugin has a direcory 'org' at the top level. Is this correct? > It also has an 'icons' and a 'resources' directory, both of which seem to > contain icons. Are these both necessary? I suspect these are artifacts of a previous build state. I will make sure everything is clean when I re-submit. > 6. Please create a feature called org.eclipse.ptp.tau-feature that describes > the TAU plugins. A good starting point is to copy the PTP feature in > releng/org.eclipse.ptp-feature. It shall be so. The work I am doing right now is going to make the launchtau plugin submitted here obsolete. I am moving the TAU specific functionality to a new plugin, so org.eclipse.ptp.tau.launch will contain a bare bones LaunchConfigurationDelegate and LaunchConfigurationTabGroup referencing that. I will also be making a launcher plugin that uses the standard CDT launching mechanism, for analysis of non-parallel programs. It will use the same TAU specific pre/post launch functions. Will that be appropriate to include with the PTP, and if so is there a preferred name for it, as an auxiliary launch plugin? The new TAU launch architecture is pretty much in place already, but unless there is a particular need I will wait to resubmit until after I have things more fully implemented and tested. That will probably be in early January.
Created attachment 56856 [details] Updated TAU PTP Plugins The structure of the plugins should be fairly stable now, apart from possible additional changes to better conform to naming conventions. I have added a 'feature', as requested. TAU plugins for the PTP (Parallel Tools Platform) org.eclipse.ptp.tau.cdt.launch: Creates an additional launch configuration delegate that adds TAU to the CDT's launch system org.eclipse.ptp.tau.launch: Creates an additional launch configuration delegate that adds TAU to the PTP's launch system org.eclipse.tau.core: Contains the TAU specific functions needed to compile and launch a C/C++/Fortran program with TAU instrumentation, regardless of the launch system. Includes the TAU Analysis launch configuration tab. org.eclipse.tau.options: Defines the workspace-wide TAU preference page. org.eclipse.tau.papiselect: Provides a GUI and logic for determining and selecting available PAPI event counters. org.eclipse.tau.perfdmf: Provides a TAU analysis view for interacting with the PerfDMF database and launching ParaProf from within Eclipse org.eclipse.tau.selinst: Provides functionality for selective instrumentation of C/C++ and some Fortran code elements. org.eclipse.tau.selinstfort: Provides functionality for selective instrumentation of Fortran specific code elements
Submitted to IPZilla (finally): https://dev.eclipse.org/ipzilla/show_bug.cgi?id=1350 Sorry it has taken so long.
Wyatt, what version of Eclipse/CDT does this use? 3.2/cdt3.1, or the newer 3.3Mx/cdt4.0Mx? Or something older? I'm about to try it on 3.2.2/cdt3.1.2
Created attachment 61750 [details] Updated TAU PTP Plugins This release has various tweaks and fixes to previously submitted code. It is not as fully tested, but should be fairly stable.
Created attachment 61892 [details] Updated TAU PTP Plugins A few additional updates and improvements. Most importantly, fixed an incompatibility with PTP 1.1
Created attachment 62014 [details] Updated TAU PTP Plugins Accidentally uploaded the built plugins rather than the source last time.
I belive this code has now been added. Please reopen if not.
Yes, TAU plugins were checked into CVS (by me) on 4/17/07. Sorry, should have changed the status myself.
Created attachment 76087 [details] Updated TAU Plugins Significant changes since the last update. Here are a few of the big ones: TAU launch configuration now selects build configurations rather than binaries (since the existing binaries aren't launched anyway). The jars provided by TAU have been moved to their own plugin. An interface for uploading profile data to the TAUPortal web service has been added. Cleaned up launcher logic (Auto selection of a build creation with new launch configurations, do not run mpi programs unless they are being run with PTP launch configurations, etc). Compartmentalized TAU launch system with Eclipse 'jobs' (this fixes the problem with the progress bar appearing all through execution of a performance analysis launch). Added xml-based options interface generator (a likely precursor to extension point based performance tool integration). Added generic build configurations to support compilers that don't accept optimization flags, etc. Added a TAU splash screen to present the user with various common options before launching a job. Added support for various new TAU compilation and selective instrumentation features. Various bugfixes and other improvements.
An updated set of plugins is now available
Thanks for the update! Beth, would you like to take a look and commit this if it's ok?
Wyatt, can you: 1. add javadoc comments to all files. At least to the classes themselves, and hopefully to the methods if it isn't obviously implementing what its superclass or interface says it should do. Convert // comments around e.g. data members (e.g. TAULaunchPlugin) to javadoc comments. Then the hovers in the Java editor are oh so nice. PapiListSelectionDialog too. 2. remove most of the chunks of commented-out code 3. remove unused imports (ctl-shift-o is oh so useful here) 4. I think I saw one place where you had a class name that started with lowercase. Maybe an inner class. I can't find it now Eclipse coding conventions are here: http://wiki.eclipse.org/index.php/Development_Conventions_and_Guidelines But basically, I find that if you strive to make your code look like platform code, it's pretty straightforward. 5. org.eclipse.ptp.tau.managedbuilder.other.photran.ui doesn't list any photran plug-ins as dependencies. Shouldn't it? Let's make it easy to tell which plug-ins require fortran and which don't. I may have missed others. 6. There's some classes in org.eclipse.ptp.tau.options that look like they are left over from the sample preferences plug-in, and you're not using?
Created attachment 76358 [details] Updated TAU PTP Plugins
(In reply to comment #15) > Wyatt, can you: > 1. add javadoc comments to all files. At least to the classes themselves, > and hopefully to the methods if it isn't obviously implementing what > its superclass or interface says it should do. > Convert // comments around e.g. data members (e.g. TAULaunchPlugin) > to javadoc comments. Then the hovers in the Java editor are oh so nice. Done. If you spot anything where you want more information on the function or implementation let me know and I'll intensify comment levels as necessary. > PapiListSelectionDialog too. > 2. remove most of the chunks of commented-out code Done everywhere I caught them. > 3. remove unused imports (ctl-shift-o is oh so useful here) Done everywhere I caught them > 4. I think I saw one place where you had a class name that started with > lowercase. > Maybe an inner class. I can't find it now > > Eclipse coding conventions are here: > http://wiki.eclipse.org/index.php/Development_Conventions_and_Guidelines > But basically, I find that if you strive to make your code look like platform > code, it's pretty straightforward. Done everywhere I caught them. > > 5. org.eclipse.ptp.tau.managedbuilder.other.photran.ui > doesn't list any photran plug-ins as dependencies. Shouldn't it? > Let's make it easy to tell which plug-ins require fortran and which don't. > I may have missed others. I added a photran dependency. Its only requirement was for some 'xml-only' photran extension points, so it didn't register as depending on any photran plugins itself. This and selinstfort are the only two that need photran and no other plugins rely on them. > > 6. There's some classes in org.eclipse.ptp.tau.options that look like > they are left over from the sample preferences plug-in, and you're not > using? > Fixed. I also made a few minor adjustments in other places. In particular more of the UI should now be accessible when loaded in Windows. Note, though, that because the TAU-build components currently rely on our compiler wrapper scripts, it might be a while before it does anything useful on a non-*IX system.
Beth this may help with the committing process. Between the 3-23 and 8-17 releases: New plugins: org.eclipse.ptp.tau.jars org.eclipse.ptp.tau.managedbuilder.other.photran.ui org.eclipse.ptp.managedbuilder.other.ui org.eclipse.ptp.tau.toolopts New folders: toolxml in the root of org.eclipse.ptp.tau.core Files changed or were added/removed in every plugin I noticed that there were class-files lingering in a few of the plugin folders. I'll try and make sure those aren't included in subsequent source releases. Note that there are some changes coming soon which will supplant a signification portion of the 8-17 update.
Wyatt, why don't you submit a patch against the original plugins. Either the version that's here now, or wait till your changes, either is ok with me. Sounds like waiting for the improved version makes sense. A patch will be easier to process.
Created attachment 78115 [details] Updated TAU PTP Plugins Another set of major changes to the plugins. TAU functionality remains largely as before, but now other analysis tools can be specified via an XML file. I intend to gradually merge TAU itself this new format. I will also be looking at the use of extension points rather than xml files for tool definition. This is the first round of implementation for this feature, so additional functionality and bug-fixing can be expected soon. Also attached it a patch to take the 3-23-07 release to this release (please let me know if this doesn't work properly) and a sample XML file defining Kojak and VampirTrace tool usage for the plugins. Note that the format used by the XML file will be expanding rapidly as support for new tool features are added and that the format for specifying features already implemented is subject to change. Please let me know if you have any questions.
Created attachment 78116 [details] March23,07 to September11, 07 Patch
Created attachment 78117 [details] Sample tool definition XML file
Created attachment 78593 [details] Updated TAU Plugin Projects The actual project files are easier to work with than the patch and exported source for this update. No code changes.
Created attachment 78801 [details] New Patch for TAU Plugins This new patch set should apply to the previous release without much difficulty, though there are quite a few big changes. Some of these features have not yet been tested throughly so expect edits soon and let me know if any faults in code or presentation are detected. Adjusted tool definition format: <compile>: Define c, c++, Fortran compilers, environment variables, arguments <execute>: Define runtime parameters, environment variables, arguments, execution prefixes <analyze>: Define processing and viewing commands for generated data <anaylze> subcategories are now process and view, with the latter assumed to initialize a UI in some way. There is no functional distinction between the two at this time. Fixed bug: only one prompt for a tool's bin directory could be shown at a time. Prompts for subsequent tools resulted in an error. Adjusted selective-clear and selectiveInstrument code: now they get selective instrumentation options from a list. Added 'Relocate Tools' button to tool selection tab. This is a temporary fix for specifying the locations of tool bin directories. Added initial support for performance analysis execution utilities. Present Limitations: One command only. No arguments. No PTP support. See the perfsuite entry in the example XML file. Adjusted structure of analysis launch system. Build launch and analyze functions are better compartmentalized. Will now look for tool.xml tool definition file in the directory where eclipse is found in the system path, by default. (this is probably a temporary fix) Changed selective instrumentation of static/dynamic timers/phases to use new TAU format. Added option to selectively instrument program elements (from source tree) with static/dynamic timers/phases. Note: This functionality only works with recent versions of TAU. The 'clear' function does not yet work on the new entry types.
Created attachment 78802 [details] Sample tool definition XML file
Created attachment 78912 [details] Sep19 to Sep20 Patch for TAU Plugins Fixed a few bugs. More features and improvements are in the pipeline. --- Removed redundant build-only and don't-clean options from tau options. These created a logical error that could prevent these options from working. Fixed possible null pointer when searching for new tool definition xml file and tau lib location. Improved support for clearing new selective instrumentation types.
Created attachment 79432 [details] Sep20 to Sep28 Patch for TAU Plugins Rewrote tool configuration data control system, significantly merging original TAU functionality into the core in the process. Added support for 'virtual' tool panes, which can add arguments obtained from plugins outside of the core performance tools system to the build/launch/run commands. Added support for multiple composed exec-prefix tools. Added support for basic (xml-defined static) arguments and tool-panes for exec utils and performance tools using the <argument> and <optionpane> tags. (Full implementation of tool-panes in the UI has not yet bee implemented) Added support for defining the prefix, option separators and option enclosing characters of arguments obtained from tool panes. Fixed several bugs.
Created attachment 79433 [details] Sample tool definition XML file
Created attachment 79757 [details] Complete project files for TAU plugins as of 9-28-07 This archive contains the project files for the TAU plugins to facilitate inclusion on CVS. Note that to get everything to compile you need to run the copy_tau_jars.sh script, located in the org.eclipse.ptp.tau.jars directory, with the location of a TAU installation as an argument. This will copy certain required jar files into the directory.
Created attachment 80274 [details] PAPI Test Project This project can be used to easily invoke the org.eclipse.ptp.tau.papiselect plugin. It is intended primarily for development purposes and is not part of the performance analysis plugins release. It should only require the org.eclipse.ptp.tau.papiselect plugin to function. The plugin adds a PAPI menu to the Eclipse menu bar. The 'Test PAPI' action launches a prompt for the location of the PAPI bin directory and for the selection of native or preset counters. Hit OK to invoke the PAPI counter selection widget with these parameters. The PAPI widget will appear and counters may be selected. Hit OK display a list of the counters selected, if any.
Wyatt, If this is new functionality, please open a separate bug on it. It will need to be IP reviewed. Thanks, Greg (In reply to comment #30) > Created an attachment (id=80274) [details] > PAPI Test Project > > This project can be used to easily invoke the org.eclipse.ptp.tau.papiselect > plugin. It is intended primarily for development purposes and is not part of > the performance analysis plugins release. It should only require the > org.eclipse.ptp.tau.papiselect plugin to function. > > The plugin adds a PAPI menu to the Eclipse menu bar. The 'Test PAPI' action > launches a prompt for the location of the PAPI bin directory and for the > selection of native or preset counters. Hit OK to invoke the PAPI counter > selection widget with these parameters. The PAPI widget will appear and > counters may be selected. Hit OK display a list of the counters selected, if > any. >
Created attachment 82474 [details] TauSep28toNov08 Patch There is a lot of work done for Eclipse 3.3/PTP2, but there are a few more things to be done before that gets released. Changes in this patch include: Merged old tau arch directory selection system with new general-tool bin directory selection system Began adding support for output location parameters. Preliminary code is present but not in use and subject to change. Deprecated old xml workflow specification format. The new format is more in keeping with Eclipse xml document formats. Please refrain from using the old xml format as its functionality is limited and subject to removal over subsequent releases. Fixed an error that prevented the perfdmf plugin from recognizing different database names. Fixed a possible null pointer exception that could occur if the tool xml file was deleted. Fixed a bug that prevented specification of the full path to tools in the tool definition file. Various minor bugfixes
Created attachment 82482 [details] Sample tool definition XML file
Created attachment 84565 [details] Patch performance tool plugins from Nov08 to Dec05 Added support for selecting from available perfdmf database configurations for data storage (from the launch configuration) and viewing (from the perfdmf view) (formerly used the first one located) Added preferences for selecting bin directories of xml-specified tools Fixed a bug that sometimes prevented selection of a new makefile from being detected Fixed a bug that prevented the exact previously selected tau-makefile from being restored in tau launch tab. Fixed a bug that prevented user-specified tool paths from propagating. Fixed a bug that prevented global compiler commands from propagating. Fixed a bug in selective instrumentation that could put a null in the selective instrumentation file if the operation was canceled.
Please close this bug if it has been completed. If you find bugs, please open separate bug reports.
Created attachment 90202 [details] Performance Framework and TAU Plugin projects The attached tarball contains the new version of this project. TAU-specific components are now distinct from and dependent on the core of the performance framework. The project and package names have been changed as discussed on the message board. This version works with PTP 2.0 and requires Eclipse 3.3. Please let me know if you have any questions or comments on the changes. I plan to put them up on CVS in a new tools/perf directory sometime this week. Note that some bugs related to the Eclipse or PTP version update may still be present, though I haven't found anything very significant yet.
performance framework (general) and tau (specific) code is now committed to the repository