02/02/06 tmohan - Updated mpiex documentation to mention that the output path includes the problem size. This is used by post-processing scripts, which use the file name to figure the problem size. A corresponding change has been made in the mpiP code that creates the file. 01/24/06 tmohan - Fully functionlal ioex with seek stats, access pattern detection and MPI I/O. 12/29/06 tmohan - Made a separate libioex.so, that is built with -DIO_STATS. - A symlink ioex that provides i/o stats - papiex is now built by default without -DIO_STATS However, it can be built with -DIO_STATS, to provide additional io stats. 12/28/06 tmohan - Added functionality to get per-thread I/O stats. This can be disabled with --no-io-stats Note: This requires -DIO_STATS to be set. 12/20/06 mucci - Added GCC -finstrument function support - Added VM and RSS peak - Better formatting and output of memory stats - Fixed bug in output of arguments - Fixed bug not to include libpapiexmpi if HAVE_MPI is not set - Removed extra blank lines in print_thread_stats - Made mpiex take -d instead of -g for debugging (standard argument) - Made mpiex take -D instead of -g - Allowed -d to work for hpcex and mpiex for monitor and PAPI calls - Fixed argument handling - Updated documentation for the above - Some improvements to -h output for hpcex, more work needed ** - Test cases for puts and write and gcc -finstrument-functions - Added --no-gcc-prof - Added lots of documentation for other long options. - Fixed up with NO_IO_PROF and NO_MPI_PROF options - Fixed up on detection of caliper point (caused by moving to static sized labels) 12/15/06 tmohan - Fixed a small bug in the all threads data gather routine that was causing a SEGV. 12/14/06 mucci - Added -s argument to makewraplib.pl to automatically call the system call if one is defined and available for the wrapper. - Modified Makefile to use the -s argument for the I/O wrappers. - These mods will allow programs that use constructors that run before libmonitor AND do I/O to function properly. 12/13/06 mucci - Added --no-mpi-gather to disable gathering of data to the front end using MPI. - Upgraded to the latest monitor API - Added argument output of the target executable - Changed control path to always use process_fini, so that we can handle MPI codes that do not call MPI_Finalize(). - Fixed all error and warning messages to be of the form: libpapiex error/warning: xxx failed. (strerror) - Removed static definition of MAX_THREADS 12/11/06 tmohan - Fixed a SEGV we got when we used papiex in debug mode (-d) with the I/O wrapper routines. 12/11/06 tmohan - Removed trailing % in MPI and I/O time - Moved -r and -x output to above the event count output. 12/10/06 mucci - Added HAVE_SHARED_LIBIBERTY and rules to build shared libiberty - Format help output for 80 columns, clean up option descriptions - Fix MONITOR_INC_PATH define 12/08/06 tmohan - Fixed a segv we were getting for MPI threaded programs. 12/08/06 tmohan - Global start and finish time is now printed. - Improved global summary by adding executable and start/stop time information. 12/08/06 tmohan - Process start and finish time is now printed. - Improved process summary by adding executable and start/stop time information. 12/07/06 tmohan Fixed capitalization and blank-line uniformity in output. 12/06/06 tmohan - Added %time in MPI and I/O as a stat that's printed - Fixed wrapper time calculations for MPI programs 12/06/06 mucci - More updates to build paths and rpaths 12/05/06 tmohan - Got the I/O and MPI call profiling to work. Flag semantics are reversed (see log entry below). Profiling is enabled by default. 12/01/06 tmohan - Added --set-mpi-prof and --set-io-prof to do I/O profiling. It doesn't work yet. Once it works, profiling will be enabled by default and the sense of the flags reversed. 11/28/06 tmohan - Std. deviation overflow problem properly fixed. 11/28/06 tmohan - Minor changes: PAPIEX_LD_LIBRARY_PATH default in the Makefile has been commented out. Output overflow check for real cycles' standard deviation printing. 11/27/06 tmohan - Added support to use PAPIEX_LD_LIBRARY_PATH as a means to add search paths to LD_LIBRARY_PATH. The variable can be set at compile time (-DPAPIEX_LD_LIBRARY_PATH) or via the environment. In either case, it prepends to the LD_LIBRARY_PATH, with the environment overriding the compile-time set path. Also added --no-ld-library-path to disable all changes to LD_LIBRARY_PATH variable's value. 11/26/06 tmohan - Fixed a number of issues related to output, mostly cosmetic. - Added a flag -b to disable generating summary statistics - Modified the semantics of -w: It now means, don't print anything to screen, just write to files. -n has the opposite sense. - Minor correction made in Rules.monitor to avoid -I from appearing twice in the include path. 11/24/06 mucci - Added PAPI real cyc monitor to IO/MPI monitors - Build can only reference install packages not source trees of other packages - Added MPI_INC_DIR - Added install targets of other libraries (io and MPI monitors) - Updated INSTALL file - Conditionally install mpiex and mpiex man pages 11/23/06 mucci - Added -DHAVE_MPI -DHAVE_MPIP -DHAVE_HPCTOOLKIT 11/20/06 mucci - Added lib.so install target - Added LDFLAGS to build for external rpath specifiers 11/10/06 tmohan - PapiEx output now goes to stderr (not stdout), to avoid problems with libc closing the stdout descriptor and garbling the main app output. - By default, PapiEx now ALWAYS writes file and stderr. File output is disabled with -n. stderr output is disabled when file output is requested using -f, -p or -o. 11/08/06 tmohan - Changed the semantics of -o flag for mpiex (and papiex -M). The new semantics use -o to set the output file name (like papiex, see the change below), and not for disabling mpiP profiling during initialization (as mpiP runtime options page documents). This changes sets -o for the output file name for all papiex-based tools. To be compatible with mpiP, we translated -o to -u for mpiP in the driver (main.c). Thus the runtime MPIP environment variable sees -u for a -o set in mpiex (or papiex -M-o,). 11/08/06 tmohan - Added a -o flag to write output to a particular file (unithreaded). - Fixed Rules.papi to correctly set PAPISHLIB using a shell glob - Added test in driver (main.c) to make -o, -p, -f and -n mutually exclusive - papiex now writes summary output from multi-thread runs and multitask runs to a file (process.summary and global.summary respectively) under the output hierarchy. 11/06/06 tmohan - Substantial refactoring in the code to print stats. Duplicate code has been removed, and utility functions defined. - Simplified use with MPI apps; see the top-level Makefile. In short, -DUSE_MPI and CFLAGS+=-I/opt/mpich2/include is enough. For LAM and other implementations, do -DUSE_MPI and CC=mpicc Removed MPI_INCDIR variable, and fixed the INSTALL documentation. 11/02/06 tmohan - Removed -DHAVE_MPIP and -DHAVE_HPCRUN completely. From now on these variables do not need to be set. mpiP and hpcrun support is automatic. The user may want to modify Rules.mpiex and Rules.hpcrun, but that should normally not be necessary. Made appropriate changes to the INSTALL file. 11/02/06 mucci - Fixed CC assignment in Rules.gmake - Updated to install in /usr/local like configure. - Updated INSTALL file 11/02/06 tmohan - Summary output is now printed to stdout instead of stderr. Batch systems will probably benefit from this. 10/20/06 tmohan - papiex -M can now be used to pass runtime arguments to the mpiP lib. 10/20/06 tmohan - mpiex now handles mpiP 3.0.1's new options. See, http://mpip.sourceforge.net/#Runtime_Configuration. This doesn't mention -m -x options. Support for these has been added. Also note, -d's meaning now follows mpiP's semantics in the case of mpiex. 10/13/06 tmohan - Tested and added code for derived metrics for unithreaded executables 10/9/06 tmohan - Moved functions from papiex.c that ought to have been in the driver. Now papiex does not link with libpapiex.so 10/9/06 tmohan - Fixed Rules.gmake to continue if install dirs fail 10/05/06 tmohan - Added native events for MIPS malta (with the -a flag) This work is not complete. Presently this uses all the native events. We will refine this to useful events and then derive metrics off these events. 10/05/06 tmohan - Moved -a flag-handling code to papiex.c from main.c 10/04/06 tmohan - Moved sample output files to subdir samples Suitably modified papiex.html.in 9/30/06 tmohan - Added examples and updated the papiex HTML page 9/30/06 tmohan - Made the man page for mpiex and hpcex 9/29/06 tmohan - Made the man page more current. 9/19/06 tmohan - Renamed -o to -f . This now is the same as mpiex and hpcex. 9/17/06 tmohan - Added -g and -o (mpiP-specific flags) - Added -p flag to hpcex. Note, this also requires you to use a suitably patched libhpcrun (one which honors HPCRUN_OUTPUT_PREFIX env. variable). 9/17/06 tmohan Added -p argument support for mpiex 9/14/06 tmohan Rationalized the output flags for papiex -p to give a prefix path -o to give a top-level dir for all output files -n Don't create any output files. This is opposite to -w of the past. Removed -f and -w flags. All output files are created with the following structure: .papiex.. 9/09/06 tmohan Fixed Rules.gmake to use command-line CC and ARCH if set 9/02/06 tmohan - Added support in papiex to drive hpcrun - The user needs to create a symlink to papiex named hpcex - hpcex is passed the same arguments as hpcrun - The hpcex driver will preload libhpcrun.so (and libmonitor.so) - hpcex has been tested to work with a modified version of hpcrun that uses libmonitor It should also work with an unmodified version of hpcrun, but then hpcex must be built without the -DHAVE_MONITOR flag. This latter feature has not been tested. - Rules.hpcex is used to define the hpcex library name - Created Rules.mpiP to pass the mpiP library names at compile time - Note: -DHAVE_HPCRUN and -DHAVE_MPIP can be safely be kept on even on platforms that don't have the libraries, as ld will merely issue an error message. The flags are used only at install time to decide whethe to create symlinks to the papiex binary or not. 8/26/06 tmohan - Added support in papiex to load mpiP libraries for profiling MPI libraries. There are two ways to do this: a) Use papiex as a driver and only derive mpiP information: To do this, just create a symlink mpiex to papiex. Then simply run: mpiex my-mpi-prog, or mpiex -h b) Use papiex to obtain PAPI data AND mpiP data: run: papiex -M my-mpi-prog In this mode, arguments can be given to mpiP using the MPIP environment variable. 8/22/06 tmohan - Added conditionals to deal specially with the case when MPICH2 is found on the system. If mpicc is from an MPICH installation, then automatically all MPI symbols are derived from the executable. This means the papiex executable does NOT need to be linked using mpicc for MPICH installations. For all other MPI implementations, the code will use mpicc and link with the MPI library. In short, all the user needs to do is -DUSE_MPI and the makefiles and code will act based on the MPI implementation found. 8/21/06 tmohan - Min/max computation added to threaded and MPI programs - Std. deviation is now being printed. 8/19/06 tmohan - Removed an strcpy to a NULL pointer. This code was causing a seg fault when HAVE_MONITOR isn't set. 8/16/06 tmohan - The default directory for printing stats is now meaningfully set to .papiex.pid In the case of MPI programs, the pid is determined by the master (and all the tasks use this pid). Note: all statstic writing only happens with the -w flag 8/15/06 tmohan - papiex will now gather data for MPI executables properly and also produce statistics across all tasks / threads. Threaded MPI executables should work fine. Added a new flag -w. If this flag is used then stats are written in a subdirectory. MPI_Gather is used rather than point-to-point MPI operations for the MPI stat gathering. The Makefile will use -DUSE_MPI by default, and mpicc will be used. 8/04/06 mucci - Added generation of tauex executable and -T flag processing for TAU 8/04/06 tmohan - Added more info. to the -V flag 8/03/06 tmohan - Changed -F to -o in line with normal Unix shell commands - Also fixed a minor bug introduced when the USE_MPI flag code was added. 8/02/06 tmohan - Modified a label field in the caliper structure so that it could be embedded within the caliper structure. Also had to modifiy the strdups to strncpy This change is needed to get the structure passed across easily as a contigous st of bytes over MPI 7/30/06 tmohan - Added support for unthreaded MPI programs. *** Significant code change here *** To use this feature -DUSE_MPI must be set, and CC=mpicc MPI_Finalize is intercepted and statistics are gathered. These are printed out in papiex_thread_shutdown routine. The global variables is_mpied, myrank and ntasks are set for all programs that use MPI calls (not merely link with the MPI library). Statistics printed include global means for all counter values. Variance remains to be calculated. Thread support remains to be added (should not be difficult as the complete thread-specific papiex structure is sent to the master). 7/27/06 tmohan - Renamed the -o flag to -I (for interrupt mode) 7/27/06 tmohan - Added '-S' flag for supervisor domain counting 7/26/06 tmohan - Added support for a '-a' flag to papiex Currently, this adds non-derived PAPI preset events to the list of events to be monitored. 7/25/06 mucci - Fixed event listing bug - Tushar added PAPI memory info and -V flag for substrate info 8/22/05 v0.99rc2 - Fixed up man page to be consistent with options - Added memory support for Linux - Fixed bug in -V and -L - Removed -t flag 4/25/2005 v0.99rc1 - Build fixes and update to Monitor 0.99rc6 - Better install of shared libraries - Bug fix of run_tests script 2/11/2005 v0.98 - Added -F output for output - Added -L event option for full description - Improved event description - Added papiex calipers. Insert papiex_start/stop in user code. - Added conditonal compilation macros for calipers. - Added fortran tests for calipers. - Added LD_LIBRARY_PATH inside of papiex for perfect execution every time. 2/2/2005 v0.92 mucci - Added Monitor support - Added shell output variable support 2/1/2005 v0.91 mucci - Made PAPIEX_OUTPUT environment variable.