Commit 547fa7af authored by Philip Carns's avatar Philip Carns

documentation updates for profiling conf files

parent c904d6e0
......@@ -4,6 +4,9 @@ Darshan Release Change Log
darshan-2.3.1-pre2
=============
* added documentation and example configuration files for using the -profile
or $MPICC_PROFILE hooks to add instrumentation to MPICH-based MPI
implementations without generating custom wrapper scripts
* Add wrappers for mkstemp(), mkostemp(), mkstemps(), and mkostemps()
(reported by Tom Peterka)
* Change OPEN_TIMESTAMP field to report timestamp right before open() is
......@@ -29,8 +32,6 @@ darshan-2.3.1-pre2
* update darshan-gen-fortran.pl and darshan-gen-cxx.pl to support new library
naming conventions in MPICH 3.1.1 and higher
* update documentation to reflect known issues with some versions of MPICH
* added example mpicc profile configuration files, see share/mpi-profile/
subdirectory within installation directory
darshan-2.3.0
=============
......
......@@ -143,13 +143,17 @@ for details if you intend to force one mode or the other.
== Instrumenting statically-linked applications
Statically linked executables must be instrumented at compile time. The
simplest way to do this is to generate an MPI compiler script (e.g. `mpicc`)
that includes the link options and libraries needed by Darshan. Once this
is done, Darshan instrumentation is transparent; you simply compile
applications using the darshan-enabled MPI compiler scripts.
Statically linked executables must be instrumented at compile time.
The simplest methods to do this are to either generate a customized
MPI compiler script (e.g. `mpicc`) that includes the link options and
libraries needed by Darshan, or to use existing profiling configuration
hooks for existing MPI compiler scripts. Once this is done, Darshan
instrumentation is transparent; you simply compile applications using
the darshan-enabled MPI compiler scripts.
For MPICH-based MPI libraries, such as MPICH1, MPICH2, or MVAPICH, these
=== Using customized compiler wrapper scripts
For MPICH-based MPI libraries, such as MPICH1, MPICH2, or MVAPICH, custom
wrapper scripts can be generated automatically. The following example
illustrates how to produce wrappers for C, C++, and Fortran compilers:
......@@ -160,6 +164,40 @@ darshan-gen-fortran.pl `which mpif77` --output mpif77.darshan
darshan-gen-fortran.pl `which mpif90` --output mpif90.darshan
-----
=== Using a profile configuration
The MPICH MPI implementation supports the specification of a profiling library
configuration, then it can be used to insert Darshan instrumentation without
modifying the existing MPI compiler script. Example profiling configuration
files are installed with Darshan 2.3.1 and later. You can enable a profiling
configuration using environment variables or command line arguments to the
compiler scripts:
Example for MPICH 3.1.1 or newer:
----
export MPICC_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-cc
export MPICXX_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-cxx
export MPIFORT_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-f
----
Example for MPICH 3.1 or earlier:
----
export MPICC_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-cc
export MPICXX_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-cxx
export MPICF77_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-f
export MPICF90_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-f
----
Examples for command line use:
----
mpicc -profile=$DARSHAN_PREFIX/share/mpi-profile/darshan-c <args>
mpicxx -profile=$DARSHAN_PREFIX/share/mpi-profile/darshan-cxx <args>
mpif77 -profile=$DARSHAN_PREFIX/share/mpi-profile/darshan-f <args>
mpif90 -profile=$DARSHAN_PREFIX/share/mpi-profile/darshan-f <args>
----
=== Other configurations
Please see the Cray recipe in this document for instructions on
instrumenting statically-linked applications on that platform.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment