- fixed compiler warnings when compiling for 32-bit
- MPI wrapper generator scripts:
- removed non-posix call to length(array)
- exit scripts if any statement returns a non-true return value (set -e)
This commit was SVN r28524.
- general:
- incremented version number to 5.14.4
- fixed Coverity CIDs: 72002, 72099, 72273, 710580, 710664, 710665, 710666
- VT libs:
- fixed "incompatible declaration" errors when building against an MPI-3 implementation
Since MPI-3 the C keyword "const" is added to all relevant MPI API parameters
(e.g. MPI_Send(void* sendbuf, ...) -> MPI_Send(const void* sendbuf, ...)).
Prepending the macro CONST to these parameters which is defined either to "const" (if MPI-3) or to nothing (if MPI-1/2).
- fixed potential buffer overflow when reading the filter file
- CUDA tracing:
- enabled access to CUPTI counters for CUDA tracing via CUPTI
- enabled GPU memory usage tracing independent of the CUDA API
- enabled recording of CUDA synchronization and implicit synchronization in blocking CUDA memory copies for CUDA tracing via CUPTI
- enabled recording of synchronous peer-to-peer CUDA memory copies for CUDA tracing via CUPTI
- consider CUDA data transfers as not idle for option 'pure_idle'
- fixed identification of the CUDA device ID for CUDA tracing via CUPTI
- fixed region filtering for applications using the CUDA runtime API wrapper
- compiler wrappers: add path to mpi.h to the PDT parser command and preprocessor flags
This commit was SVN r28494.
- Introduced configure option '--enable-fmpi'. If configuring Open MPI w/o Fortran bindings (--disable-mpi-f77/--disable-mpi-fortran), then this option (i.e. --disable-fmpi) will be implicitly passed to the VT configure to disable MPI Fortran support.
This commit was SVN r28260.
- configure:
- fixed passing FCFLAGS to the Fortran compiler when building libvt-fmpi
- temporary disabled memory allocation tracing for multi-threaded applications (introduced in v5.14.1) due to broken counter values when memory is freed in a different thread than where it was allocated
- do not build the unification library when building with HP/Platform MPI (needs linking libmpiCC, even if the C++ MPI interface isn't used)
- removed 'libfmpi' from list of MPI Fortran libraries to be searched (causes that 'libvt-fmpi' will be built when configuring for HP/Platform MPI)
- do not build the MPI Fortran library 'libvt-fmpi' when building VT inside Open MPI
- Java tracing:
- minor performance improvment: call vt_java_check_error (now vt_java_error) only if a JVMTI function returns an error
This commit was SVN r28228.
- general: Fixed several Coverity warnings
- otfprofile: Do not show helptext if '-V' given
- otfinfo: Fixed counting of collective operations and markers
This commit was SVN r28195.
- configure: VPATH building: Moved adding of -I$top_srcdir to CPPFLAGS to the end of configure to prevent using this flags for configure checks
- VT libs: Fixed potential segmentation fault (infinite recursion) when writing intermediate statistics (VT_STAT_INTV != 0)
- vtunify: Fixed header include to disable OpenMP in the library version of vtunify (libvt-mpi-unify)
- fixed several Coverity warnings
This commit was SVN r28187.
- general:
- incremented version number to 1.12.3
- updated copyright information (2012->2013)
- fixed compiler warnings occurred when NDEBUG is defined (--with-platform=optimized)
- otfprofile, LaTeX output:
- swapped x & y axis of the Message Data Rate Matrix
- adapted labels to Vampir
Changes to VT:
- general:
- incremented version number to 5.14.3
- updated copyright information (2012->2013)
- fixed compiler warnings occurred when NDEBUG is defined (--with-platform=optimized)
- configure / build system:
- do not search for the MPI lib. when an MPI compiler wrapper was found (prevents double linkage of the MPI lib. when building vtunify-mpi and vtfilter-mpi)
- prepend cross-prefix to the compiler wrappers *only* if '--with-cross-prefix[=PREFIX]' is given
- removed unnecessary sources from libvt-java
- VT libs:
- extended inoffical API for manual region tracing: allow specifying a group name
- plugin counters: Merge a set of post-mortem counters and write them under a single async key. This speeds up the unification.
- Java tracing:
- removed multiple asking for the current thread id when recording method enter/leave events
- replaced hash function (id % prime) by Jenking's recommended one ( id & (hash_table_size-1) )
- vtdyn: Do not instrument regions where inserting instrumentation would requires using a trap
- vtsetup: Fixed availability state of the exec tracing feature
This commit was SVN r28162.
- revised fix for OpenType Font conflicts based upon Jeff's comments in CMR #3497)
- renamed libotf to libopen-trace-format
- install libraries to LIBDIR (as before, no need for adjusting LD_LIBRARY_PATH)
This commit was SVN r28010.
- fixed build error when the Python bindings were enabled
- fixed conflicts with OpenType Fonts:
- install header files to INCLUDEDIR/otf1
(only when building outside VT/Open MPI)
- install libraries to LIBDIR/otf1
- renamed otfdump to otfprint
This commit was SVN r27983.
- library wrapping: Prevent calling dlerror, if the memory allocation wrappers are enabled. dlerror calls realloc which would ends up in an infinite recursion.
This commit was SVN r27869.
- configure: fixed warnings from automake 1.12.x
Changes to VT:
- general:
- incremented version number to 5.14.2
- configure:
- fixed warnings from automake 1.12.x
- VT libs / MPI wrappers:
- do initialize VT and enter the dummy main function ("user") if MPI_Initialized is the very first event to be recorded (fixed assertion error)
- leave the dummy main function on the same thread where it is entered (fixes potential stack underflow)
This commit was SVN r27734.
- configure: pass the MPI configure options (e.g. --with-mpi-lib, --with-mpi-inc-dir) to the OTF configure, even if MPI compiler wrappers were found
This commit was SVN r27710.
- compiler wrappers: removed invocation of pdbcomment; it removes essential information from the PDB file for instrumenting functions
This commit was SVN r27687.
- otfprofile: fixed build error when using the IBM XL C++ compiler
Changes to VT:
- configure:
- use AC_CHECK_TYPES instead of AC_CHECK_DECLS to check for PAPI's long_long type
- use AC_C_INLINE to check whether C 'inline' is present
- VT libs:
- set CUPTI tracing as default, if CUDA runtime wrapper has not been built
- added a common interface for all NVIDIA CUPTI interfaces (events, activity, callbacks)
- added support for concurrent kernel tracing (since CUDA 5.0)
- removed almost unused VT_DEBUG env. variable - replaced calls to vt_debug_msg(DBG_LEVEL,...) by vt_cntl_msg (DBG_LEVEL+10,...)
- added some more ifdefs to new CUDA 5 features
- added several guards for internal malloc() and free() calls in CUDA related source files
- revised memory allocation tracing:
- intercept memory (de)alloaction functions by library wrapping (replaces deprecated hook technique from the GNU C library)
- added support for multi-threaded applications
- added wrapper functions for memalign, posix_memalign, and valloc
- revised exec,system,fork tracing
- retitled to "Child Process Execution Tracing"
- introduced env. variable VT_EXECTRACE (marked VT_LIBCTRACE as deprecated)
- added wrapper functions for execvpe, fexecve, waitid, wait3, and wait4
- changes default function group name for
- memory (de)allocation functions: "MEM" -> "LIBC-MALLOC"
- I/O functions: "I/O" -> "LIBC-I/O"
- child process execution: "LIBC" -> "LIBC-EXEC"
- plugin counter interface:
- added check for initialized vt_plugin_cntr_info.info
- vtdyn:
- added missing header includes for Dyninst 8
- vtrun:
- do not preload the Dyninst Runtime library; it is loaded by Dyninst itself
This commit was SVN r27679.
- general:
- incremented version number to 1.12.2
- OTF library:
- implemented workaround for handling bogus zlib sync. points during reading
Changes to VT:
- general:
- incremented version number ot 5.14.1
- configure:
- to prevent conflicts with the libtool RPM, append "/vampirtrace" to ${datadir}, if it doesn't points to the default (=${datarootdir})
(Fixes trac:3382)
This commit was SVN r27630.
The following Trac tickets were found above:
Ticket 3382 --> https://svn.open-mpi.org/trac/ompi/ticket/3382
- otfaux:
- fixed build error on Solaris and NetBSD (removed -lm from library dependencies)
Changes to VT:
- vtunify:
- disable OpenMP parallelization if PGI compiler version < 9 is used (threadprivate not supported)
This commit was SVN r27316.
- configure: do not build OpenMP support if CFLAGS contains a compiler flag for disabling handling OpenMP directives (e.g. -fno-openmp, -nomp, -hnoomp)
Fixes trac:3117
This commit was SVN r27282.
The following Trac tickets were found above:
Ticket 3117 --> https://svn.open-mpi.org/trac/ompi/ticket/3117
- general:
- incremented version number ro 1.11.3openmpi
- otfaux:
- fixed build error when using the Oracle compiler on Solaris. (removed usage of too recent rint() function)
Fixes trac:3257
This commit was SVN r27279.
The following Trac tickets were found above:
Ticket 3257 --> https://svn.open-mpi.org/trac/ompi/ticket/3257
The Open MPI configure automatically adds the -D_REENTRANT flag to CPPFLAGS. This causes that one of the PGI STL headers includes the omp.h header - unfortunately the fake one located in tools/vtwrapper/ instead of the real one. Thus, several OpenMP symbols were undefined and the compiler aborted.
This commit was SVN r27130.
- general:
- incremented version number to 1.11.2openmpi
- lib OTFAUX:
- speed-up messages matching, if no snapshots should be generated
Changes to VT:
- general:
- incremented version number to 5.13.1openmpi
- compiler wrappers:
- vtnvcc:
- add path to cuda.h to the PDT parser command
- exclude *.cu source files from instrumenting with PDT/TAU; the PDT parser is not (yet) able to handle CUDA statements and kernels
- vtunify:
- fixed timestamp boundary check for merging asynchronous plugin counters (i.e. async. timestamp must >= process' start timestamp)
- fixed timestamp conversion from local to global
- print percentage of message matching bumps (unmatched or reversed messages)
- inlined key-value list "record handler"
- minor optimizations in hook for merging async. events:
- search async. source manager only once per stream
- don't call writeRecHook_Event() if no async. source key is defined
This commit was SVN r26925.
- configure:
- added option --with[out]-liberty to enable/disable symbol demangling with libiberty; default: disabled, because many systems don't provide a PIC version of libiberty
- fixed compiler flags for building Fortran MPI wrapper library
This commit was SVN r26839.
- added CUDA stream reuse for both, CUDA tracing with CUPTI and CUDART wrapper
- removed CUDA stream number from thread name, when CUDA stream reuse is enabled
- disable tracking of MPI communicators, requests, windows, etc. if MPI is initialized with MPI_THREAD_SERIALIZED or MPI_THREAD_MULTIPLE (only MPI function enter/leave events will be recorded)
- configure:
- fixed detection of compiler instrumentation type on Cray platforms using the cc compiler wrapper
- compiler wrappers:
- fixed preprocessing source files to be parsed by OPARI (add path to empty omp.h to the preprocessor flags to avoid multiple declarations of OpenMP functions, types, etc.)
- vtnvcc: Remove 'compinst' instrumentation type, if VT is configured with a non-GNU compiler instrumentation support (Fixed "unrecognized option" error)
- vtdyn:
- added support for instrumenting outer- and inner loops and its iterations (outer=loops within a function, inner=loops within outer loops)
- try to get the full prototype of functions to be instrumented
- consider default filter rules also if no filter file is given
- fixed potential segfault if adding a filter rule w/o stack bounds
- print verbose messages on stdout if vtdyn is started from the Dyninst attach library (libvt-dynatt)
- vtunify:
- print verbose messages on stderr if vtunify is started automatically from the VT library
This commit was SVN r26836.
- fixed RBuffer_searchTime() for compressed files
Changes to VT:
- rebuild HTML+PDF version of VT user manual
- fixed compiler instr. entry in configure summary (was empty if no compiler instr. found)
This commit was SVN r26750.
- configure:
- changed default CUPTI library path to $CUPTI-DIR/lib64
- VT Libs:
- corrected prototype of MPI_Get_address in Fortran MPI wrappers (the second parameter should be an MPI_Aint* instead of MPI_Fint*)
- temporary removed MPI_<Comm|Type|Win>_<get|set>_attr and MPI_Attr_<get|put> from the Fortran MPI wrappers due to missing conversion of the attribute value parameter
- Docu:
- latex doc \usepackage[T1]{fontenc} so that _ can be searched and copied
- smaller font in Environment Variables section
- some improvements in CUDA section
- removed GPU idle time as official feature for CUPTI tracing method
This commit was SVN r26161.
- general:
- added missing entry in ChangeLog
- vtunify[-mpi]:
- fixed possibly uninitialized global token for the predefined Node and "All" process groups
This commit was SVN r26147.
- general:
- corrected OTF version number
- otfprofile:
- removed leading '=' from CSV lines to make it loadable into spreadsheets (e.g. Open Office)
- fixed process naming in CSV output of collective operation statistics
Changes to VT:
- configure:
- added *_FOR_BUILD variables to CrayXE's default configure options; required for cross-building
- VT libs:
- fixed GPU communication, due to new process ID splitting
- fixed parsing of PAPI native events in VT_METRICS; use strtok_r instead of strtok which is successively called inPAPI_event_name_to_code
- added VT_METRICS_SEP to definition comments (-> Vampir's trace info)
- Docu:
- fixed link to TAU Reference Guide
This commit was SVN r26137.
Changes to OTF:
- general:
- updated copyright information (2011->2012)
- otfmerge-mpi:
- use the MPI-2 versions of MPI_Address and MPI_Type_struct
- otfdump:
- don't abort when reading events fails - the input tracefile might only have statistics
Changes to VT:
- general:
- updated version number to 5.12.2openmpi
- updated copyright information (2011->2012)
- configure:
- added configure switches to enable/disable CUPTI and CUDA wrapping
- fixed detection of C++ runtime libraries for Cray and PGI v11.x compilers
- fixed detection of Cray compiler's OpenMP flag
- fixed detection of MPI_IN_PLACE
- disable support for RTLD_DEFAULT on CrayX? platforms; it's provided by dlfcn.h but not working
- added '-force_flat_namespace' to linker flags of compiler wrappers on MacOS (causes that OpenMPI's libmpi_f77 calls the VT MPI wrapper functions - not the original ones)
- default configure options on Cray platforms: use compiler option '--target=$XTPE_COMPILE_TARGET' only if the environment variable is set
- VT libs:
- added support for CUDA tracing via CUPTI callbacks and activities (runtime and driver API, kernels, memory copies, GPU idle time and GPU memory usage)
- added support for cudaMemcpyDefault and synchronous peer-to-peer memory copies in CUDA library wrapper
- fixed a bug in CUDA runtime wrapper initialization and thread creation
- fixed a build bug occurred if CUDA and CUPTI found, but support for library tracing is disabled
- use stack-allocated char-array when composing vtunify command; on some platforms system() results in exit code 127 when using a dynamically allocated char-array
- fixed bug in async. counter plugin
- fixed handling of empty MPI groups (MPI_GROUP_EMPTY)
- fixed handling of MPI groups implicitly generated by MPI_Win_create
- fixed conversion from MPI_Fint-arrays to MPI_Aint-arrays in Fortran MPI wrappers
- fixed order of OpenMP threads based on its id (omp_get_thread_num)
- fixed parsing of filter file to consider non-rank-specific filter rules appearing after a rank selection for disabling
- fixed handling of 'errno' in LIBC[-I/O] wrappers for statically linked applications (set application's errno to the errno defined in the external LIBC which is used for calling the real functions)
- suppress warnings about usage of deprecated MPI functions (OMPI_WANT_MPI_INTERFACE_WARNING=0)
- vtunify[-mpi]:
- fixed potential memory corruption during enqueuing recv. messages for p2p message matching
- vtunify-mpi:
- use the MPI-2 versions of MPI_Address and MPI_Type_struct
- removed unused MPI wrappers
- fixed assertion in p2p message matching which occurred when processing local traces with disabled ranks
- vtdyn:
- load user-specified shared libraries (-s SHLIB) into the mutatee before starting the instrumentation; adds support for instrumenting shared libraries which are loaded during runtime
- compiler wrappers:
- fixed detection of MPI library linked in the path form (e.g. libmpi.a instead of -lmpi)
- fixed corrupt library order when using vtnvcc for linking MPI/CUDA mixed program
- OPARI:
- fixed Fortran parsing for detecting end of block DO loops
This commit was SVN r26114.